Documentación de SolanaCadena de herramientas

Comandos CLI

El CLI surfpool inicia Surfnets locales, ejecuta Runbooks, lista Runbooks desde un manifiesto de workspace, genera autocompletados de shell e inicia el servidor MCP de Surfpool.

Comandos

ComandoDescripción
surfpool startIniciar una Surfnet local. Alias: surfpool simnet
surfpool runEjecutar un Runbook
surfpool lsListar Runbooks en el workspace actual
surfpool completionsGenerar scripts de autocompletado de shell
surfpool mcpIniciar el servidor MCP de Surfpool

surfpool start

Inicia una Surfnet local. Si lo ejecutas en un directorio de programa de Solana, Surfpool puede generar y ejecutar Runbooks que despliegan tus programas.

surfpool start [OPTIONS]

Red y puertos

FlagCortoTipoPredeterminadoDescripción
--port <PORT>-pentero8899Vincular el servidor JSON-RPC a este puerto.
--ws-port <PORT>-wentero8900Vincular el servidor WebSocket a este puerto.
--host <HOST>-ocadena127.0.0.1Vincular los servicios RPC, WebSocket y Studio a este host.
--rpc-url <RPC_URL>-ucadenaningunoBifurcar desde esta URL RPC de fuente de datos. Conflicto con --network. También se puede establecer con SURFPOOL_DATASOURCE_RPC_URL.
--network <NETWORK>-nenumningunoBifurcar desde una red Solana predefinida. Valores: mainnet, devnet, testnet. Conflicto con --rpc-url.
--offlineningunobooleanofalseEjecutar sin una fuente de datos RPC remota.

Proyecto e implementación

FlagShortTypeDefaultDescription
--manifest-file-path <MANIFEST_PATH>-mpath./txtx.ymlRuta al manifiesto del runbook.
--no-deploynonebooleanfalseDeshabilitar las implementaciones automáticas de programas.
--runbook <RUNBOOK>-rstring[]deploymentID del runbook a ejecutar tras el inicio. Repetible.
--runbook-input <INPUT_PATH>-ipath[]noneArchivo de entrada para la ejecución del runbook. Repetible.
--yes-ybooleanfalseOmitir los mensajes de generación del runbook.
--watchnonebooleanfalseVolver a implementar cuando cambien los artefactos del programa.
--artifacts-path <ARTIFACTS_PATH>nonepathnoneDirectorio que contiene los artefactos del programa .so. Por defecto es target/deploy si se omite.
--legacy-anchor-compatibilitynonebooleanfalseUsar valores predeterminados adecuados para suites de prueba de Anchor heredadas.
--anchor-test-config-path <TEST_TOML>nonepath[]noneArchivo Test.toml de Anchor a inspeccionar. Repetible.

Cuentas y estado

FlagShortTypeDefaultDescription
--airdrop <PUBKEY>-apubkey[]nonepubkey al que enviar SOL por airdrop al inicio. Repetible.
--airdrop-keypair-path <KEYPAIR_PATH>-kpath[]~/.config/solana/id.jsonRuta del keypair cuyo pubkey debe recibir un airdrop. Repetible.
--airdrop-amount <LAMPORTS>-qinteger10000000000000lamports a enviar por airdrop a cada cuenta al inicio.
--snapshot <SNAPSHOT_PATH>nonepath[]noneInstantánea de cuenta JSON a precargar. Repetible. Los archivos posteriores sobreescriben a los anteriores en caso de claves duplicadas.
--db <DB_URL>nonestringnoneURL de conexión a base de datos para el estado persistente de Surfnet. Use :memory: para SQLite en memoria, un archivo .sqlite para SQLite en disco, o una URL de PostgreSQL si se compiló con la función postgres.
--surfnet-id <SURFNET_ID>nonestringdefaultEspacio de nombres de almacenamiento para esta instancia de Surfnet.

Tiempo de ejecución e interfaz de usuario

FlagShortTipoPredeterminadoDescripción
--no-tuinonebooleanfalseImprime los registros en lugar de iniciar la interfaz de terminal.
--no-studiononebooleanfalseDeshabilita Surfpool Studio.
--studio-port <PORT>-sinteger18488Vincula Studio a este puerto.
--daemonnonebooleanfalseEjecuta Surfpool como un proceso en segundo plano. El modo demonio solo está disponible en Linux.
--cinonebooleanfalseUsa configuraciones adecuadas para CI. Esto deshabilita la TUI, Studio, el perfilado de instrucciones y la salida de registros.

Comportamiento de SVM

FlagShortTipoPredeterminadoDescripción
--slot-time <MILLISECONDS>-tinteger400Tiempo de slot en milisegundos.
--block-production-mode <MODE>-benumclockModo de producción de bloques.
--feature <FEATURE_PUBKEY>-fpubkey[]noneHabilita una función de SVM por pubkey. Repetible. Los nombres de función están obsoletos, pero aún se aceptan para los nombres previamente compatibles.
--disable-feature <FEATURE_PUBKEY>nonepubkey[]noneDeshabilita una función de SVM por pubkey. Repetible. Los nombres de función están obsoletos, pero aún se aceptan para los nombres previamente compatibles.
--features-allnonebooleanfalseHabilita todas las funciones de SVM desde agave-feature-set.
--skip-signature-verificationnonebooleanfalseOmite la verificación de firma de transacciones.
--skip-blockhash-checknonebooleanfalseOmite la validación de blockhash de transacciones.

Observabilidad y rendimiento

