Surfpool SDK

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

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 --port bayrakları olmadan paralel olarak çalışabilir.
  • Senkron kapatmastop(), çalışma zamanı portlarını gerçekten serbest bıraktığında döner.
  • Yazılı metotlar olarak hile kodlarısurfpool start tarafı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?

İçindekiler

Sayfayı Düzenle
© 2026 Solana Vakfı. Tüm hakları saklıdır.