Documentation SolanaChaîne d'outils

Commandes CLI

Le CLI surfpool démarre des Surfnets locaux, exécute des Runbooks, liste les Runbooks d'un manifeste de workspace, génère des complétions shell et démarre le serveur MCP de Surfpool.

Commandes

CommandeDescription
surfpool startDémarrer un Surfnet local. Alias : surfpool simnet
surfpool runExécuter un Runbook
surfpool lsLister les Runbooks dans le workspace courant
surfpool completionsGénérer des scripts de complétion shell
surfpool mcpDémarrer le serveur MCP de Surfpool

surfpool start

Démarre un Surfnet local. Si vous l'exécutez dans un répertoire de programme Solana, Surfpool peut générer et exécuter des Runbooks pour déployer vos programmes.

surfpool start [OPTIONS]

Réseau & Ports

OptionCourtTypeDéfautDescription
--port <PORT>-pentier8899Lier le serveur JSON-RPC à ce port.
--ws-port <PORT>-wentier8900Lier le serveur WebSocket à ce port.
--host <HOST>-ochaîne127.0.0.1Lier les services RPC, WebSocket et Studio à cet hôte.
--rpc-url <RPC_URL>-uchaîneaucunForker depuis cette URL RPC de source de données. Conflits avec --network. Peut aussi être défini avec SURFPOOL_DATASOURCE_RPC_URL.
--network <NETWORK>-nenumaucunForker depuis un réseau Solana prédéfini. Valeurs : mainnet, devnet, testnet. Conflits avec --rpc-url.
--offlineaucunbooléenfalseExécuter sans source de données RPC distante.

Projet & Déploiement

FlagShortTypeDefaultDescription
--manifest-file-path <MANIFEST_PATH>-mpath./txtx.ymlChemin vers le manifeste du runbook.
--no-deploynonebooleanfalseDésactiver les déploiements automatiques de programmes.
--runbook <RUNBOOK>-rstring[]deploymentID du runbook à exécuter après le démarrage. Répétable.
--runbook-input <INPUT_PATH>-ipath[]noneFichier d'entrée à fournir à l'exécution du runbook. Répétable.
--yes-ybooleanfalseIgnorer les invites de génération du runbook.
--watchnonebooleanfalseRedéployer lorsque les artefacts du programme changent.
--artifacts-path <ARTIFACTS_PATH>nonepathnoneRépertoire contenant les artefacts du programme .so. Par défaut target/deploy si omis.
--legacy-anchor-compatibilitynonebooleanfalseUtiliser les paramètres par défaut adaptés aux suites de tests Anchor héritées.
--anchor-test-config-path <TEST_TOML>nonepath[]noneFichier Test.toml Anchor à inspecter. Répétable.

Comptes & État

FlagShortTypeDefaultDescription
--airdrop <PUBKEY>-apubkey[]nonepubkey pour recevoir un airdrop de SOL au démarrage. Répétable.
--airdrop-keypair-path <KEYPAIR_PATH>-kpath[]~/.config/solana/id.jsonChemin du keypair dont le pubkey doit recevoir un airdrop. Répétable.
--airdrop-amount <LAMPORTS>-qinteger10000000000000lamports à distribuer en airdrop à chaque compte au démarrage.
--snapshot <SNAPSHOT_PATH>nonepath[]noneInstantané de compte JSON à précharger. Répétable. Les fichiers ultérieurs remplacent les fichiers antérieurs pour les clés en double.
--db <DB_URL>nonestringnoneURL de connexion à la base de données pour l'état persistant de Surfnet. Utilisez :memory: pour SQLite en mémoire, un fichier .sqlite pour SQLite sur disque, ou une URL PostgreSQL avec la fonctionnalité postgres.
--surfnet-id <SURFNET_ID>nonestringdefaultEspace de noms de stockage pour cette instance Surfnet.

Runtime & UI

FlagShortTypeDefaultDescription
--no-tuinonebooleanfalseAfficher les logs au lieu de lancer l'interface terminal.
--no-studiononebooleanfalseDésactiver Surfpool Studio.
--studio-port <PORT>-sinteger18488Lier Studio à ce port.
--daemonnonebooleanfalseExécuter Surfpool en arrière-plan. Le mode daemon est réservé à Linux.
--cinonebooleanfalseUtiliser les paramètres adaptés à la CI. Cela désactive le TUI, Studio, le profilage des instructions et la sortie des logs.

Comportement SVM

FlagShortTypeDefaultDescription
--slot-time <MILLISECONDS>-tinteger400Durée du slot en millisecondes.
--block-production-mode <MODE>-benumclockMode de production des blocs.
--feature <FEATURE_PUBKEY>-fpubkey[]noneActiver une fonctionnalité SVM par pubkey. Répétable. Les noms de fonctionnalités sont dépréciés mais toujours acceptés pour les noms précédemment pris en charge.
--disable-feature <FEATURE_PUBKEY>nonepubkey[]noneDésactiver une fonctionnalité SVM par pubkey. Répétable. Les noms de fonctionnalités sont dépréciés mais toujours acceptés pour les noms précédemment pris en charge.
--features-allnonebooleanfalseActiver toutes les fonctionnalités SVM depuis agave-feature-set.
--skip-signature-verificationnonebooleanfalseIgnorer la vérification des signatures de transaction.
--skip-blockhash-checknonebooleanfalseIgnorer la validation du blockhash de transaction.

Observabilité & Performance

