Surfpool SDK

Surfpool SDK käynnistää täyden Surfnet-ajonaikaisen ympäristön testiprosessisi sisällä. Käytä sitä, kun haluat paikallisen Solana-yhteensopivan RPC-päätepisteen, valmiiksi rahoitetun maksajan ja suoran tilamanipulaation ilman surfpool start:n käynnistämistä erillisenä prosessina.

Sekä Rust-crate (surfpool-sdk) että JS-sidokset (@solana/surfpool) käyttävät samaa ajonaikaista ympäristöä. JS-paketti toimittaa valmiiksi käännetyt natiivibinaarit napi-rs:n kautta macOS:lle (Intel + Apple Silicon) ja Linux x86-64:lle.

Pika-aloitus

Asenna SDK, käynnistä Surfnet, käytä RPC-päätepistettä ja pysäytä se. Rinnakkaiset testit jakavat saman prosessin turvallisesti, koska portit allokoidaan dynaamisesti.

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());
}

Mitä pakettiin sisältyy

Miten se eroaa surfpool start:stä

CLI ajaa pitkäikäistä Surfnettiä, johon yhdistät ulkopuolisista prosesseista. SDK ajaa Surfnetiä sisällä testissäsi, mikä tarkoittaa:

  • Ei ulkoista porttien hallintaa — jokainen Surfnet::start() sitoutuu vapaaseen porttiin, joten testipaketit voivat suorittaa rinnakkain ilman --port-lippuja.
  • Synkroninen alasajostop() palaa, kun ajoympäristö on todella vapauttanut porttinsa.
  • Huijauskomennot tyypitettyinä metodteina — sama rajapinta, jonka surfpool start tarjoaa JSON-RPC:n kautta, on saatavilla natiiveina Rust-metodeina ja napi-rs-sidoksina.
  • Suora tapahtumien tarkkailu — ajoympäristön tapahtumat ovat saatavilla prosessin sisäisen kanavan (Rust) tai drain-metodin (JS) kautta ilman WebSocket-tilausta.

Milloin SDK:ta kannattaa käyttää

Käytä SDK:ta, kun:

  • Kirjoitat integraatiotestejä Anchor-ohjelmalle ja haluat tarkistaa tokenisaldot koodattujen asetusten sarjan jälkeen.
  • Tarvitset rinnakkaisia testityöntekijöitä, joilla kullakin on oma eristetty Surfnet.
  • Haluat haarauttaa mainnet-tilit (remoteRpcUrl + streamAccount) testin sisällä.
  • Tarvitset deterministiset kellot siirtämällä ajoympäristön tiettyyn slot-arvoon tai aikaleimaan ennen vesting-, lukitus- tai vanhentumislogiikan testaamista.

Milloin CLI sopii paremmin

Käytä surfpool start sen sijaan, kun haluat Surfnetin, joka säilyy useiden prosessien välillä — esimerkiksi silloin, kun CLI, selainlompakko ja mukautetut asiakasohjelmat tarvitsevat kaikkia saman instanssin.

Is this page helpful?

Sisällysluettelo

Muokkaa sivua
© 2026 Solana Foundation. Kaikki oikeudet pidätetään.