solana-test-validator
Execute solana-test-validator para obter um cluster Solana de nó único com JSON-RPC, faucet e execução de programas BPF em localhost.
Busque em todas as páginas da documentação
Execute solana-test-validator para obter um cluster Solana de nó único com JSON-RPC, faucet e execução de programas BPF em localhost.
Cartão de receita de referência rápida - pronto para copiar e colar.
solana-test-validator
solana-test-validator --reset
solana-test-validator --bpf-program <PROGRAM_ID> target/deploy/my_program.soQuando usar:
anchor test.# Terminal 1: validador com seu programa pré-carregado
solana-test-validator --reset \
--bpf-program "$(solana-keygen pubkey target/deploy/my_program-keypair.json)" \
target/deploy/my_program.so
# Terminal 2: CLI + testes
solana config set --url http://127.0.0.1:8899
solana airdrop 5
anchor test --skip-local-validator # se o validador já estiver em execuçãoO que isso demonstra:
--reset limpa o ledger para execuções determinísticas.--bpf-program registra bytecode em um ID de programa fixo no gênesis.test-ledger/ por padrão, a menos que --ledger sobrescreva.| Flag | Efeito |
|---|---|
--reset | Exclui ledger existente |
--ledger <PATH> | Diretório de estado persistente |
--clone <PUBKEY> | Copia conta de --url na inicialização |
--bpf-program <ID> <SO> | Pré-carrega binário do programa |
--url <CLUSTER> | Origem para clones |
# Logs silenciosos para CI
solana-test-validator --quiet --reset
# Vincular porta RPC customizada
solana-test-validator --rpc-port 18899pkill solana-test-validator ou altere --rpc-port.--url mainnet-beta com --clone.--bpf-program deve corresponder a declare_id! do cliente. Correção: use pubkey do keypair de target/deploy.solana logs.| Alternativa | Use quando | Não use quando |
|---|---|---|
| Surfpool 0.12.0 | Simulação de fork da mainnet | Testes locais mínimos sem dependências |
| LiteSVM 0.6.x | Testes unitários em subsegundos | Integração completa de cliente RPC |
| devnet | Ambiente de staging compartilhado | Loop interno de dev rápido |
Validador embutido de anchor test | Testes em um comando | Sessão manual de longa duração |
RPC padrão 8899, gossip 8900, faucet 9900 - configuráveis via flags.
Sim - omita --reset e reutilize o caminho de --ledger; cuidado com deriva de estado nos testes.
Clone IDs do programa Token ou use --bpf-program com pubkeys de programa conhecidos.
Sim - corresponde aos recursos do Agave 4.1.1, incluindo transações v0 e ALTs quando habilitados nos recursos do cluster.
Comece com dezenas, não milhares - cada clone adiciona tempo de busca RPC na inicialização.
Sim para CI - exponha a porta 8899 aos containers de teste.
O test validator ajusta o timing de slot para throughput de desenvolvedor, não timing de consenso de produção.
Ctrl+C no terminal; garanta que nenhum processo órfão segure a porta 8899.
Por padrão sim - use --skip-local-validator quando você gerencia o validador manualmente.
Sim em valores diferentes de --rpc-port para shards paralelos de CI.
Versões da stack: Esta página foi 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 e LiteSVM 0.6.x.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026