FlagShortTypeDefaultDescription
--geyser-plugin-config <PLUGIN_CONFIG_PATH>-gpath[]noneArchivo de configuración del plugin Geyser a cargar. Repetible.
--disable-instruction-profilingnonebooleanfalseDeshabilitar la generación de perfiles de instrucciones.
--max-profiles <COUNT>-cinteger200Perfiles de transacciones a retener en memoria. Los valores más altos aumentan el uso de memoria.
--log-bytes-limit <BYTES>noneinteger10000Máximo de bytes almacenados para cada registro de transacción. Establecer en 0 para registros ilimitados.
--log-level <LEVEL>-lenuminfoNivel de log de simnet. Valores: trace, debug, info, warn, error, none.
--log-path <LOG_DIR>nonepath.surfpool/logsDirectorio para los logs de simnet.
--metrics-enablednonebooleanenv: SURFPOOL_METRICS_ENABLEDHabilitar el endpoint de métricas de Prometheus. Disponible cuando Surfpool se compila con la función prometheus.
--metrics-addr <METRICS_ADDR>nonestring127.0.0.1:9000Dirección del endpoint de métricas de Prometheus. También se puede configurar con SURFPOOL_METRICS_ADDR. Disponible cuando Surfpool se compila con la función prometheus.

Compatibilidad obsoleta

FlagShortTypeDefaultDescription
--subgraph-db <SUBGRAPH_DB>-dstring:memory:Obsoleto y oculto en surfpool start --help. Los scripts existentes aún pueden utilizarlo por compatibilidad.

Ejemplos

Iniciar con la configuración predeterminada:

surfpool start

Bifurcar devnet:

surfpool start --network devnet

Usar una URL de RPC de fuente de datos personalizada:

surfpool start --rpc-url https://api.mainnet-beta.solana.com

Imprimir registros en lugar de iniciar la TUI:

surfpool start --no-tui

Iniciar sin una fuente de datos RPC remota:

surfpool start --offline

Airdrop de SOL a múltiples cuentas:

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

Cargar el estado de cuentas desde instantáneas:

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

Reimplementar programas cuando target/deploy cambia:

surfpool start --watch

Persistir el estado de Surfnet en una base de datos SQLite en disco:

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

surfpool run

Ejecuta un Runbook. Puedes ejecutar un archivo .tx directamente o hacer referencia a un Runbook declarado en un manifiesto txtx.yml.

surfpool run [OPTIONS] <RUNBOOK>

Argumentos

ArgumentoTipoDescripción
<RUNBOOK>stringID del Runbook desde txtx.yml, o ruta a un archivo .tx.

Proyecto

IndicadorCortoTipoPredeterminadoDescripción
--manifest-file-path <MANIFEST_PATH>-mpath./txtx.ymlRuta al manifiesto del runbook.
--env <ENVIRONMENT>nonestringnoneEntorno de txtx.yml a utilizar.

Modo de Ejecución

Estas opciones son mutuamente excluyentes. Si no se especifica ninguna, Surfpool utiliza la supervisión del navegador.

IndicadorCortoTipoPredeterminadoDescripción
--unsupervised-ubooleanfalseEjecutar sin la interfaz de supervisión.
--browser-bbooleanmodo predeterminadoEjecutar con supervisión en la interfaz del navegador.
--terminal-tbooleanfalseEjecutar con supervisión en la consola de terminal.

Entradas y Salidas

BanderaCortaTipoDefectoDescripción
--output-json [<OUTPUT_DIR>]ningunaruta opcionalningunaImprime o escribe las salidas del Runbook en formato JSON. Si se proporciona un directorio, la salida se escribe en un archivo dentro de ese directorio.
--output <OUTPUT_NAME>ningunacadenaningunaImprime una salida con nombre al final de la ejecución. Conflicto con --output-json.
--input <INPUT_PATH>ningunaruta[]ningunaArchivo de entrada para procesamiento por lotes. Repetible.

Ejecución

BanderaCortaTipoDefectoDescripción
--explainningunabooleanofalseExplica cómo se ejecutará el Runbook.
--force-fbooleanofalseIgnora el estado de ejecución en caché.

Interfaz de supervisor

Estas banderas están disponibles cuando Surfpool se compila con la función supervisor_ui.

BanderaCortaTipoDefectoDescripción
--port <PORT>-pentero8488Puerto de la interfaz web.
--ip <IP_ADDRESS>-icadena127.0.0.1Dirección IP de la interfaz web.

Registro

BanderaCortaTipoDefectoDescripción
--log-level <LEVEL>-lenuminfoNivel de registro de ejecución del Runbook. Valores: trace, debug, info, warn, error.
--log-path <LOG_DIR>ningunaruta.surfpool/logsDirectorio para los registros de ejecución del Runbook.

Ejemplos

Ejecutar un Runbook de manifiesto con supervisión del navegador:

surfpool run deployment

Ejecutar sin supervisión y escribir salidas JSON:

surfpool run deployment --unsupervised --output-json .surfpool/runbook-outputs

Ejecutar un archivo .tx directamente:

surfpool run ./runbooks/deployment.tx

surfpool ls

Lista todos los Runbooks declarados en el manifiesto del espacio de trabajo.

surfpool ls [OPTIONS]
FlagShortTypeDefaultDescription
--manifest-file-path <MANIFEST_PATH>-mpath./txtx.ymlRuta al manifiesto del runbook.

surfpool completions

Genera scripts de autocompletado para la shell.

surfpool completions <SHELL>
ArgumentTypeDescription
<SHELL>enumShell para la que se generarán los autocompletados. Valores: bash, elvish, fish, powershell, zsh.

surfpool mcp

Inicia el servidor MCP de Surfpool para la integración con herramientas de IA.

surfpool mcp

Is this page helpful?