CLI surfpool khởi động các Surfnet cục bộ, thực thi Runbook, liệt kê Runbook
từ bản kê khai workspace, tạo shell completion, và khởi động máy chủ Surfpool
MCP.
Lệnh
| Lệnh | Mô tả |
|---|---|
surfpool start | Khởi động một Surfnet cục bộ. Bí danh: surfpool simnet |
surfpool run | Thực thi một Runbook |
surfpool ls | Liệt kê các Runbook trong workspace hiện tại |
surfpool completions | Tạo script shell completion |
surfpool mcp | Khởi động máy chủ Surfpool MCP |
surfpool start
Khởi động một Surfnet cục bộ. Nếu bạn chạy lệnh trong thư mục chương trình Solana, Surfpool có thể tạo và thực thi các Runbook để triển khai chương trình của bạn.
surfpool start [OPTIONS]
Mạng & Cổng
| Cờ | Viết tắt | Kiểu | Mặc định | Mô tả |
|---|---|---|---|---|
--port <PORT> | -p | integer | 8899 | Gắn máy chủ JSON-RPC vào cổng này. |
--ws-port <PORT> | -w | integer | 8900 | Gắn máy chủ WebSocket vào cổng này. |
--host <HOST> | -o | string | 127.0.0.1 | Gắn các dịch vụ RPC, WebSocket và Studio vào host này. |
--rpc-url <RPC_URL> | -u | string | none | Fork từ URL RPC nguồn dữ liệu này. Xung đột với --network. Cũng có thể đặt bằng SURFPOOL_DATASOURCE_RPC_URL. |
--network <NETWORK> | -n | enum | none | Fork từ một mạng Solana được xác định trước. Các giá trị: mainnet, devnet, testnet. Xung đột với --rpc-url. |
--offline | none | boolean | false | Chạy mà không có nguồn dữ liệu RPC từ xa. |
Dự Án & Triển Khai
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Đường dẫn đến tệp manifest của runbook. |
--no-deploy | none | boolean | false | Tắt tính năng triển khai chương trình tự động. |
--runbook <RUNBOOK> | -r | string[] | deployment | ID runbook cần thực thi sau khi khởi động. Có thể lặp lại. |
--runbook-input <INPUT_PATH> | -i | path[] | none | Tệp đầu vào cung cấp cho quá trình thực thi runbook. Có thể lặp lại. |
--yes | -y | boolean | false | Bỏ qua các lời nhắc tạo runbook. |
--watch | none | boolean | false | Triển khai lại khi các artifact của chương trình thay đổi. |
--artifacts-path <ARTIFACTS_PATH> | none | path | none | Thư mục chứa các artifact chương trình .so. Mặc định là target/deploy nếu bỏ trống. |
--legacy-anchor-compatibility | none | boolean | false | Sử dụng các giá trị mặc định phù hợp cho các bộ kiểm thử Anchor cũ. |
--anchor-test-config-path <TEST_TOML> | none | path[] | none | Tệp Test.toml của Anchor cần kiểm tra. Có thể lặp lại. |
Tài Khoản & Trạng Thái
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--airdrop <PUBKEY> | -a | pubkey[] | none | pubkey để airdrop SOL vào lúc khởi động. Có thể lặp lại. |
--airdrop-keypair-path <KEYPAIR_PATH> | -k | path[] | ~/.config/solana/id.json | Đường dẫn keypair có pubkey sẽ nhận airdrop. Có thể lặp lại. |
--airdrop-amount <LAMPORTS> | -q | integer | 10000000000000 | Số lamport để airdrop vào mỗi tài khoản khởi động. |
--snapshot <SNAPSHOT_PATH> | none | path[] | none | Ảnh chụp tài khoản JSON để tải trước. Có thể lặp lại. Các tệp sau sẽ ghi đè tệp trước đối với các khóa trùng lặp. |
--db <DB_URL> | none | string | none | URL kết nối cơ sở dữ liệu cho trạng thái Surfnet liên tục. Sử dụng :memory: cho SQLite trong bộ nhớ, tệp .sqlite cho SQLite trên đĩa, hoặc URL PostgreSQL khi được build với tính năng postgres. |
--surfnet-id <SURFNET_ID> | none | string | default | Không gian lưu trữ cho phiên bản Surfnet này. |
Runtime & UI
| Flag | Short | Type | Default | Mô tả |
|---|---|---|---|---|
--no-tui | none | boolean | false | In log thay vì khởi chạy giao diện terminal. |
--no-studio | none | boolean | false | Tắt Surfpool Studio. |
--studio-port <PORT> | -s | integer | 18488 | Gắn Studio vào cổng này. |
--daemon | none | boolean | false | Chạy Surfpool dưới dạng tiến trình nền. Chế độ Daemon chỉ hỗ trợ Linux. |
--ci | none | boolean | false | Sử dụng cài đặt phù hợp cho CI. Tính năng này tắt TUI, Studio, phân tích lệnh và xuất log. |
Hành vi SVM
| Flag | Short | Type | Default | Mô tả |
|---|---|---|---|---|
--slot-time <MILLISECONDS> | -t | integer | 400 | Thời gian slot tính bằng mili giây. |
--block-production-mode <MODE> | -b | enum | clock | Chế độ sản xuất khối. |
--feature <FEATURE_PUBKEY> | -f | pubkey[] | none | Bật tính năng SVM theo pubkey. Có thể lặp lại. Tên tính năng đã bị loại bỏ nhưng vẫn được chấp nhận cho các tên đã hỗ trợ trước đây. |
--disable-feature <FEATURE_PUBKEY> | none | pubkey[] | none | Tắt tính năng SVM theo pubkey. Có thể lặp lại. Tên tính năng đã bị loại bỏ nhưng vẫn được chấp nhận cho các tên đã hỗ trợ trước đây. |
--features-all | none | boolean | false | Bật tất cả tính năng SVM từ agave-feature-set. |
--skip-signature-verification | none | boolean | false | Bỏ qua xác minh chữ ký giao dịch. |
--skip-blockhash-check | none | boolean | false | Bỏ qua xác thực blockhash giao dịch. |
Quan sát & Hiệu suất
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--geyser-plugin-config <PLUGIN_CONFIG_PATH> | -g | path[] | none | Tệp cấu hình plugin Geyser cần tải. Có thể lặp lại. |
--disable-instruction-profiling | none | boolean | false | Tắt tính năng lập hồ sơ lệnh. |
--max-profiles <COUNT> | -c | integer | 200 | Số hồ sơ giao dịch lưu trong bộ nhớ. Giá trị càng cao thì mức sử dụng bộ nhớ càng tăng. |
--log-bytes-limit <BYTES> | none | integer | 10000 | Số byte tối đa lưu trữ cho mỗi nhật ký giao dịch. Đặt thành 0 để nhật ký không giới hạn. |
--log-level <LEVEL> | -l | enum | info | Cấp độ nhật ký Simnet. Giá trị: trace, debug, info, warn, error, none. |
--log-path <LOG_DIR> | none | path | .surfpool/logs | Thư mục chứa nhật ký simnet. |
--metrics-enabled | none | boolean | env: SURFPOOL_METRICS_ENABLED | Bật endpoint Prometheus metrics. Khả dụng khi Surfpool được build với tính năng prometheus. |
--metrics-addr <METRICS_ADDR> | none | string | 127.0.0.1:9000 | Địa chỉ endpoint Prometheus metrics. Cũng có thể được đặt bằng SURFPOOL_METRICS_ADDR. Khả dụng khi Surfpool được build với tính năng prometheus. |
Tương thích đã lỗi thời
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--subgraph-db <SUBGRAPH_DB> | -d | string | :memory: | Đã lỗi thời và ẩn khỏi surfpool start --help. Các script hiện có vẫn có thể truyền nó để tương thích. |
Ví dụ
Khởi động với cài đặt mặc định:
surfpool start
Fork devnet:
surfpool start --network devnet
Sử dụng URL RPC nguồn dữ liệu tùy chỉnh:
surfpool start --rpc-url https://api.mainnet-beta.solana.com
In nhật ký thay vì khởi chạy TUI:
surfpool start --no-tui
Khởi động mà không cần nguồn dữ liệu RPC từ xa:
surfpool start --offline
Airdrop SOL vào nhiều tài khoản:
surfpool start --airdrop <PUBKEY> --airdrop <PUBKEY>
Tải trạng thái tài khoản từ các snapshot:
surfpool start --snapshot ./snapshot1.json --snapshot ./snapshot2.json
Triển khai lại các chương trình khi target/deploy thay đổi:
surfpool start --watch
Lưu trữ trạng thái Surfnet trong cơ sở dữ liệu SQLite trên ổ đĩa:
surfpool start --db ./surfnet.sqlite --surfnet-id local-dev
surfpool run
Thực thi một Runbook. Bạn có thể chạy trực tiếp một tệp .tx hoặc tham chiếu
đến một Runbook được khai báo trong tệp manifest txtx.yml.
surfpool run [OPTIONS] <RUNBOOK>
Đối số
| Đối số | Kiểu | Mô tả |
|---|---|---|
<RUNBOOK> | string | ID Runbook từ txtx.yml, hoặc đường dẫn đến tệp .tx. |
Dự án
| Cờ | Viết tắt | Kiểu | Mặc định | Mô tả |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Đường dẫn đến tệp manifest runbook. |
--env <ENVIRONMENT> | none | string | none | Môi trường từ txtx.yml để sử dụng. |
Chế độ thực thi
Các cờ này loại trừ lẫn nhau. Nếu không có cờ nào được chỉ định, Surfpool sẽ sử dụng chế độ giám sát qua trình duyệt.
| Cờ | Viết tắt | Kiểu | Mặc định | Mô tả |
|---|---|---|---|---|
--unsupervised | -u | boolean | false | Thực thi mà không có giao diện giám sát. |
--browser | -b | boolean | chế độ mặc định | Thực thi với giám sát trong giao diện trình duyệt. |
--terminal | -t | boolean | false | Thực thi với giám sát trong bảng điều khiển terminal. |
Đầu vào & Đầu ra
| Cờ | Viết tắt | Loại | Mặc định | Mô tả |
|---|---|---|---|---|
--output-json [<OUTPUT_DIR>] | none | đường dẫn tùy chọn | none | In hoặc ghi đầu ra của Runbook dưới dạng JSON. Khi cung cấp một thư mục, đầu ra sẽ được ghi vào một tệp trong thư mục đó. |
--output <OUTPUT_NAME> | none | string | none | In một đầu ra được đặt tên vào cuối quá trình thực thi. Xung đột với --output-json. |
--input <INPUT_PATH> | none | path[] | none | Tệp đầu vào để sử dụng cho xử lý hàng loạt. Có thể lặp lại. |
Thực thi
| Cờ | Viết tắt | Loại | Mặc định | Mô tả |
|---|---|---|---|---|
--explain | none | boolean | false | Giải thích cách Runbook sẽ thực thi. |
--force | -f | boolean | false | Bỏ qua trạng thái thực thi đã được lưu trong bộ nhớ đệm. |
Giao diện người dùng Supervisor
Các cờ này khả dụng khi Surfpool được xây dựng với tính năng supervisor_ui.
| Cờ | Viết tắt | Loại | Mặc định | Mô tả |
|---|---|---|---|---|
--port <PORT> | -p | integer | 8488 | Cổng Web UI. |
--ip <IP_ADDRESS> | -i | string | 127.0.0.1 | Địa chỉ IP Web UI. |
Ghi nhật ký
| Cờ | Viết tắt | Loại | Mặc định | Mô tả |
|---|---|---|---|---|
--log-level <LEVEL> | -l | enum | info | Mức nhật ký thực thi Runbook. Các giá trị: trace, debug, info, warn, error. |
--log-path <LOG_DIR> | none | path | .surfpool/logs | Thư mục chứa nhật ký thực thi runbook. |
Ví dụ
Chạy một Runbook manifest với sự giám sát của trình duyệt:
surfpool run deployment
Chạy không có giám sát và ghi kết quả đầu ra JSON:
surfpool run deployment --unsupervised --output-json .surfpool/runbook-outputs
Chạy trực tiếp tệp .tx:
surfpool run ./runbooks/deployment.tx
surfpool ls
Liệt kê tất cả các Runbook được khai báo trong manifest của workspace.
surfpool ls [OPTIONS]
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--manifest-file-path <MANIFEST_PATH> | -m | path | ./txtx.yml | Đường dẫn đến manifest của runbook. |
surfpool completions
Tạo các script hoàn thành lệnh cho shell.
surfpool completions <SHELL>
| Argument | Type | Description |
|---|---|---|
<SHELL> | enum | Shell để tạo completions. Các giá trị: bash, elvish, fish, powershell, zsh. |
surfpool mcp
Khởi động máy chủ Surfpool MCP để tích hợp công cụ AI.
surfpool mcp
Is this page helpful?