Asennus

Surfpool SDK julkaistaan kahtena artefaktina, jotka käyttävät samaa Rust-suoritusympäristöä:

KieliPakettiSuoritusympäristö
Rustsurfpool-sdk crates.io:ssäMissä tahansa #[tokio::test]- tai async-suoritusympäristössä
TypeScript / JavaScript@solana/surfpool npm:ssäNode.js 18+ napi-rs-natiivisidosten kautta

Rust

Lisää crate dev-riippuvuudeksi. SDK on async-ensijainen ja edellyttää Tokio-suoritusympäristöä, joten sisällytä tokio ja full-ominaisuus testejä varten.

Cargo.toml
[dev-dependencies]
surfpool-sdk = "1"
tokio = { version = "1", features = ["full"] }

Crate vie uudelleen yleisimmin tarvitsemasi Solana-tyypit, joten yksittäinen use surfpool_sdk::{...} riittää yleensä:

use surfpool_sdk::{
Keypair, Pubkey, RpcClient, Signer, // re-exported Solana types
Surfnet, SurfnetBuilder, SurfnetError, // SDK entry points
BlockProductionMode, SimnetEvent, // re-exported surfpool types
};

Jos tarvitset tyyppiä, jota ei viedä uudelleen, riippuu suoraan taustalla olevasta Solana-cratesta — SDK ei sido sinua mihinkään tiettyyn versioon solana-program:stä tai solana-client:stä.

TypeScript / JavaScript

Asenna dev-riippuvuudeksi valitsemallasi paketinhallintaohjelmalla:

npm install --save-dev @solana/surfpool
# or
pnpm add -D @solana/surfpool
# or
yarn add --dev @solana/surfpool

Paketti vie yhden Surfnet-luokan sekä sitä tukevat tyypit:

import {
Surfnet, // entry point
type SurfnetConfig, // config for startWithConfig
type DeployOptions, // explicit program deploy
type SetTokenAccountUpdate,
type ResetAccountOptions,
type StreamAccountOptions,
type SimnetEventValue, // event drained from drainEvents()
type KeypairInfo, // shape returned by Surfnet.newKeypair()
type EpochInfoValue,
type ClockValue
} from "@solana/surfpool";

Tuetut alustat

JS-paketti riippuu alustakohtaisista natiiveista moduuleista, jotka asennetaan automaattisesti optionalDependencies-riippuvuuksina:

AlustaKohdekolmikkonpm-paketti
macOS Apple Siliconaarch64-apple-darwin@solana/surfpool-darwin-arm64
macOS Intelx86_64-apple-darwin@solana/surfpool-darwin-x64
Linux x86-64 (glibc)x86_64-unknown-linux-gnu@solana/surfpool-linux-x64-gnu

Ei-tuettu alusta

Jos paketti asennetaan alustalle, jolle ei löydy vastaavaa binaaria, asennus valmistuu, mutta Surfnet.start() aiheuttaa virheen suoritusaikana. Avaa issue, jos tarvitset tukea lisäkohteelle.

Vaatimukset

  • Node.js 18 tai uudempi. SDK käyttää Uint8Array, natiiveja fetch- ja assert/strict-ominaisuuksia paketista node:test.
  • Kirjoitettava väliaikaishakemisto. Jokainen Surfnet-instanssi varaa portteja ja saattaa kirjoittaa tilapäistä dataa käyttöjärjestelmän temp-hakemistoon.

Asennuksen Varmentaminen

Yksirivisellä smoke-testillä varmistetaan, että ajoympäristö käynnistyy ja RPC-päätepiste hyväksyy pyynnöt.

use surfpool_sdk::{Signer, Surfnet};
#[tokio::test]
async fn surfpool_sdk_smoke() {
let surfnet = Surfnet::start().await.expect("start surfnet");
let balance = surfnet
.rpc_client()
.get_balance(&surfnet.payer().pubkey())
.expect("get balance");
assert!(balance > 0);
}

Vianmääritys

`failed to bind to port` on Rust

Jokin toinen prosessi varaa 0.0.0.0 aggressiivisesti. Suorita testi uudelleen — SDK valitsee uuden portin jokaisella kutsukerralla. Jos virhe toistuu, tarkista onko surfpool-prosesseja jäänyt taustalle.

`Cannot find module '@solana/surfpool-...'`

Alustasi optionalDependencies-merkintää ei asennettu. Suorita asennus uudelleen komennolla --include=optional tai tarkista, että alustasi löytyy yllä olevasta tuetuista alustoista.

`stop()` jumittuu JS:ssä

Varmista, että kutsut stop():ää kerran per start(). Node-kääre pitää RPC- ja WebSocket-palvelimet sidottuina, kunnes stop() palaa.

Is this page helpful?

Sisällysluettelo

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