Die surfpool CLI startet lokale Surfnets, führt Runbooks aus, listet Runbooks
aus einem Workspace-Manifest auf, generiert Shell-Vervollständigungen und
startet den Surfpool MCP-Server.
Befehle
| Befehl | Beschreibung |
|---|---|
surfpool start | Startet ein lokales Surfnet. Alias: surfpool simnet |
surfpool run | Führt ein Runbook aus |
surfpool ls | Listet Runbooks im aktuellen Workspace auf |
surfpool completions | Generiert Shell-Vervollständigungsskripte |
surfpool mcp | Startet den Surfpool MCP-Server |
surfpool start
Startet ein lokales Surfnet. Wenn Sie es in einem Solana-Programmverzeichnis ausführen, kann Surfpool Runbooks generieren und ausführen, die Ihre Programme deployen.
surfpool start [OPTIONS]
Netzwerk & Ports
| Flag | Kurz | Typ | Standard | Beschreibung |
|---|---|---|---|---|
--port <PORT> | -p | integer | 8899 | Bindet den JSON-RPC-Server an diesen Port. |
--ws-port <PORT> | -w | integer | 8900 | Bindet den WebSocket-Server an diesen Port. |
--host <HOST> | -o | string | 127.0.0.1 | Bindet RPC-, WebSocket- und Studio-Dienste an diesen Host. |
--rpc-url <RPC_URL> | -u | string | none | Fork von dieser Datasource-RPC-URL. Konflikt mit --network. Kann auch mit SURFPOOL_DATASOURCE_RPC_URL gesetzt werden. |
--network <NETWORK> | -n | enum | none | Fork von einem vordefinierten Solana-Netzwerk. Werte: mainnet, devnet, testnet. Konflikt mit --rpc-url. |
--offline | none | boolean | false | Ausführung ohne Remote-RPC-Datasource. |
Projekt & Deployment
| Flag | Short | Type | Default | Beschreibung |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Pfad zum Runbook-Manifest. |
--no-deploy | none | boolean | false | Automatische Programm-Deployments deaktivieren. |
--runbook <RUNBOOK> | -r | string[] | deployment | Runbook-ID, die nach dem Start ausgeführt werden soll. Wiederholbar. |
--runbook-input <INPUT_PATH> | -i | path[] | none | Eingabedatei für die Runbook-Ausführung. Wiederholbar. |
--yes | -y | boolean | false | Runbook-Generierungsabfragen überspringen. |
--watch | none | boolean | false | Bei Änderungen an Programmartefakten neu deployen. |
--artifacts-path <ARTIFACTS_PATH> | none | path | none | Verzeichnis mit .so-Programmartefakten. Standardmäßig target/deploy, wenn nicht angegeben. |
--legacy-anchor-compatibility | none | boolean | false | Standardwerte für Legacy-Anchor-Test-Suites verwenden. |
--anchor-test-config-path <TEST_TOML> | none | path[] | none | Anchor-Test.toml-Datei zur Inspektion. Wiederholbar. |
Konten & Zustand
| Flag | Short | Type | Default | Beschreibung |
|---|---|---|---|---|
--airdrop <PUBKEY> | -a | pubkey[] | none | pubkey, an den beim Start SOL per Airdrop gesendet wird. Wiederholbar. |
--airdrop-keypair-path <KEYPAIR_PATH> | -k | path[] | ~/.config/solana/id.json | keypair-Pfad, dessen pubkey einen Airdrop erhalten soll. Wiederholbar. |
--airdrop-amount <LAMPORTS> | -q | integer | 10000000000000 | lamport, die beim Start an jedes Konto per Airdrop gesendet werden. |
--snapshot <SNAPSHOT_PATH> | none | path[] | none | JSON-Konten-Snapshot zum Vorladen. Wiederholbar. Spätere Dateien überschreiben frühere Dateien bei doppelten Schlüsseln. |
--db <DB_URL> | none | string | none | Datenbankverbindungs-URL für persistenten Surfnet-Zustand. Verwende :memory: für In-Memory-SQLite, eine .sqlite-Datei für On-Disk-SQLite oder eine PostgreSQL-URL, wenn mit dem Feature postgres kompiliert. |
--surfnet-id <SURFNET_ID> | none | string | default | Speicher-Namespace für diese Surfnet-Instanz. |
Laufzeit & Benutzeroberfläche
| Flag | Short | Type | Default | Beschreibung |
|---|---|---|---|---|
--no-tui | none | boolean | false | Protokolle ausgeben, anstatt die Terminal-Benutzeroberfläche zu starten. |
--no-studio | none | boolean | false | Surfpool Studio deaktivieren. |
--studio-port <PORT> | -s | integer | 18488 | Studio an diesen Port binden. |
--daemon | none | boolean | false | Surfpool als Hintergrundprozess ausführen. Der Daemon-Modus ist nur unter Linux verfügbar. |
--ci | none | boolean | false | Einstellungen verwenden, die für CI geeignet sind. Dadurch werden TUI, Studio, Anweisungs-Profiling und Protokollausgabe deaktiviert. |
SVM-Verhalten
| Flag | Short | Type | Default | Beschreibung |
|---|---|---|---|---|
--slot-time <MILLISECONDS> | -t | integer | 400 | slot-Zeit in Millisekunden. |
--block-production-mode <MODE> | -b | enum | clock | Blockproduktionsmodus. |
--feature <FEATURE_PUBKEY> | -f | pubkey[] | none | Eine SVM-Funktion per pubkey aktivieren. Wiederholbar. Funktionsnamen sind veraltet, werden aber für zuvor unterstützte Namen noch akzeptiert. |
--disable-feature <FEATURE_PUBKEY> | none | pubkey[] | none | Eine SVM-Funktion per pubkey deaktivieren. Wiederholbar. Funktionsnamen sind veraltet, werden aber für zuvor unterstützte Namen noch akzeptiert. |
--features-all | none | boolean | false | Alle SVM-Funktionen von agave-feature-set aktivieren. |
--skip-signature-verification | none | boolean | false | Transaktionssignaturprüfung überspringen. |
--skip-blockhash-check | none | boolean | false | Transaktions-Blockhash-Validierung überspringen. |
Observierbarkeit & Leistung
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--geyser-plugin-config <PLUGIN_CONFIG_PATH> | -g | path[] | none | Geyser-Plugin-Konfigurationsdatei zum Laden. Wiederholbar. |
--disable-instruction-profiling | none | boolean | false | Anweisungs-Profiling deaktivieren. |
--max-profiles <COUNT> | -c | integer | 200 | Im Speicher zu behaltende Transaktionsprofile. Höhere Werte erhöhen den Speicherverbrauch. |
--log-bytes-limit <BYTES> | none | integer | 10000 | Maximale gespeicherte Bytes pro Transaktionsprotokoll. Auf 0 setzen für unbegrenzte Protokolle. |
--log-level <LEVEL> | -l | enum | info | Simnet-Protokollebene. Werte: trace, debug, info, warn, error, none. |
--log-path <LOG_DIR> | none | path | .surfpool/logs | Verzeichnis für Simnet-Protokolle. |
--metrics-enabled | none | boolean | env: SURFPOOL_METRICS_ENABLED | Prometheus-Metriken-Endpunkt aktivieren. Verfügbar, wenn Surfpool mit dem Feature prometheus erstellt wurde. |
--metrics-addr <METRICS_ADDR> | none | string | 127.0.0.1:9000 | Adresse des Prometheus-Metriken-Endpunkts. Kann auch mit SURFPOOL_METRICS_ADDR gesetzt werden. Verfügbar, wenn Surfpool mit dem Feature prometheus erstellt wurde. |
Veraltete Kompatibilität
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--subgraph-db <SUBGRAPH_DB> | -d | string | :memory: | Veraltet und in surfpool start --help ausgeblendet. Bestehende Skripte können es weiterhin zur Kompatibilität übergeben. |
Beispiele
Mit Standardeinstellungen starten:
surfpool start
Devnet forken:
surfpool start --network devnet
Eine benutzerdefinierte Datenquellen-RPC-URL verwenden:
surfpool start --rpc-url https://api.mainnet-beta.solana.com
Protokolle ausgeben statt die TUI zu starten:
surfpool start --no-tui
Ohne Remote-RPC-Datenquelle starten:
surfpool start --offline
SOL an mehrere Konten airdroppen:
surfpool start --airdrop <PUBKEY> --airdrop <PUBKEY>
Konten-Status aus Snapshots laden:
surfpool start --snapshot ./snapshot1.json --snapshot ./snapshot2.json
Programme neu deployen, wenn sich target/deploy ändert:
surfpool start --watch
Surfnet-Status in einer SQLite-Datenbank auf der Festplatte speichern:
surfpool start --db ./surfnet.sqlite --surfnet-id local-dev
surfpool run
Führt ein Runbook aus. Sie können eine .tx-Datei direkt ausführen oder auf ein
Runbook verweisen, das in einem txtx.yml-Manifest deklariert ist.
surfpool run [OPTIONS] <RUNBOOK>
Argumente
| Argument | Typ | Beschreibung |
|---|---|---|
<RUNBOOK> | string | Runbook-ID aus txtx.yml oder Pfad zu einer .tx-Datei. |
Projekt
| Flag | Kurz | Typ | Standard | Beschreibung |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | Pfad | ./txtx.yml | Pfad zum Runbook-Manifest. |
--env <ENVIRONMENT> | keine | string | keine | Umgebung aus txtx.yml, die verwendet werden soll. |
Ausführungsmodus
Diese Flags schließen sich gegenseitig aus. Wenn keines angegeben ist, verwendet Surfpool die Browser-Überwachung.
| Flag | Kurz | Typ | Standard | Beschreibung |
|---|---|---|---|---|
--unsupervised | -u | boolean | false | Ausführung ohne Supervisor-UI. |
--browser | -b | boolean | Standardmodus | Ausführung mit Überwachung in der Browser-UI. |
--terminal | -t | boolean | false | Ausführung mit Überwachung in der Terminal-Konsole. |
Eingaben & Ausgaben
| Flag | Short | Typ | Standard | Beschreibung |
|---|---|---|---|---|
--output-json [<OUTPUT_DIR>] | keine | optionaler Pfad | keine | Runbook-Ausgaben als JSON ausgeben oder speichern. Bei Angabe eines Verzeichnisses wird die Ausgabe in eine Datei in diesem Verzeichnis geschrieben. |
--output <OUTPUT_NAME> | keine | Zeichenkette | keine | Eine benannte Ausgabe am Ende der Ausführung ausgeben. Konflikt mit --output-json. |
--input <INPUT_PATH> | keine | Pfad[] | keine | Eingabedatei für die Stapelverarbeitung. Wiederholbar. |
Ausführung
| Flag | Short | Typ | Standard | Beschreibung |
|---|---|---|---|---|
--explain | keine | Boolean | false | Erläutert, wie das Runbook ausgeführt wird. |
--force | -f | Boolean | false | Zwischengespeicherten Ausführungsstatus ignorieren. |
Supervisor-Benutzeroberfläche
Diese Flags sind verfügbar, wenn Surfpool mit dem supervisor_ui Feature
erstellt wurde.
| Flag | Short | Typ | Standard | Beschreibung |
|---|---|---|---|---|
--port <PORT> | -p | Ganzzahl | 8488 | Web-UI-Port. |
--ip <IP_ADDRESS> | -i | Zeichenkette | 127.0.0.1 | Web-UI-IP-Adresse. |
Protokollierung
| Flag | Short | Typ | Standard | Beschreibung |
|---|---|---|---|---|
--log-level <LEVEL> | -l | Enum | info | Protokollierungsstufe der Runbook-Ausführung. Werte: trace, debug, info, warn, error. |
--log-path <LOG_DIR> | keine | Pfad | .surfpool/logs | Verzeichnis für Runbook-Ausführungsprotokolle. |
Beispiele
Ein Manifest-Runbook mit Browser-Überwachung ausführen:
surfpool run deployment
Ohne Überwachung ausführen und JSON-Ausgaben schreiben:
surfpool run deployment --unsupervised --output-json .surfpool/runbook-outputs
Eine .tx-Datei direkt ausführen:
surfpool run ./runbooks/deployment.tx
surfpool ls
Listet alle im Workspace-Manifest deklarierten Runbooks auf.
surfpool ls [OPTIONS]
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Pfad zum Runbook-Manifest. |
surfpool completions
Generiert Shell-Completion-Skripte.
surfpool completions <SHELL>
| Argument | Type | Description |
|---|---|---|
<SHELL> | enum | Shell, für die Completions generiert werden sollen. Werte: bash, elvish, fish, powershell, zsh. |
surfpool mcp
Startet den Surfpool-MCP-Server für die KI-Tool-Integration.
surfpool mcp
Is this page helpful?