CLI surfpool запускает локальные Surfnet, выполняет Runbook, отображает список
Runbook из манифеста рабочего пространства, генерирует автодополнения для
оболочки и запускает MCP-сервер Surfpool.
Команды
| Команда | Описание |
|---|---|
surfpool start | Запустить локальный Surfnet. Псевдоним: surfpool simnet |
surfpool run | Выполнить Runbook |
surfpool ls | Список Runbook в текущем рабочем пространстве |
surfpool completions | Генерировать скрипты автодополнения для оболочки |
surfpool mcp | Запустить MCP-сервер Surfpool |
surfpool start
Запускает локальный Surfnet. Если выполнить команду в директории программы Solana, Surfpool может автоматически сгенерировать и выполнить Runbook для развёртывания ваших программ.
surfpool start [OPTIONS]
Сеть и порты
| Флаг | Кратко | Тип | По умолчанию | Описание |
|---|---|---|---|---|
--port <PORT> | -p | целое число | 8899 | Привязать JSON-RPC сервер к этому порту. |
--ws-port <PORT> | -w | целое число | 8900 | Привязать WebSocket сервер к этому порту. |
--host <HOST> | -o | строка | 127.0.0.1 | Привязать службы RPC, WebSocket и Studio к этому хосту. |
--rpc-url <RPC_URL> | -u | строка | нет | Разветвить от указанного URL RPC источника данных. Конфликтует с --network. Также можно задать через SURFPOOL_DATASOURCE_RPC_URL. |
--network <NETWORK> | -n | перечисление | нет | Разветвить от предустановленной сети Solana. Значения: mainnet, devnet, testnet. Конфликтует с --rpc-url. |
--offline | нет | булево | false | Запустить без удалённого источника данных RPC. |
Проект и развёртывание
| Флаг | Кратко | Тип | По умолчанию | Описание |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Путь к манифесту runbook. |
--no-deploy | none | boolean | false | Отключить автоматическое развёртывание программ. |
--runbook <RUNBOOK> | -r | string[] | deployment | ID runbook для выполнения после запуска. Можно указать несколько раз. |
--runbook-input <INPUT_PATH> | -i | path[] | none | Входной файл для передачи при выполнении runbook. Можно указать несколько раз. |
--yes | -y | boolean | false | Пропустить запросы при генерации runbook. |
--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 | Файл Test.toml Anchor для проверки. Можно указать несколько раз. |
Аккаунты и состояние
| Флаг | Кратко | Тип | По умолчанию | Описание |
|---|---|---|---|---|
--airdrop <PUBKEY> | -a | pubkey[] | none | pubkey для получения аирдропа SOL при запуске. Можно указать несколько раз. |
--airdrop-keypair-path <KEYPAIR_PATH> | -k | path[] | ~/.config/solana/id.json | Путь к keypair, чей pubkey должен получить аирдроп. Можно указать несколько раз. |
--airdrop-amount <LAMPORTS> | -q | integer | 10000000000000 | Количество lamport для аирдропа на каждый аккаунт при запуске. |
--snapshot <SNAPSHOT_PATH> | none | path[] | none | JSON-снимок аккаунта для предварительной загрузки. Можно указать несколько раз. Более поздние файлы переопределяют более ранние при дублировании ключей. |
--db <DB_URL> | none | string | none | URL подключения к базе данных для постоянного состояния Surfnet. Используйте :memory: для SQLite в памяти, файл .sqlite для SQLite на диске или URL PostgreSQL при сборке с функцией postgres. |
--surfnet-id <SURFNET_ID> | none | string | default | Пространство имён хранилища для данного экземпляра Surfnet. |
Среда выполнения и интерфейс
| Флаг | Кратко | Тип | По умолчанию | Описание |
|---|---|---|---|---|
--no-tui | none | boolean | false | Выводить логи вместо запуска терминального интерфейса. |
--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, профилирование инструкций и вывод логов. |
Поведение SVM
| Флаг | Кратко | Тип | По умолчанию | Описание |
|---|---|---|---|---|
--slot-time <MILLISECONDS> | -t | integer | 400 | Время slot в миллисекундах. |
--block-production-mode <MODE> | -b | enum | clock | Режим производства блоков. |
--feature <FEATURE_PUBKEY> | -f | pubkey[] | none | Включить функцию SVM по pubkey. Можно указывать несколько раз. Названия функций устарели, но по-прежнему принимаются для ранее поддерживаемых имён. |
--disable-feature <FEATURE_PUBKEY> | none | pubkey[] | none | Отключить функцию SVM по pubkey. Можно указывать несколько раз. Названия функций устарели, но по-прежнему принимаются для ранее поддерживаемых имён. |
--features-all | none | boolean | false | Включить все функции SVM из agave-feature-set. |
--skip-signature-verification | none | boolean | false | Пропустить проверку подписи транзакции. |
--skip-blockhash-check | none | boolean | false | Пропустить проверку blockhash транзакции. |
Наблюдаемость и производительность
| Флаг | Сокр. | Тип | По умолчанию | Описание |
|---|---|---|---|---|
--geyser-plugin-config <PLUGIN_CONFIG_PATH> | -g | path[] | none | Файл конфигурации плагина Geyser для загрузки. Можно указывать несколько раз. |
--disable-instruction-profiling | none | boolean | false | Отключить профилирование инструкций. |
--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
Использование пользовательского URL-адреса RPC в качестве источника данных:
surfpool start --rpc-url https://api.mainnet-beta.solana.com
Печатать логи вместо запуска TUI:
surfpool start --no-tui
Запустить без удалённого источника данных RPC:
surfpool start --offline
Airdrop 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 напрямую или сослаться на
Runbook, объявленный в манифесте txtx.yml.
surfpool run [OPTIONS] <RUNBOOK>
Аргументы
| Аргумент | Тип | Описание |
|---|---|---|
<RUNBOOK> | string | ID Runbook из txtx.yml или путь к файлу .tx. |
Проект
| Флаг | Кратко | Тип | По умолчанию | Описание |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Путь к манифесту Runbook. |
--env <ENVIRONMENT> | none | string | none | Среда из txtx.yml для использования. |
Режим выполнения
Эти флаги являются взаимоисключающими. Если ни один не указан, Surfpool использует надзор через браузер.
| Флаг | Кратко | Тип | По умолчанию | Описание |
|---|---|---|---|---|
--unsupervised | -u | boolean | false | Выполнить без интерфейса супервайзера. |
--browser | -b | boolean | режим по умолчанию | Выполнить с надзором в браузерном интерфейсе. |
--terminal | -t | boolean | false | Выполнить с надзором в терминальной консоли. |
Входные и выходные данные
| Флаг | Краткий | Тип | По умолчанию | Описание |
|---|---|---|---|---|
--output-json [<OUTPUT_DIR>] | нет | необязательный путь | нет | Вывести или записать результаты Runbook в формате JSON. Если указана директория, результат записывается в файл в этой директории. |
--output <OUTPUT_NAME> | нет | строка | нет | Вывести один именованный результат по завершении выполнения. Конфликтует с --output-json. |
--input <INPUT_PATH> | нет | путь[] | нет | Входной файл для пакетной обработки. Можно указывать несколько раз. |
Выполнение
| Флаг | Краткий | Тип | По умолчанию | Описание |
|---|---|---|---|---|
--explain | нет | булево | false | Показать, как будет выполняться Runbook. |
--force | -f | булево | false | Игнорировать кэшированное состояние выполнения. |
Интерфейс супервизора
Эти флаги доступны, когда Surfpool собран с функцией supervisor_ui.
| Флаг | Краткий | Тип | По умолчанию | Описание |
|---|---|---|---|---|
--port <PORT> | -p | целое число | 8488 | Порт веб-интерфейса. |
--ip <IP_ADDRESS> | -i | строка | 127.0.0.1 | IP-адрес веб-интерфейса. |
Логирование
| Флаг | Краткий | Тип | По умолчанию | Описание |
|---|---|---|---|---|
--log-level <LEVEL> | -l | перечисление | info | Уровень журнала выполнения Runbook. Значения: trace, debug, info, warn, error. |
--log-path <LOG_DIR> | нет | путь | .surfpool/logs | Директория для журналов выполнения Runbook. |
Примеры
Запуск манифестного 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
Запускает MCP-сервер Surfpool для интеграции с инструментами ИИ.
surfpool mcp
Is this page helpful?