Документація 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рядоквідсутнійФоркнути з цього RPC URL джерела даних. Конфліктує з --network. Також можна задати через SURFPOOL_DATASOURCE_RPC_URL.
--network <NETWORK>-nпереліквідсутнійФоркнути з попередньо визначеної мережі Solana. Значення: mainnet, devnet, testnet. Конфліктує з --rpc-url.
--offlineвідсутнєбулевийfalseЗапустити без віддаленого джерела даних RPC.

Проєкт і розгортання

FlagShortTypeDefaultDescription
--manifest-file-path <MANIFEST_PATH>-mpath./txtx.ymlШлях до маніфесту runbook.
--no-deploynonebooleanfalseВимкнути автоматичне розгортання програм.
--runbook <RUNBOOK>-rstring[]deploymentІдентифікатор 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Файл Anchor Test.toml для перевірки. Можна повторювати.

Акаунти та стан

FlagShortTypeDefaultDescription
--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-tuiнемаєbooleanfalseВиводити логи замість запуску термінального інтерфейсу.
--no-studioнемаєbooleanfalseВимкнути Surfpool Studio.
--studio-port <PORT>-sinteger18488Прив'язати Studio до цього порту.
--daemonнемаєbooleanfalseЗапустити Surfpool як фоновий процес. Режим демона доступний лише для Linux.
--ciнемаєbooleanfalseВикористовувати налаштування, придатні для CI. Це вимикає TUI, Studio, профілювання інструкцій та виведення логів.

Поведінка SVM

ПрапорСкор.ТипЗа замовч.Опис
--slot-time <MILLISECONDS>-tinteger400Час slot у мілісекундах.
--block-production-mode <MODE>-benumclockРежим виробництва блоків.
--feature <FEATURE_PUBKEY>-fpubkey[]немаєУвімкнути функцію SVM за pubkey. Можна повторювати. Назви функцій застаріли, але досі приймаються для раніше підтримуваних назв.
--disable-feature <FEATURE_PUBKEY>немаєpubkey[]немаєВимкнути функцію SVM за pubkey. Можна повторювати. Назви функцій застаріли, але досі приймаються для раніше підтримуваних назв.
--features-allнемаєbooleanfalseУвімкнути всі функції SVM з agave-feature-set.
--skip-signature-verificationнемаєbooleanfalseПропустити перевірку підпису транзакції.
--skip-blockhash-checkнемаєbooleanfalseПропустити валідацію 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

Використання власного RPC URL джерела даних:

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-bbooleandefault modeВиконати з наглядом у браузерному інтерфейсі.
--terminal-tbooleanfalseВиконати з наглядом у термінальній консолі.

Введення та виведення

ПрапорКороткийТипЗа замовчуваннямОпис
--output-json [<OUTPUT_DIR>]noneнеобов'язковий шляхnoneДрукувати або записувати вихідні дані Runbook у форматі JSON. Якщо вказано каталог, вихідні дані записуються до файлу в цьому каталозі.
--output <OUTPUT_NAME>noneрядокnoneВивести один іменований результат після завершення виконання. Конфліктує з --output-json.
--input <INPUT_PATH>noneшлях[]noneВхідний файл для пакетної обробки. Можна повторювати.

Виконання

ПрапорКороткийТипЗа замовчуваннямОпис
--explainnoneбулевийfalseПояснити, як виконуватиметься Runbook.
--force-fбулевийfalseІгнорувати кешований стан виконання.

Інтерфейс Supervisor

Ці прапори доступні, коли 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>noneшлях.surfpool/logsКаталог для журналів виконання Runbook.

Приклади

Запустити manifest 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?