La CLI surfpool avvia Surfnet locali, esegue Runbook, elenca i Runbook da un
manifesto del workspace, genera completamenti shell e avvia il server MCP di
Surfpool.
Comandi
| Comando | Descrizione |
|---|---|
surfpool start | Avvia una Surfnet locale. Alias: surfpool simnet |
surfpool run | Esegui un Runbook |
surfpool ls | Elenca i Runbook nel workspace corrente |
surfpool completions | Genera script di completamento shell |
surfpool mcp | Avvia il server MCP di Surfpool |
surfpool start
Avvia una Surfnet locale. Se eseguito in una directory di programma Solana, Surfpool può generare ed eseguire Runbook per distribuire i tuoi programmi.
surfpool start [OPTIONS]
Rete e Porte
| Flag | Breve | Tipo | Predefinito | Descrizione |
|---|---|---|---|---|
--port <PORT> | -p | intero | 8899 | Associa il server JSON-RPC a questa porta. |
--ws-port <PORT> | -w | intero | 8900 | Associa il server WebSocket a questa porta. |
--host <HOST> | -o | stringa | 127.0.0.1 | Associa i servizi RPC, WebSocket e Studio a questo host. |
--rpc-url <RPC_URL> | -u | stringa | nessuno | Esegui il fork da questo URL RPC della sorgente dati. In conflitto con --network. Può essere impostato anche con SURFPOOL_DATASOURCE_RPC_URL. |
--network <NETWORK> | -n | enum | nessuno | Esegui il fork da una rete Solana predefinita. Valori: mainnet, devnet, testnet. In conflitto con --rpc-url. |
--offline | nessuno | booleano | false | Esegui senza una sorgente dati RPC remota. |
Progetto e Distribuzione
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Percorso del manifesto del runbook. |
--no-deploy | none | boolean | false | Disabilita i deploy automatici dei programmi. |
--runbook <RUNBOOK> | -r | string[] | deployment | ID del runbook da eseguire dopo l'avvio. Ripetibile. |
--runbook-input <INPUT_PATH> | -i | path[] | none | File di input da fornire all'esecuzione del runbook. Ripetibile. |
--yes | -y | boolean | false | Salta i prompt di generazione del runbook. |
--watch | none | boolean | false | Ridistribuisce quando gli artefatti del programma cambiano. |
--artifacts-path <ARTIFACTS_PATH> | none | path | none | Directory contenente gli artefatti del programma .so. Se omessa, il valore predefinito è target/deploy. |
--legacy-anchor-compatibility | none | boolean | false | Usa le impostazioni predefinite adatte alle suite di test Anchor legacy. |
--anchor-test-config-path <TEST_TOML> | none | path[] | none | File Test.toml di Anchor da ispezionare. Ripetibile. |
Account e Stato
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--airdrop <PUBKEY> | -a | pubkey[] | none | pubkey a cui inviare un airdrop di SOL all'avvio. Ripetibile. |
--airdrop-keypair-path <KEYPAIR_PATH> | -k | path[] | ~/.config/solana/id.json | Percorso del keypair la cui pubkey deve ricevere un airdrop. Ripetibile. |
--airdrop-amount <LAMPORTS> | -q | integer | 10000000000000 | lamport da inviare in airdrop a ciascun account all'avvio. |
--snapshot <SNAPSHOT_PATH> | none | path[] | none | Snapshot dell'account JSON da precaricare. Ripetibile. I file successivi sovrascrivono quelli precedenti per le chiavi duplicate. |
--db <DB_URL> | none | string | none | URL di connessione al database per lo stato persistente di Surfnet. Usa :memory: per SQLite in memoria, un file .sqlite per SQLite su disco, oppure un URL PostgreSQL se compilato con la feature postgres. |
--surfnet-id <SURFNET_ID> | none | string | default | Namespace di archiviazione per questa istanza di Surfnet. |
Runtime e UI
| Flag | Short | Tipo | Default | Descrizione |
|---|---|---|---|---|
--no-tui | none | boolean | false | Stampa i log invece di avviare l'interfaccia terminale. |
--no-studio | none | boolean | false | Disabilita Surfpool Studio. |
--studio-port <PORT> | -s | integer | 18488 | Associa Studio a questa porta. |
--daemon | none | boolean | false | Esegui Surfpool come processo in background. La modalità daemon è disponibile solo su Linux. |
--ci | none | boolean | false | Usa impostazioni adatte alla CI. Disabilita la TUI, Studio, la profilazione delle istruzioni e l'output dei log. |
Comportamento SVM
| Flag | Short | Tipo | Default | Descrizione |
|---|---|---|---|---|
--slot-time <MILLISECONDS> | -t | integer | 400 | Tempo per slot in millisecondi. |
--block-production-mode <MODE> | -b | enum | clock | Modalità di produzione dei blocchi. |
--feature <FEATURE_PUBKEY> | -f | pubkey[] | none | Abilita una funzionalità SVM tramite pubkey. Ripetibile. I nomi delle funzionalità sono deprecati ma ancora accettati per i nomi precedentemente supportati. |
--disable-feature <FEATURE_PUBKEY> | none | pubkey[] | none | Disabilita una funzionalità SVM tramite pubkey. Ripetibile. I nomi delle funzionalità sono deprecati ma ancora accettati per i nomi precedentemente supportati. |
--features-all | none | boolean | false | Abilita tutte le funzionalità SVM da agave-feature-set. |
--skip-signature-verification | none | boolean | false | Salta la verifica della firma delle transazioni. |
--skip-blockhash-check | none | boolean | false | Salta la validazione del blockhash delle transazioni. |
Osservabilità e prestazioni
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--geyser-plugin-config <PLUGIN_CONFIG_PATH> | -g | path[] | none | File di configurazione del plugin Geyser da caricare. Ripetibile. |
--disable-instruction-profiling | none | boolean | false | Disabilita la profilazione delle istruzioni. |
--max-profiles <COUNT> | -c | integer | 200 | Profili di transazione da conservare in memoria. Valori più alti aumentano l'utilizzo della memoria. |
--log-bytes-limit <BYTES> | none | integer | 10000 | Numero massimo di byte memorizzati per ogni log di transazione. Impostare su 0 per log illimitati. |
--log-level <LEVEL> | -l | enum | info | Livello di log di Simnet. Valori: trace, debug, info, warn, error, none. |
--log-path <LOG_DIR> | none | path | .surfpool/logs | Directory per i log di Simnet. |
--metrics-enabled | none | boolean | env: SURFPOOL_METRICS_ENABLED | Abilita l'endpoint delle metriche Prometheus. Disponibile quando Surfpool è compilato con la funzionalità prometheus. |
--metrics-addr <METRICS_ADDR> | none | string | 127.0.0.1:9000 | Indirizzo dell'endpoint delle metriche Prometheus. Può essere impostato anche con SURFPOOL_METRICS_ADDR. Disponibile quando Surfpool è compilato con la funzionalità prometheus. |
Compatibilità deprecata
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--subgraph-db <SUBGRAPH_DB> | -d | string | :memory: | Deprecato e nascosto da surfpool start --help. Gli script esistenti possono ancora passarlo per compatibilità. |
Esempi
Avvia con le impostazioni predefinite:
surfpool start
Fork di devnet:
surfpool start --network devnet
Usa un URL RPC con datasource personalizzato:
surfpool start --rpc-url https://api.mainnet-beta.solana.com
Stampa i log invece di avviare la TUI:
surfpool start --no-tui
Avvia senza una sorgente dati RPC remota:
surfpool start --offline
Airdrop SOL su più account:
surfpool start --airdrop <PUBKEY> --airdrop <PUBKEY>
Carica lo stato dell'account dagli snapshot:
surfpool start --snapshot ./snapshot1.json --snapshot ./snapshot2.json
Ridistribuisci i programmi quando target/deploy cambia:
surfpool start --watch
Mantieni lo stato di Surfnet in un database SQLite su disco:
surfpool start --db ./surfnet.sqlite --surfnet-id local-dev
surfpool run
Esegue un Runbook. Puoi eseguire direttamente un file .tx oppure fare
riferimento a un Runbook dichiarato in un manifest txtx.yml.
surfpool run [OPTIONS] <RUNBOOK>
Argomenti
| Argomento | Tipo | Descrizione |
|---|---|---|
<RUNBOOK> | string | ID del Runbook da txtx.yml, oppure percorso a un file .tx. |
Progetto
| Flag | Breve | Tipo | Predefinito | Descrizione |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Percorso al manifest del runbook. |
--env <ENVIRONMENT> | none | string | none | Ambiente da txtx.yml da utilizzare. |
Modalità di Esecuzione
Questi flag sono mutualmente esclusivi. Se nessuno è specificato, Surfpool utilizza la supervisione del browser.
| Flag | Breve | Tipo | Predefinito | Descrizione |
|---|---|---|---|---|
--unsupervised | -u | boolean | false | Esegui senza l'interfaccia di supervisione. |
--browser | -b | boolean | modalità predefinita | Esegui con supervisione nell'interfaccia browser. |
--terminal | -t | boolean | false | Esegui con supervisione nella console del terminale. |
Input & Output
| Flag | Short | Tipo | Default | Descrizione |
|---|---|---|---|---|
--output-json [<OUTPUT_DIR>] | none | percorso opzionale | none | Stampa o scrivi gli output del Runbook in formato JSON. Se viene fornita una directory, l'output viene scritto in un file all'interno di essa. |
--output <OUTPUT_NAME> | none | stringa | none | Stampa un output specifico al termine dell'esecuzione. In conflitto con --output-json. |
--input <INPUT_PATH> | none | percorso[] | none | File di input da utilizzare per l'elaborazione in batch. Ripetibile. |
Esecuzione
| Flag | Short | Tipo | Default | Descrizione |
|---|---|---|---|---|
--explain | none | booleano | false | Mostra come verrà eseguito il Runbook. |
--force | -f | booleano | false | Ignora lo stato di esecuzione nella cache. |
Interfaccia Supervisor
Questi flag sono disponibili quando Surfpool è compilato con la funzionalità
supervisor_ui.
| Flag | Short | Tipo | Default | Descrizione |
|---|---|---|---|---|
--port <PORT> | -p | intero | 8488 | Porta Web UI. |
--ip <IP_ADDRESS> | -i | stringa | 127.0.0.1 | Indirizzo IP Web UI. |
Logging
| Flag | Short | Tipo | Default | Descrizione |
|---|---|---|---|---|
--log-level <LEVEL> | -l | enum | info | Livello di log dell'esecuzione del Runbook. Valori: trace, debug, info, warn, error. |
--log-path <LOG_DIR> | none | percorso | .surfpool/logs | Directory per i log di esecuzione del runbook. |
Esempi
Esegui un Runbook manifest con supervisione del browser:
surfpool run deployment
Esegui senza supervisione e scrivi gli output in JSON:
surfpool run deployment --unsupervised --output-json .surfpool/runbook-outputs
Esegui direttamente un file .tx:
surfpool run ./runbooks/deployment.tx
surfpool ls
Elenca tutti i Runbook dichiarati nel manifest del workspace.
surfpool ls [OPTIONS]
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Percorso del manifest del runbook. |
surfpool completions
Genera script di completamento per la shell.
surfpool completions <SHELL>
| Argument | Type | Description |
|---|---|---|
<SHELL> | enum | Shell per cui generare i completamenti. Valori: bash, elvish, fish, powershell, zsh. |
surfpool mcp
Avvia il server MCP di Surfpool per l'integrazione con strumenti AI.
surfpool mcp
Is this page helpful?