Surfpool SDK, test sürecinizin içinde tam bir Surfnet çalışma zamanı başlatır.
Yerel bir Solana uyumlu RPC uç noktası, önceden fonlanmış bir ödeyici ve
surfpool start'yi ayrı bir süreç olarak başlatmadan doğrudan durum
manipülasyonu istediğinizde kullanın.
Hem Rust crate'i (surfpool-sdk) hem de JS bağlamaları (@solana/surfpool)
aynı çalışma zamanını sarar. JS paketi, macOS (Intel + Apple Silicon) ve Linux
x86-64 için napi-rs aracılığıyla önceden derlenmiş yerel ikili dosyalar içerir.
Hızlı Başlangıç
SDK'yı yükleyin, bir Surfnet başlatın, RPC uç noktasına istek gönderin, ardından durdurun. Portlar dinamik olarak tahsis edildiğinden paralel testler aynı süreci güvenle paylaşabilir.
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());}
Kutunun İçindekiler
Kurulum
Cargo ve npm kurulumu, desteklenen platformlar, yerel ikili dosyalar
Yapılandırma
Yapılandırıcı seçenekleri: uzak RPC yedeklemesi, blok üretimi, slot zamanlaması, özellik geçitleri, özel ödeyiciler
Cheatcode'lar
SOL/token fonlama, hesap değiştirme, upstream durumu sıfırlama, mainnet'ten akış
Zaman Yolculuğu
Mutlak bir slot'a, epoch'a veya Unix zaman damgasına atlayın
Programlar
Anchor çalışma alanı otomatik keşfi, açık .so + IDL dağıtımı
Olaylar
Assertions ve loglama için çalışma zamanı olaylarını boşaltın
Rust Referansı
Eksiksiz surfpool-sdk crate API'si
JS Referansı
Eksiksiz @solana/surfpool TypeScript API'si
surfpool start'den Farkı Nedir
CLI, dış süreçlerden bağlandığınız uzun ömürlü bir Surfnet çalıştırır. SDK ise Surfnet'i testinizin içinde çalıştırır; bu şu anlama gelir:
- Harici port yönetimi yok — her
Surfnet::start()boş bir porta bağlanır, böylece test paketleri--portbayrakları olmadan paralel olarak çalışabilir. - Senkron kapatma —
stop(), çalışma zamanı portlarını gerçekten serbest bıraktığında döner. - Yazılı metotlar olarak hile kodları —
surfpool starttarafından JSON-RPC üzerinden sunulan arayüzün aynısı, yerel Rust metotları ve napi-rs bağlamaları olarak kullanılabilir. - Doğrudan olay gözlemi — çalışma zamanı olayları, WebSocket aboneliği olmadan işlem içi bir kanal (Rust) veya drain metodu (JS) aracılığıyla sunulur.
SDK Ne Zaman Kullanılır
Şu durumlarda SDK'ya başvurun:
- Bir Anchor programı için entegrasyon testleri yazıyor ve bir dizi hile kodlu kurulumun ardından token bakiyelerini doğrulamak istiyorsunuz.
- Paralel test işçilerinin her birinin izole bir Surfnet'e sahip olmasına ihtiyaç duyuyorsunuz.
- Bir test içinde mainnet'e özgü hesapları çatallamak (
remoteRpcUrl+streamAccount) istiyorsunuz. - Kilitleme, bloke veya son kullanma mantığını test etmeden önce çalışma zamanını belirli bir slot veya zaman damgasına atlayarak deterministik saatler elde etmek istiyorsunuz.
CLI'nin daha uygun olduğu durumlar
Birden fazla süreç boyunca varlığını sürdüren bir Surfnet istediğinizde —
örneğin, bir CLI, tarayıcı cüzdanı ve özel istemci scriptlerinin aynı örneği
paylaşması gerektiğinde — bunun yerine surfpool start kullanın.
Is this page helpful?