CLI 명령어

surfpool CLI는 로컬 Surfnet을 시작하고, Runbook을 실행하며, 워크스페이스 매니페스트에서 Runbook을 나열하고, 셸 자동 완성을 생성하며, Surfpool MCP 서버를 시작합니다.

명령어

명령어설명
surfpool start로컬 Surfnet 시작. 별칭: surfpool simnet
surfpool runRunbook 실행
surfpool ls현재 워크스페이스의 Runbook 목록 표시
surfpool completions셸 자동 완성 스크립트 생성
surfpool mcpSurfpool MCP 서버 시작

surfpool start

로컬 Surfnet을 시작합니다. Solana 프로그램 디렉토리에서 실행하면 Surfpool이 프로그램을 배포하는 Runbook을 자동으로 생성하고 실행할 수 있습니다.

surfpool start [OPTIONS]

네트워크 및 포트

플래그단축타입기본값설명
--port <PORT>-pinteger8899JSON-RPC 서버를 바인딩할 포트.
--ws-port <PORT>-winteger8900WebSocket 서버를 바인딩할 포트.
--host <HOST>-ostring127.0.0.1RPC, WebSocket 및 Studio 서비스를 바인딩할 호스트.
--rpc-url <RPC_URL>-ustringnone이 데이터소스 RPC URL에서 포크. --network와 충돌. SURFPOOL_DATASOURCE_RPC_URL 환경 변수로도 설정 가능.
--network <NETWORK>-nenumnone사전 정의된 Solana 네트워크에서 포크. 값: mainnet, devnet, testnet. --rpc-url와 충돌.
--offlinenonebooleanfalse원격 RPC 데이터소스 없이 실행.

프로젝트 및 배포

FlagShortTypeDefaultDescription
--manifest-file-path <MANIFEST_PATH>-mpath./txtx.yml런북 매니페스트 경로.
--no-deploynonebooleanfalse프로그램 자동 배포 비활성화.
--runbook <RUNBOOK>-rstring[]deployment시작 후 실행할 런북 ID. 반복 사용 가능.
--runbook-input <INPUT_PATH>-ipath[]none런북 실행에 제공할 입력 파일. 반복 사용 가능.
--yes-ybooleanfalse런북 생성 프롬프트 건너뛰기.
--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[]none시작 시 SOL을 에어드롭할 pubkey. 반복 사용 가능.
--airdrop-keypair-path <KEYPAIR_PATH>-kpath[]~/.config/solana/id.json에어드롭을 받을 pubkey의 keypair 경로. 반복 사용 가능.
--airdrop-amount <LAMPORTS>-qinteger10000000000000시작 시 각 계정에 에어드롭할 lamport 수.
--snapshot <SNAPSHOT_PATH>nonepath[]none사전 로드할 JSON 계정 스냅샷. 반복 사용 가능. 중복 키의 경우 나중에 지정된 파일이 우선 적용됨.
--db <DB_URL>nonestringnone영구적인 Surfnet 상태를 위한 데이터베이스 연결 URL. 인메모리 SQLite는 :memory:, 디스크 기반 SQLite는 .sqlite 파일, postgres 기능으로 빌드 시 PostgreSQL URL 사용.
--surfnet-id <SURFNET_ID>nonestringdefault이 Surfnet 인스턴스의 스토리지 네임스페이스.

런타임 및 UI

플래그축약타입기본값설명
--no-tuinonebooleanfalse터미널 UI를 실행하는 대신 로그를 출력합니다.
--no-studiononebooleanfalseSurfpool Studio를 비활성화합니다.
--studio-port <PORT>-sinteger18488Studio를 이 포트에 바인딩합니다.
--daemonnonebooleanfalseSurfpool을 백그라운드 프로세스로 실행합니다. 데몬 모드는 Linux 전용입니다.
--cinonebooleanfalseCI에 적합한 설정을 사용합니다. TUI, Studio, 명령어 프로파일링 및 로그 출력이 비활성화됩니다.

SVM 동작

플래그축약타입기본값설명
--slot-time <MILLISECONDS>-tinteger400slot 시간(밀리초).
--block-production-mode <MODE>-benumclock블록 생성 모드.
--feature <FEATURE_PUBKEY>-fpubkey[]nonepubkey로 SVM 기능을 활성화합니다. 반복 사용 가능. 기능 이름은 더 이상 사용되지 않지만 이전에 지원된 이름에 한해 여전히 허용됩니다.
--disable-feature <FEATURE_PUBKEY>nonepubkey[]nonepubkey로 SVM 기능을 비활성화합니다. 반복 사용 가능. 기능 이름은 더 이상 사용되지 않지만 이전에 지원된 이름에 한해 여전히 허용됩니다.
--features-allnonebooleanfalseagave-feature-set의 모든 SVM 기능을 활성화합니다.
--skip-signature-verificationnonebooleanfalse트랜잭션 서명 검증을 건너뜁니다.
--skip-blockhash-checknonebooleanfalse트랜잭션 블록해시 유효성 검사를 건너뜁니다.

