Surfpool SDK

Το Surfpool SDK εκκινεί ένα πλήρες runtime Surfnet μέσα στη διεργασία δοκιμών σας. Χρησιμοποιήστε το όταν θέλετε ένα τοπικό RPC endpoint συμβατό με Solana, έναν προχρηματοδοτημένο payer και άμεση χειραγώγηση κατάστασης χωρίς να εκκινήσετε το surfpool start ως ξεχωριστή διεργασία.

Τόσο το Rust crate (surfpool-sdk) όσο και τα JS bindings (@solana/surfpool) τυλίγουν το ίδιο runtime. Το πακέτο JS παρέχεται με προ-μεταγλωττισμένα native binaries μέσω napi-rs για macOS (Intel + Apple Silicon) και Linux x86-64.

Γρήγορη Εκκίνηση

Εγκαταστήστε το SDK, εκκινήστε ένα Surfnet, επικοινωνήστε με το RPC endpoint και στη συνέχεια σταματήστε το. Παράλληλες δοκιμές μοιράζονται με ασφάλεια την ίδια διεργασία, καθώς οι θύρες εκχωρούνται δυναμικά.

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

Τι Περιλαμβάνεται

Πώς Διαφέρει από το surfpool start

Το CLI εκτελεί ένα μακρόβιο Surfnet στο οποίο συνδέεστε από εξωτερικές διεργασίες. Το SDK εκτελεί το Surfnet μέσα στις δοκιμές σας, που σημαίνει:

  • Χωρίς διαχείριση εξωτερικών θυρών — κάθε Surfnet::start() δεσμεύεται σε μια ελεύθερη θύρα, οπότε οι δοκιμαστικές σουίτες μπορούν να εκτελούνται παράλληλα χωρίς σημαίες --port.
  • Σύγχρονη αποδέσμευση — το stop() επιστρέφει όταν το runtime έχει πράγματι αποδεσμεύσει τις θύρες του.
  • Cheatcodes ως τυποποιημένες μέθοδοι — η ίδια διεπαφή που εκτίθεται μέσω JSON-RPC από το surfpool start είναι διαθέσιμη ως native μέθοδοι Rust και napi-rs bindings.
  • Άμεση παρατήρηση συμβάντων — τα συμβάντα runtime εκτίθενται μέσω ενός ενδο-διεργασιακού καναλιού (Rust) ή μιας μεθόδου drain (JS) χωρίς εγγραφή μέσω WebSocket.

Πότε να Χρησιμοποιήσετε το SDK

Επιλέξτε το SDK όταν:

  • Γράφετε integration tests για ένα πρόγραμμα Anchor και θέλετε να επαληθεύσετε υπόλοιπα token μετά από μια ακολουθία ρυθμίσεων με cheatcodes.
  • Χρειάζεστε παράλληλους test workers που ο καθένας να έχει ένα απομονωμένο Surfnet.
  • Θέλετε να κάνετε fork συγκεκριμένων λογαριασμών του mainnet (remoteRpcUrl + streamAccount) μέσα σε ένα test.
  • Χρειάζεστε ντετερμινιστικά ρολόγια μεταπηδώντας το runtime σε ένα συγκεκριμένο slot ή χρονική σήμανση πριν δοκιμάσετε λογική vesting, lockup ή λήξης.

Πότε το CLI είναι η καλύτερη επιλογή

Χρησιμοποιήστε το surfpool start όταν θέλετε ένα Surfnet που επιβιώνει σε πολλαπλές διεργασίες — για παράδειγμα, όταν ένα CLI, ένα browser wallet και custom client scripts χρειάζεται να μοιράζονται την ίδια instance.

Is this page helpful?

Πίνακας Περιεχομένων

Επεξεργασία Σελίδας
© 2026 Ίδρυμα Solana. Με επιφύλαξη παντός δικαιώματος.