solana-test-validator
Ejecuta solana-test-validator para obtener un clúster Solana de un solo nodo con ejecución de programas BPF, faucet y JSON-RPC en localhost.
Busca en todas las páginas de la documentación
Ejecuta solana-test-validator para obtener un clúster Solana de un solo nodo con ejecución de programas BPF, faucet y JSON-RPC en localhost.
Tarjeta de receta de referencia rápida - lista para copiar y pegar.
solana-test-validator
solana-test-validator --reset
solana-test-validator --bpf-program <PROGRAM_ID> target/deploy/my_program.soCuándo usar esto:
anchor test.# Terminal 1: validador con tu programa precargado
solana-test-validator --reset \
--bpf-program "$(solana-keygen pubkey target/deploy/my_program-keypair.json)" \
target/deploy/my_program.so
# Terminal 2: CLI + pruebas
solana config set --url http://127.0.0.1:8899
solana airdrop 5
anchor test --skip-local-validator # si el validador ya se está ejecutandoLo que esto demuestra:
--reset borra el ledger para ejecuciones deterministas.--bpf-program registra el bytecode en un ID de programa fijo al inicio.test-ledger/ a menos que --ledger lo anule.| Bandera | Efecto |
|---|---|
--reset | Elimina el ledger existente |
--ledger <RUTA> | Directorio de estado persistente |
--clone <PUBKEY> | Copia la cuenta desde --url al inicio |
--bpf-program <ID> <SO> | Precarga el binario del programa |
--url <CLUSTER> | Fuente para las clonaciones |
# Silenciar logs para CI
solana-test-validator --quiet --reset
# Vincular puerto RPC personalizado
solana-test-validator --rpc-port 18899--reset: el estado obsoleto causa pruebas inestables. Solución: restablecer siempre en CI; documentar la ruta del ledger para experimentos persistentes.pkill solana-test-validator o cambiar --rpc-port.--url mainnet-beta con --clone.--bpf-program debe coincidir con declare_id! del cliente. Solución: usar la clave pública del keypair de target/deploy.solana logs.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Surfpool 0.12.0 | Simulación de fork de Mainnet | Pruebas locales mínimas sin dependencias |
| LiteSVM 0.6.x | Pruebas unitarias sub-segundo | Integración completa del cliente RPC |
| devnet | Entorno de staging compartido | Bucle de desarrollo interno rápido |
anchor test validador incrustado | Pruebas con un solo comando | Sesión manual de larga duración |
RPC predeterminado 8899, gossip 8900, faucet 9900 - configurable mediante banderas.
Sí - omite --reset y reutiliza la ruta de --ledger; ten cuidado con la deriva del estado en las pruebas.
Clona los IDs de programa de Token o usa --bpf-program con claves públicas de programas conocidas.
Sí - coincide con las características de Agave 4.1.1, incluidas las transacciones v0 y ALTs cuando están habilitadas en las características del clúster.
Empieza con decenas, no miles - cada clonación añade tiempo de recuperación RPC al inicio.
Sí para CI - expón el puerto 8899 a los contenedores de prueba.
El validador de prueba ajusta el tiempo de slot para el rendimiento del desarrollador, no para el tiempo de consenso de producción.
Ctrl+C en la terminal; asegúrate de que no haya procesos huérfanos que retengan el puerto 8899.
Por defecto sí - usa --skip-local-validator cuando gestiones el validador manualmente.
Sí en diferentes valores de --rpc-port para fragmentos de CI paralelos.
Versiones de la Pila: Esta página fue escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026