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
| Commande | Description |
|---|---|
surfpool start | Démarrer un Surfnet local. Alias : surfpool simnet |
surfpool run | Exécuter un Runbook |
surfpool ls | Lister les Runbooks dans le workspace courant |
surfpool completions | Générer des scripts de complétion shell |
surfpool mcp | Dé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
| Option | Court | Type | Défaut | Description |
|---|---|---|---|---|
--port <PORT> | -p | entier | 8899 | Lier le serveur JSON-RPC à ce port. |
--ws-port <PORT> | -w | entier | 8900 | Lier le serveur WebSocket à ce port. |
--host <HOST> | -o | chaîne | 127.0.0.1 | Lier les services RPC, WebSocket et Studio à cet hôte. |
--rpc-url <RPC_URL> | -u | chaîne | aucun | Forker depuis cette URL RPC de source de données. Conflits avec --network. Peut aussi être défini avec SURFPOOL_DATASOURCE_RPC_URL. |
--network <NETWORK> | -n | enum | aucun | Forker depuis un réseau Solana prédéfini. Valeurs : mainnet, devnet, testnet. Conflits avec --rpc-url. |
--offline | aucun | booléen | false | Exécuter sans source de données RPC distante. |
Projet & Déploiement
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Chemin vers le manifeste du runbook. |
--no-deploy | none | boolean | false | Désactiver les déploiements automatiques de programmes. |
--runbook <RUNBOOK> | -r | string[] | deployment | ID du runbook à exécuter après le démarrage. Répétable. |
--runbook-input <INPUT_PATH> | -i | path[] | none | Fichier d'entrée à fournir à l'exécution du runbook. Répétable. |
--yes | -y | boolean | false | Ignorer les invites de génération du runbook. |
--watch | none | boolean | false | Redéployer lorsque les artefacts du programme changent. |
--artifacts-path <ARTIFACTS_PATH> | none | path | none | Répertoire contenant les artefacts du programme .so. Par défaut target/deploy si omis. |
--legacy-anchor-compatibility | none | boolean | false | Utiliser les paramètres par défaut adaptés aux suites de tests Anchor héritées. |
--anchor-test-config-path <TEST_TOML> | none | path[] | none | Fichier Test.toml Anchor à inspecter. Répétable. |
Comptes & État
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--airdrop <PUBKEY> | -a | pubkey[] | none | pubkey pour recevoir un airdrop de SOL au démarrage. Répétable. |
--airdrop-keypair-path <KEYPAIR_PATH> | -k | path[] | ~/.config/solana/id.json | Chemin du keypair dont le pubkey doit recevoir un airdrop. Répétable. |
--airdrop-amount <LAMPORTS> | -q | integer | 10000000000000 | lamports à distribuer en airdrop à chaque compte au démarrage. |
--snapshot <SNAPSHOT_PATH> | none | path[] | none | Instantané 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> | none | string | none | URL 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> | none | string | default | Espace de noms de stockage pour cette instance Surfnet. |
Runtime & UI
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--no-tui | none | boolean | false | Afficher les logs au lieu de lancer l'interface terminal. |
--no-studio | none | boolean | false | Désactiver Surfpool Studio. |
--studio-port <PORT> | -s | integer | 18488 | Lier Studio à ce port. |
--daemon | none | boolean | false | Exécuter Surfpool en arrière-plan. Le mode daemon est réservé à Linux. |
--ci | none | boolean | false | Utiliser les paramètres adaptés à la CI. Cela désactive le TUI, Studio, le profilage des instructions et la sortie des logs. |
Comportement SVM
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--slot-time <MILLISECONDS> | -t | integer | 400 | Durée du slot en millisecondes. |
--block-production-mode <MODE> | -b | enum | clock | Mode de production des blocs. |
--feature <FEATURE_PUBKEY> | -f | pubkey[] | none | Activer 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> | none | pubkey[] | none | Dé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-all | none | boolean | false | Activer toutes les fonctionnalités SVM depuis agave-feature-set. |
--skip-signature-verification | none | boolean | false | Ignorer la vérification des signatures de transaction. |
--skip-blockhash-check | none | boolean | false | Ignorer la validation du blockhash de transaction. |
Observabilité & Performance
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--geyser-plugin-config <PLUGIN_CONFIG_PATH> | -g | path[] | none | Fichier de configuration du plugin Geyser à charger. Répétable. |
--disable-instruction-profiling | none | boolean | false | Désactiver le profilage des instructions. |
--max-profiles <COUNT> | -c | integer | 200 | Profils de transactions à conserver en mémoire. Des valeurs plus élevées augmentent l'utilisation de la mémoire. |
--log-bytes-limit <BYTES> | none | integer | 10000 | Nombre maximal d'octets stockés pour chaque journal de transaction. Définir sur 0 pour des journaux illimités. |
--log-level <LEVEL> | -l | enum | info | Niveau de journalisation de Simnet. Valeurs : trace, debug, info, warn, error, none. |
--log-path <LOG_DIR> | none | path | .surfpool/logs | Répertoire pour les journaux Simnet. |
--metrics-enabled | none | boolean | env: SURFPOOL_METRICS_ENABLED | Activer le point de terminaison des métriques Prometheus. Disponible lorsque Surfpool est compilé avec la fonctionnalité prometheus. |
--metrics-addr <METRICS_ADDR> | none | string | 127.0.0.1:9000 | Adresse 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
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--subgraph-db <SUBGRAPH_DB> | -d | string | :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
| Argument | Type | Description |
|---|---|---|
<RUNBOOK> | string | ID du Runbook issu de txtx.yml, ou chemin vers un fichier .tx. |
Projet
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Chemin vers le manifeste du runbook. |
--env <ENVIRONMENT> | none | string | none | Environnement 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.
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--unsupervised | -u | boolean | false | Exécuter sans l'interface de supervision. |
--browser | -b | boolean | default mode | Exécuter avec supervision dans l'interface navigateur. |
--terminal | -t | boolean | false | Exécuter avec supervision dans la console terminal. |
Entrées & Sorties
| Indicateur | Court | Type | Défaut | Description |
|---|---|---|---|---|
--output-json [<OUTPUT_DIR>] | aucun | chemin optionnel | aucun | Affiche 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> | aucun | chaîne | aucun | Affiche une sortie nommée à la fin de l'exécution. Entre en conflit avec --output-json. |
--input <INPUT_PATH> | aucun | chemin[] | aucun | Fichier d'entrée à utiliser pour le traitement par lots. Répétable. |
Exécution
| Indicateur | Court | Type | Défaut | Description |
|---|---|---|---|---|
--explain | aucun | booléen | false | Explique comment le Runbook va s'exécuter. |
--force | -f | booléen | false | Ignore l'état d'exécution mis en cache. |
Interface Superviseur
Ces indicateurs sont disponibles lorsque Surfpool est compilé avec la
fonctionnalité supervisor_ui.
| Indicateur | Court | Type | Défaut | Description |
|---|---|---|---|---|
--port <PORT> | -p | entier | 8488 | Port de l'interface Web. |
--ip <IP_ADDRESS> | -i | chaîne | 127.0.0.1 | Adresse IP de l'interface Web. |
Journalisation
| Indicateur | Court | Type | Défaut | Description |
|---|---|---|---|---|
--log-level <LEVEL> | -l | énumération | info | Niveau de journalisation d'exécution du Runbook. Valeurs : trace, debug, info, warn, error. |
--log-path <LOG_DIR> | aucun | chemin | .surfpool/logs | Ré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]
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Chemin vers le manifest du runbook. |
surfpool completions
Génère des scripts de complétion shell.
surfpool completions <SHELL>
| Argument | Type | Description |
|---|---|---|
<SHELL> | enum | Shell 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?