Το 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());}
Τι Περιλαμβάνεται
Εγκατάσταση
Ρύθμιση Cargo και npm, υποστηριζόμενες πλατφόρμες, native binaries
Διαμόρφωση
Επιλογές builder: απομακρυσμένο RPC fallback, παραγωγή block, χρονισμός slot, feature gates, προσαρμοσμένοι payers
Cheatcodes
Χρηματοδότηση SOL/tokens, τροποποίηση λογαριασμών, επαναφορά upstream κατάστασης, ροή από το mainnet
Ταξίδι στο Χρόνο
Μετάβαση σε απόλυτο slot, epoch ή Unix timestamp
Προγράμματα
Αυτόματη ανακάλυψη Anchor workspace, ρητή ανάπτυξη .so + IDL
Συμβάντα
Άντληση συμβάντων runtime για assertions και καταγραφή
Αναφορά Rust
Πλήρες API του surfpool-sdk crate
Αναφορά JS
Πλήρες TypeScript API του @solana/surfpool
Πώς Διαφέρει από το 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?