관찰 가능성 및 성능

플래그단축유형기본값설명
--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>-lenuminfoSimnet 로그 레벨. 값: trace, debug, info, warn, error, none.
--log-path <LOG_DIR>nonepath.surfpool/logsSimnet 로그 디렉터리.
--metrics-enablednonebooleanenv: SURFPOOL_METRICS_ENABLEDPrometheus 메트릭 엔드포인트 활성화. Surfpool이 prometheus 기능으로 빌드된 경우 사용 가능.
--metrics-addr <METRICS_ADDR>nonestring127.0.0.1:9000Prometheus 메트릭 엔드포인트 주소. 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

여러 계정에 SOL 에어드롭:

surfpool start --airdrop <PUBKEY> --airdrop <PUBKEY>

스냅샷에서 계정 상태 로드:

surfpool start --snapshot ./snapshot1.json --snapshot ./snapshot2.json

target/deploy 변경 시 프로그램 재배포:

surfpool start --watch

온디스크 SQLite 데이터베이스에 Surfnet 상태 저장:

surfpool start --db ./surfnet.sqlite --surfnet-id local-dev

surfpool run

Runbook을 실행합니다. .tx 파일을 직접 실행하거나 txtx.yml 매니페스트에 선언된 Runbook을 참조할 수 있습니다.

surfpool run [OPTIONS] <RUNBOOK>

인수

인수타입설명
<RUNBOOK>stringtxtx.yml의 Runbook ID 또는 .tx 파일 경로.

프로젝트

플래그단축타입기본값설명
--manifest-file-path <MANIFEST_PATH>-mpath./txtx.ymlRunbook 매니페스트 경로.
--env <ENVIRONMENT>nonestringnone사용할 txtx.yml의 환경.

실행 모드

이 플래그들은 상호 배타적입니다. 지정하지 않으면 Surfpool은 브라우저 감독 모드를 사용합니다.

플래그단축타입기본값설명
--unsupervised-ubooleanfalse슈퍼바이저 UI 없이 실행.
--browser-bboolean기본 모드브라우저 UI에서 감독하며 실행.
--terminal-tbooleanfalse터미널 콘솔에서 감독하며 실행.

입력 및 출력

플래그약어유형기본값설명
--output-json [<OUTPUT_DIR>]없음선택적 경로없음Runbook 출력을 JSON으로 출력하거나 저장합니다. 디렉터리를 지정하면 해당 디렉터리의 파일에 출력이 저장됩니다.
--output <OUTPUT_NAME>없음문자열없음실행 종료 시 지정한 이름의 출력 하나를 출력합니다. --output-json와 충돌합니다.
--input <INPUT_PATH>없음path[]없음일괄 처리에 사용할 입력 파일입니다. 반복 사용 가능합니다.

실행

플래그약어유형기본값설명
--explain없음부울falseRunbook의 실행 방식을 설명합니다.
--force-f부울false캐시된 실행 상태를 무시합니다.

슈퍼바이저 UI

이 플래그들은 Surfpool이 supervisor_ui 기능과 함께 빌드된 경우에 사용할 수 있습니다.

플래그약어유형기본값설명
--port <PORT>-p정수8488Web UI 포트.
--ip <IP_ADDRESS>-i문자열127.0.0.1Web UI IP 주소.

로깅

플래그약어유형기본값설명
--log-level <LEVEL>-l열거형infoRunbook 실행 로그 레벨. 값: trace, debug, info, warn, error.
--log-path <LOG_DIR>없음경로.surfpool/logsRunbook 실행 로그 디렉터리.

예제

브라우저 감독 하에 매니페스트 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.ymlRunbook 매니페스트 경로.

surfpool completions

셸 자동 완성 스크립트를 생성합니다.

surfpool completions <SHELL>
인수유형설명
<SHELL>enum자동 완성을 생성할 셸. 값: bash, elvish, fish, powershell, zsh.

surfpool mcp

AI 도구 통합을 위한 Surfpool MCP 서버를 시작합니다.

surfpool mcp

Is this page helpful?