surfpool
CLI は、ローカル Surfnet の起動、Runbook の実行、ワークスペースマニフェストからの Runbook 一覧表示、シェル補完の生成、および Surfpool
MCP サーバーの起動を行います。
コマンド
| コマンド | 説明 |
|---|---|
surfpool start | ローカル Surfnet を起動します。エイリアス: surfpool simnet |
surfpool run | Runbook を実行します |
surfpool ls | 現在のワークスペース内の Runbook を一覧表示します |
surfpool completions | シェル補完スクリプトを生成します |
surfpool mcp | Surfpool MCP サーバーを起動します |
surfpool start
ローカル Surfnet を起動します。Solana プログラムのディレクトリ内で実行すると、Surfpool はプログラムをデプロイする Runbook を自動生成して実行できます。
surfpool start [OPTIONS]
ネットワークとポート
| フラグ | 短縮形 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
--port <PORT> | -p | integer | 8899 | JSON-RPC サーバーをこのポートにバインドします。 |
--ws-port <PORT> | -w | integer | 8900 | WebSocket サーバーをこのポートにバインドします。 |
--host <HOST> | -o | string | 127.0.0.1 | RPC、WebSocket、および Studio サービスをこのホストにバインドします。 |
--rpc-url <RPC_URL> | -u | string | none | このデータソース RPC URL からフォークします。--network と競合します。SURFPOOL_DATASOURCE_RPC_URL で設定することもできます。 |
--network <NETWORK> | -n | enum | none | 事前定義された Solana ネットワークからフォークします。値: mainnet、devnet、testnet。--rpc-url と競合します。 |
--offline | none | boolean | false | リモート RPC データソースなしで実行します。 |
プロジェクトとデプロイ
| フラグ | 短縮 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | ランブックマニフェストへのパス。 |
--no-deploy | none | boolean | false | プログラムの自動デプロイを無効にする。 |
--runbook <RUNBOOK> | -r | string[] | deployment | 起動後に実行するランブックID。繰り返し指定可能。 |
--runbook-input <INPUT_PATH> | -i | path[] | none | ランブック実行に渡す入力ファイル。繰り返し指定可能。 |
--yes | -y | boolean | false | ランブック生成のプロンプトをスキップする。 |
--watch | none | boolean | false | プログラムアーティファクトの変更時に再デプロイする。 |
--artifacts-path <ARTIFACTS_PATH> | none | path | none | .so プログラムアーティファクトを含むディレクトリ。省略時はtarget/deployがデフォルト。 |
--legacy-anchor-compatibility | none | boolean | false | レガシーAnchorテストスイートに適したデフォルト設定を使用する。 |
--anchor-test-config-path <TEST_TOML> | none | path[] | none | 検査対象のAnchor Test.toml ファイル。繰り返し指定可能。 |
アカウントと状態
| フラグ | 短縮 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
--airdrop <PUBKEY> | -a | pubkey[] | none | 起動時にSOLをエアドロップするpubkey。繰り返し指定可能。 |
--airdrop-keypair-path <KEYPAIR_PATH> | -k | path[] | ~/.config/solana/id.json | エアドロップを受け取るpubkeyのkeypairパス。繰り返し指定可能。 |
--airdrop-amount <LAMPORTS> | -q | integer | 10000000000000 | 起動時の各アカウントにエアドロップするlamport数。 |
--snapshot <SNAPSHOT_PATH> | none | path[] | none | プリロードするJSONアカウントスナップショット。繰り返し指定可能。重複キーは後のファイルが優先される。 |
--db <DB_URL> | none | string | none | Surfnetの永続的な状態管理に使用するデータベース接続URL。インメモリSQLiteには:memory:、ディスク上のSQLiteには.sqliteファイル、postgres機能でビルドした場合はPostgreSQL URLを使用。 |
--surfnet-id <SURFNET_ID> | none | string | default | このSurfnetインスタンスのストレージ名前空間。 |
ランタイム & UI
| フラグ | 短縮 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
--no-tui | none | boolean | false | ターミナルUIを起動せずにログを出力します。 |
--no-studio | none | boolean | false | Surfpool Studioを無効にします。 |
--studio-port <PORT> | -s | integer | 18488 | Studioをこのポートにバインドします。 |
--daemon | none | boolean | false | Surfpoolをバックグラウンドプロセスとして実行します。デーモンモードはLinuxのみ対応です。 |
--ci | none | boolean | false | CI向けの設定を使用します。TUI、Studio、instructions プロファイリング、およびログ出力が無効になります。 |
SVM の動作
| フラグ | 短縮 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
--slot-time <MILLISECONDS> | -t | integer | 400 | slot時間(ミリ秒単位)。 |
--block-production-mode <MODE> | -b | enum | clock | ブロック生成モード。 |
--feature <FEATURE_PUBKEY> | -f | pubkey[] | none | pubkeyによってSVM機能を有効にします。繰り返し指定可能。機能名は非推奨ですが、以前にサポートされていた名前については引き続き受け付けます。 |
--disable-feature <FEATURE_PUBKEY> | none | pubkey[] | none | pubkeyによってSVM機能を無効にします。繰り返し指定可能。機能名は非推奨ですが、以前にサポートされていた名前については引き続き受け付けます。 |
--features-all | none | boolean | false | agave-feature-set のすべてのSVM機能を有効にします。 |
--skip-signature-verification | none | boolean | false | トランザクション署名検証をスキップします。 |
--skip-blockhash-check | none | boolean | false | トランザクションのブロックハッシュ検証をスキップします。 |
オブザーバビリティ & パフォーマンス
| フラグ | 短縮 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
--geyser-plugin-config <PLUGIN_CONFIG_PATH> | -g | path[] | なし | 読み込むGeyserプラグイン設定ファイル。繰り返し指定可能。 |
--disable-instruction-profiling | none | boolean | false | instructions プロファイリングを無効にする。 |
--max-profiles <COUNT> | -c | integer | 200 | メモリに保持するトランザクションプロファイル数。値が大きいほどメモリ使用量が増加する。 |
--log-bytes-limit <BYTES> | none | integer | 10000 | 各トランザクションログに保存する最大バイト数。無制限のログにするには0に設定する。 |
--log-level <LEVEL> | -l | enum | info | Simnetのログレベル。値: trace、debug、info、warn、error、none。 |
--log-path <LOG_DIR> | none | path | .surfpool/logs | Simnetログのディレクトリ。 |
--metrics-enabled | none | boolean | env: SURFPOOL_METRICS_ENABLED | Prometheusメトリクスエンドポイントを有効にする。Surfpoolがprometheus機能付きでビルドされている場合に利用可能。 |
--metrics-addr <METRICS_ADDR> | none | string | 127.0.0.1:9000 | Prometheusメトリクスエンドポイントのアドレス。SURFPOOL_METRICS_ADDRでも設定可能。Surfpoolがprometheus機能付きでビルドされている場合に利用可能。 |
非推奨の互換性
| フラグ | 短縮 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
--subgraph-db <SUBGRAPH_DB> | -d | string | :memory: | 非推奨であり、surfpool start --helpには表示されない。既存のスクリプトは互換性のために引き続き渡すことができる。 |
使用例
デフォルト設定で起動する:
surfpool start
devnetをフォークする:
surfpool start --network devnet
カスタムデータソースのRPC URLを使用する:
surfpool start --rpc-url https://api.mainnet-beta.solana.com
TUIを起動する代わりにログを出力する:
surfpool start --no-tui
リモートRPCデータソースなしで起動する:
surfpool start --offline
複数のアカウントにSOLをエアドロップする:
surfpool start --airdrop <PUBKEY> --airdrop <PUBKEY>
スナップショットからアカウント状態を読み込む:
surfpool start --snapshot ./snapshot1.json --snapshot ./snapshot2.json
target/deployが変更されたときにプログラムを再デプロイする:
surfpool start --watch
Surfnetの状態をディスク上のSQLiteデータベースに保存する:
surfpool start --db ./surfnet.sqlite --surfnet-id local-dev
surfpool run
Runbookを実行します。.txファイルを直接実行するか、txtx.ymlマニフェストで宣言されたRunbookを参照することができます。
surfpool run [OPTIONS] <RUNBOOK>
引数
| 引数 | 型 | 説明 |
|---|---|---|
<RUNBOOK> | string | txtx.ymlのRunbook ID、または.txファイルへのパス。 |
プロジェクト
| フラグ | 短縮形 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Runbookマニフェストへのパス。 |
--env <ENVIRONMENT> | none | string | none | 使用するtxtx.ymlの環境。 |
実行モード
これらのフラグは互いに排他的です。いずれも指定されない場合、Surfpoolはブラウザによる監視を使用します。
| フラグ | 短縮形 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
--unsupervised | -u | boolean | false | スーパーバイザーUIなしで実行する。 |
--browser | -b | boolean | default mode | ブラウザUIで監視付きで実行する。 |
--terminal | -t | boolean | false | ターミナルコンソールで監視付きで実行する。 |
入力と出力
| フラグ | 短縮形 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
--output-json [<OUTPUT_DIR>] | なし | 任意のパス | なし | ランブックの出力をJSONとして表示または書き込みます。ディレクトリを指定した場合、そのディレクトリ内のファイルに出力が書き込まれます。 |
--output <OUTPUT_NAME> | なし | 文字列 | なし | 実行終了時に指定した名前の出力を1つ表示します。--output-jsonと競合します。 |
--input <INPUT_PATH> | なし | パス[] | なし | バッチ処理に使用する入力ファイル。繰り返し指定可能。 |
実行
| フラグ | 短縮形 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
--explain | なし | 真偽値 | false | ランブックの実行方法を説明します。 |
--force | -f | 真偽値 | false | キャッシュされた実行状態を無視します。 |
スーパーバイザーUI
これらのフラグは、Surfpoolがsupervisor_ui
機能付きでビルドされている場合に利用できます。
| フラグ | 短縮形 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
--port <PORT> | -p | 整数 | 8488 | Web UIのポート。 |
--ip <IP_ADDRESS> | -i | 文字列 | 127.0.0.1 | Web UIのIPアドレス。 |
ログ記録
| フラグ | 短縮形 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
--log-level <LEVEL> | -l | 列挙型 | info | ランブック実行のログレベル。値: trace、debug、info、warn、error。 |
--log-path <LOG_DIR> | なし | パス | .surfpool/logs | ランブック実行ログのディレクトリ。 |
例
ブラウザによる監視付きでマニフェストRunbookを実行する:
surfpool run deployment
監視なしで実行し、JSON出力を書き込む:
surfpool run deployment --unsupervised --output-json .surfpool/runbook-outputs
.txファイルを直接実行する:
surfpool run ./runbooks/deployment.tx
surfpool ls
ワークスペースマニフェストで宣言されたすべてのRunbookを一覧表示します。
surfpool ls [OPTIONS]
| フラグ | 短縮形 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Runbookマニフェストへのパス。 |
surfpool completions
シェル補完スクリプトを生成します。
surfpool completions <SHELL>
| 引数 | 型 | 説明 |
|---|---|---|
<SHELL> | enum | 補完を生成するシェル。値:bash、elvish、fish、powershell、zsh。 |
surfpool mcp
AIツール統合のためのSurfpool MCPサーバーを起動します。
surfpool mcp
Is this page helpful?