Документация SolanaИнструментарий

Команды CLI

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>-mpath./txtx.ymlПуть к манифесту runbook.
--no-deploynonebooleanfalseОтключить автоматическое развёртывание программ.
--runbook <RUNBOOK>-rstring[]deploymentID runbook для выполнения после запуска. Можно указать несколько раз.
--runbook-input <INPUT_PATH>-ipath[]noneВходной файл для передачи при выполнении runbook. Можно указать несколько раз.
--yes-ybooleanfalseПропустить запросы при генерации runbook.
--watchnonebooleanfalseПовторно развернуть при изменении артефактов программы.
--artifacts-path <ARTIFACTS_PATH>nonepathnoneДиректория, содержащая артефакты программы .so. По умолчанию используется target/deploy, если не указано.
--legacy-anchor-compatibilitynonebooleanfalseИспользовать настройки по умолчанию, подходящие для устаревших тестовых наборов Anchor.
--anchor-test-config-path <TEST_TOML>nonepath[]noneФайл Test.toml Anchor для проверки. Можно указать несколько раз.

Аккаунты и состояние

ФлагКраткоТипПо умолчаниюОписание
--airdrop <PUBKEY>-apubkey[]nonepubkey для получения аирдропа SOL при запуске. Можно указать несколько раз.
--airdrop-keypair-path <KEYPAIR_PATH>-kpath[]~/.config/solana/id.jsonПуть к keypair, чей pubkey должен получить аирдроп. Можно указать несколько раз.
--airdrop-amount <LAMPORTS>-qinteger10000000000000Количество lamport для аирдропа на каждый аккаунт при запуске.
--snapshot <SNAPSHOT_PATH>nonepath[]noneJSON-снимок аккаунта для предварительной загрузки. Можно указать несколько раз. Более поздние файлы переопределяют более ранние при дублировании ключей.
--db <DB_URL>nonestringnoneURL подключения к базе данных для постоянного состояния Surfnet. Используйте :memory: для SQLite в памяти, файл .sqlite для SQLite на диске или URL PostgreSQL при сборке с функцией postgres.
--surfnet-id <SURFNET_ID>nonestringdefaultПространство имён хранилища для данного экземпляра Surfnet.

Среда выполнения и интерфейс

ФлагКраткоТипПо умолчаниюОписание
--no-tuinonebooleanfalseВыводить логи вместо запуска терминального интерфейса.
--no-studiononebooleanfalseОтключить Surfpool Studio.
--studio-port <PORT>-sinteger18488Привязать Studio к этому порту.
--daemonnonebooleanfalseЗапустить Surfpool как фоновый процесс. Режим демона доступен только в Linux.
--cinonebooleanfalseИспользовать настройки, подходящие для CI. Это отключает TUI, Studio, профилирование инструкций и вывод логов.

Поведение SVM

ФлагКраткоТипПо умолчаниюОписание
--slot-time <MILLISECONDS>-tinteger400Время slot в миллисекундах.
--block-production-mode <MODE>-benumclockРежим производства блоков.
--feature <FEATURE_PUBKEY>-fpubkey[]noneВключить функцию SVM по pubkey. Можно указывать несколько раз. Названия функций устарели, но по-прежнему принимаются для ранее поддерживаемых имён.
--disable-feature <FEATURE_PUBKEY>nonepubkey[]noneОтключить функцию SVM по pubkey. Можно указывать несколько раз. Названия функций устарели, но по-прежнему принимаются для ранее поддерживаемых имён.
--features-allnonebooleanfalseВключить все функции SVM из agave-feature-set.
--skip-signature-verificationnonebooleanfalseПропустить проверку подписи транзакции.
--skip-blockhash-checknonebooleanfalseПропустить проверку blockhash транзакции.

Наблюдаемость и производительность

ФлагСокр.ТипПо умолчаниюОписание
--geyser-plugin-config <PLUGIN_CONFIG_PATH>-gpath[]noneФайл конфигурации плагина Geyser для загрузки. Можно указывать несколько раз.
--disable-instruction-profilingnonebooleanfalseОтключить профилирование инструкций.
--max-profiles <COUNT>-cinteger200Количество профилей транзакций, хранимых в памяти. Более высокие значения увеличивают потребление памяти.
--log-bytes-limit <BYTES>noneinteger10000Максимальное количество байт для каждого лога транзакции. Установите 0 для неограниченного ведения логов.
--log-level <LEVEL>-lenuminfoУровень логирования Simnet. Значения: trace, debug, info, warn, error, none.
--log-path <LOG_DIR>nonepath.surfpool/logsДиректория для логов Simnet.
--metrics-enablednonebooleanenv: SURFPOOL_METRICS_ENABLEDВключить конечную точку метрик Prometheus. Доступно при сборке Surfpool с функцией prometheus.
--metrics-addr <METRICS_ADDR>nonestring127.0.0.1:9000Адрес конечной точки метрик Prometheus. Можно также задать с помощью SURFPOOL_METRICS_ADDR. Доступно при сборке Surfpool с функцией prometheus.

Устаревшая совместимость

ФлагСокр.ТипПо умолчаниюОписание
--subgraph-db <SUBGRAPH_DB>-dstring: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>stringID Runbook из txtx.yml или путь к файлу .tx.

Проект

ФлагКраткоТипПо умолчаниюОписание
--manifest-file-path <MANIFEST_PATH>-mpath./txtx.ymlПуть к манифесту Runbook.
--env <ENVIRONMENT>nonestringnoneСреда из txtx.yml для использования.

Режим выполнения

Эти флаги являются взаимоисключающими. Если ни один не указан, Surfpool использует надзор через браузер.

ФлагКраткоТипПо умолчаниюОписание
--unsupervised-ubooleanfalseВыполнить без интерфейса супервайзера.
--browser-bbooleanрежим по умолчаниюВыполнить с надзором в браузерном интерфейсе.
--terminal-tbooleanfalseВыполнить с надзором в терминальной консоли.

Входные и выходные данные

ФлагКраткийТипПо умолчаниюОписание
--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.1IP-адрес веб-интерфейса.

Логирование

ФлагКраткийТипПо умолчаниюОписание
--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>-mpath./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?