يشغّل Surfpool SDK وقت تشغيل Surfnet الكامل داخل عملية الاختبار الخاصة بك.
استخدمه عندما تريد نقطة نهاية RPC متوافقة مع سولانا محلياً، ودافعاً ممولاً
مسبقاً، ومعالجة مباشرة للحالة دون تشغيل surfpool start كعملية منفصلة.
يُغلّف كلٌّ من حزمة Rust (surfpool-sdk) وارتباطات JS (@solana/surfpool) nفس
وقت التشغيل. تأتي حزمة JS مع ملفات ثنائية أصلية مُجمَّعة مسبقاً عبر napi-rs
لنظام macOS (Intel + Apple Silicon) وLinux x86-64.
البداية السريعة
ثبّت SDK، وابدأ شبكة Surfnet، واتصل بنقطة نهاية RPC، ثم أوقفها. تتشارك الاختبارات المتوازية العملية ذاتها بأمان لأن المنافذ تُخصَّص ديناميكياً.
use surfpool_sdk::{Signer, Surfnet};#[tokio::test]async fn starts_a_local_surfnet() {let surfnet = Surfnet::start().await.unwrap();let rpc = surfnet.rpc_client();let balance = rpc.get_balance(&surfnet.payer().pubkey()).unwrap();assert!(balance > 0);println!("rpc: {}", surfnet.rpc_url());println!("ws: {}", surfnet.ws_url());}
ما يحتويه الصندوق
التثبيت
إعداد Cargo وnpm، المنصات المدعومة، الملفات الثنائية الأصلية
الإعداد
خيارات البناء: الرجوع إلى RPC بعيد، إنتاج الكتل، توقيت الفتحات الزمنية، بوابات الميزات، الدافعون المخصصون
أكواد الغش
تمويل SOL/الرموز، تعديل الحسابات، إعادة تعيين الحالة الأصلية، البث من الشبكة الرئيسية
السفر عبر الزمن
الانتقال إلى فتحة زمنية مطلقة، أو حقبة، أو طابع زمني Unix
البرامج
الاكتشاف التلقائي لمساحة عمل Anchor، نشر صريح لـ .so + IDL
الأحداث
استخلاص أحداث وقت التشغيل للتحقق من الصحة والتسجيل
مرجع Rust
واجهة برمجة تطبيقات حزمة surfpool-sdk الكاملة
مرجع JS
واجهة برمجة تطبيقات TypeScript الكاملة لـ @solana/surfpool
كيف يختلف عن surfpool start
تشغّل واجهة CLI شبكة Surfnet طويلة الأمد تتصل بها من عمليات خارجية. أما SDK فيشغّل Surfnet داخل اختبارك، مما يعني:
- لا إدارة للمنافذ الخارجية — كل
Surfnet::start()يرتبط بمنفذ متاح تلقائياً، مما يتيح تشغيل مجموعات الاختبار بالتوازي دون الحاجة إلى أعلام--port. - إيقاف تشغيل متزامن — يعود
stop()بعد أن يكون وقت التشغيل قد حرّر منافذه فعلياً. - Cheatcodes كأساليب مكتوبة — السطح ذاته المكشوف عبر JSON-RPC بواسطة
surfpool startمتاح كأساليب Rust أصيلة وروابط napi-rs. - مراقبة مباشرة للأحداث — تُكشف أحداث وقت التشغيل عبر قناة داخلية (Rust) أو أسلوب تصريف (JS) دون الحاجة إلى اشتراك WebSocket.
متى تستخدم SDK
الجأ إلى SDK عندما:
- تكتب اختبارات تكامل لبرنامج Anchor وتريد التحقق من أرصدة الرموز بعد سلسلة من الإعدادات المُعدَّة بالـ cheatcode.
- تحتاج إلى عمال اختبار متوازيين يمتلك كل منهم شبكة Surfnet معزولة.
- تريد استنساخ حسابات mainnet محددة (
remoteRpcUrl+streamAccount) داخل اختبار. - تحتاج إلى ساعات حتمية عبر تقديم وقت التشغيل إلى slot أو طابع زمني محدد قبل اختبار منطق الاستحقاق أو القفل أو الانتهاء.
When the CLI is the better fit
استخدم surfpool start بدلاً من ذلك عندما تريد شبكة Surfnet تبقى على قيد
التشغيل عبر عمليات متعددة — على سبيل المثال، عندما تحتاج واجهة CLI ومحفظة
متصفح وسكريبتات عميل مخصصة إلى مشاركة نفس المثيل.
Is this page helpful?