FlagShortTypeDefaultDescription
--geyser-plugin-config <PLUGIN_CONFIG_PATH>-gpath[]noneFichier de configuration du plugin Geyser à charger. Répétable.
--disable-instruction-profilingnonebooleanfalseDésactiver le profilage des instructions.
--max-profiles <COUNT>-cinteger200Profils de transactions à conserver en mémoire. Des valeurs plus élevées augmentent l'utilisation de la mémoire.
--log-bytes-limit <BYTES>noneinteger10000Nombre maximal d'octets stockés pour chaque journal de transaction. Définir sur 0 pour des journaux illimités.
--log-level <LEVEL>-lenuminfoNiveau de journalisation de Simnet. Valeurs : trace, debug, info, warn, error, none.
--log-path <LOG_DIR>nonepath.surfpool/logsRépertoire pour les journaux Simnet.
--metrics-enablednonebooleanenv: SURFPOOL_METRICS_ENABLEDActiver le point de terminaison des métriques Prometheus. Disponible lorsque Surfpool est compilé avec la fonctionnalité prometheus.
--metrics-addr <METRICS_ADDR>nonestring127.0.0.1:9000Adresse du point de terminaison des métriques Prometheus. Peut également être défini avec SURFPOOL_METRICS_ADDR. Disponible lorsque Surfpool est compilé avec la fonctionnalité prometheus.

Compatibilité dépréciée

FlagShortTypeDefaultDescription
--subgraph-db <SUBGRAPH_DB>-dstring:memory:Déprécié et masqué dans surfpool start --help. Les scripts existants peuvent toujours le transmettre pour des raisons de compatibilité.

Exemples

Démarrer avec les paramètres par défaut :

surfpool start

Forker le devnet :

surfpool start --network devnet

Utiliser une URL RPC de source de données personnalisée :

surfpool start --rpc-url https://api.mainnet-beta.solana.com

Afficher les journaux au lieu de lancer l'interface TUI :

surfpool start --no-tui

Démarrer sans source de données RPC distante :

surfpool start --offline

Effectuer un airdrop de SOL vers plusieurs comptes :

surfpool start --airdrop <PUBKEY> --airdrop <PUBKEY>

Charger l'état des comptes depuis des snapshots :

surfpool start --snapshot ./snapshot1.json --snapshot ./snapshot2.json

Redéployer les programmes lorsque target/deploy change :

surfpool start --watch

Persister l'état de Surfnet dans une base de données SQLite sur disque :

surfpool start --db ./surfnet.sqlite --surfnet-id local-dev

surfpool run

Exécute un Runbook. Vous pouvez exécuter un fichier .tx directement ou référencer un Runbook déclaré dans un manifeste txtx.yml.

surfpool run [OPTIONS] <RUNBOOK>

Arguments

ArgumentTypeDescription
<RUNBOOK>stringID du Runbook issu de txtx.yml, ou chemin vers un fichier .tx.

Projet

FlagShortTypeDefaultDescription
--manifest-file-path <MANIFEST_PATH>-mpath./txtx.ymlChemin vers le manifeste du runbook.
--env <ENVIRONMENT>nonestringnoneEnvironnement de txtx.yml à utiliser.

Mode d'exécution

Ces options sont mutuellement exclusives. Si aucune n'est spécifiée, Surfpool utilise la supervision par navigateur.

FlagShortTypeDefaultDescription
--unsupervised-ubooleanfalseExécuter sans l'interface de supervision.
--browser-bbooleandefault modeExécuter avec supervision dans l'interface navigateur.
--terminal-tbooleanfalseExécuter avec supervision dans la console terminal.

Entrées & Sorties

IndicateurCourtTypeDéfautDescription
--output-json [<OUTPUT_DIR>]aucunchemin optionnelaucunAffiche ou écrit les sorties du Runbook au format JSON. Si un répertoire est fourni, la sortie est écrite dans un fichier de ce répertoire.
--output <OUTPUT_NAME>aucunchaîneaucunAffiche une sortie nommée à la fin de l'exécution. Entre en conflit avec --output-json.
--input <INPUT_PATH>aucunchemin[]aucunFichier d'entrée à utiliser pour le traitement par lots. Répétable.

Exécution

IndicateurCourtTypeDéfautDescription
--explainaucunbooléenfalseExplique comment le Runbook va s'exécuter.
--force-fbooléenfalseIgnore l'état d'exécution mis en cache.

Interface Superviseur

Ces indicateurs sont disponibles lorsque Surfpool est compilé avec la fonctionnalité supervisor_ui.

IndicateurCourtTypeDéfautDescription
--port <PORT>-pentier8488Port de l'interface Web.
--ip <IP_ADDRESS>-ichaîne127.0.0.1Adresse IP de l'interface Web.

Journalisation

IndicateurCourtTypeDéfautDescription
--log-level <LEVEL>-lénumérationinfoNiveau de journalisation d'exécution du Runbook. Valeurs : trace, debug, info, warn, error.
--log-path <LOG_DIR>aucunchemin.surfpool/logsRépertoire pour les journaux d'exécution du Runbook.

Exemples

Exécuter un Runbook manifest avec supervision du navigateur :

surfpool run deployment

Exécuter sans supervision et écrire les sorties JSON :

surfpool run deployment --unsupervised --output-json .surfpool/runbook-outputs

Exécuter un fichier .tx directement :

surfpool run ./runbooks/deployment.tx

surfpool ls

Liste tous les Runbooks déclarés dans le manifest du workspace.

surfpool ls [OPTIONS]
FlagShortTypeDefaultDescription
--manifest-file-path <MANIFEST_PATH>-mpath./txtx.ymlChemin vers le manifest du runbook.

surfpool completions

Génère des scripts de complétion shell.

surfpool completions <SHELL>
ArgumentTypeDescription
<SHELL>enumShell pour lequel générer les complétions. Valeurs : bash, elvish, fish, powershell, zsh.

surfpool mcp

Démarre le serveur MCP Surfpool pour l'intégration des outils IA.

surfpool mcp

Is this page helpful?

© 2026 Fondation Solana. Tous droits réservés.