Boas Práticas da Solana CLI
Um resumo condensado das 25 práticas mais importantes da Solana CLI extraídas de cada página desta seção.
Busque em todas as páginas da documentação
Um resumo condensado das 25 práticas mais importantes da Solana CLI extraídas de cada página desta seção.
Fixe as versões do Agave e da CLI: Instale o Agave 4.1.1 para que solana --version reporte a CLI 3.0.10 - cadeias de ferramentas incompatíveis causam surpresas de deploy e RPC (Noções Básicas da Solana CLI).
Verifique a configuração antes de cada sessão: Execute solana config get e confirme se a URL do RPC, o caminho do keypair e o commitment correspondem ao cluster que você pretende acessar.
Separe os keypairs por cluster: Nunca reutilize uma chave financiada na mainnet como padrão em scripts devnet - isso reduz gastos acidentais na mainnet.
Nunca comite JSON de keypair: Adicione os caminhos *-keypair.json e id.json ao .gitignore; carregue chaves de produção apenas de gerenciadores de segredos (Keypairs com solana-keygen).
Registre as frases seed offline: Faça backup das frases BIP39 ao criar chaves - a perda de disco sem uma frase é irrecuperável.
Use chmod 600 nos arquivos de chave: Restrinja os arquivos de chave secreta apenas ao seu usuário em hosts Unix antes de financiar carteiras.
Use devnet para fluxos de trabalho de faucet: Financie com solana airdrop apenas em devnet/testnet; a mainnet requer SOL real (Airdrops e Saldos).
Deixe margem para taxas: Mantenha pelo menos 0,01 SOL em carteiras dev ativas - taxas de aluguel (rent) e de prioridade consomem mais do que os 5.000 lamports base.
Verifique duas vezes as chaves públicas dos destinatários: Teste com uma transferência de poeira antes de grandes pagamentos - erros de digitação em base58 são irreversíveis (Enviando SOL e Transações).
Use commitment finalized para operações de tesouraria: Defina --commitment finalized ao confirmar transferências de alto valor na mainnet.
Inspecione antes de depurar código: Execute solana account e solana program show para verificar proprietários, comprimento dos dados e autoridade de atualização (Inspecionando Contas e Programas).
Alinhe os IDs de programa em todos os lugares: declare_id!, Anchor.toml e o keypair de deploy devem compartilhar uma chave pública antes do deploy (Implantando Programas).
Construa artefatos de release para deploy: Use a saída de release de anchor build / cargo build-sbf - arquivos .so de depuração desperdiçam rent e CU.
Financie deploys para rent de programdata: Programas grandes precisam de mais lamports do que um airdrop de 2 SOL em devnet - verifique o saldo antes de program deploy.
Transfira a autoridade de atualização deliberadamente: Mova a autoridade para um multisig na mainnet; use --final apenas quando a imutabilidade for intencional.
Use spl-token para tokens: O solana transfer nativo nunca move saldos SPL - use spl-token transfer com --fund-recipient (spl-token CLI).
Saiba qual camada escala o valor: A CLI spl-token aceita quantidades da UI e aplica os decimais da mint para você - passe 2.5, não 2500000. Multiplique por 10^decimals apenas quando você mesmo construir os dados da instrução.
Transmita logs em um segundo terminal: Emparelhe solana logs com um validador local ou RPC devnet enquanto itera em erros de programa (Logs e Depuração).
Capture o JSON de transações falhadas: solana transaction <SIG> --output json-compact preserva logMessages para tickets e artefatos de CI.
Prefira RPC de provedor para confiabilidade: Endpoints públicos têm limites de taxa; use URLs dedicadas de devnet/mainnet em solana config set --url.
Exporte a configuração para CI com cuidado: solana config get --json é aceitável para URLs de RPC - nunca comite caminhos para keypairs de produção em repositórios compartilhados.
Confirme assinaturas explicitamente em scripts: Use solana confirm -v e verifique os códigos de saída em vez de assumir que as submissões --no-wait foram realizadas.
Descarregue binários de programa para verificar deploys: solana program dump mais a comparação de hash detecta deploys em cluster errado ou com artefato errado.
Revogue a autoridade de mint após o lançamento: spl-token authorize <MINT> mint --disable quando um suprimento fixo for um requisito.
Documente o cluster em runbooks: Toda documentação de operações deve declarar a URL do RPC, o commitment e a versão da CLI para que as ações de plantão correspondam às máquinas dos desenvolvedores.
Executar comandos mainnet com um keypair padrão financiado na mainnet acreditando estar em devnet - sempre execute solana config get primeiro.
Prefira uma tesouraria devnet compartilhada mais chaves individuais por engenheiro para auditabilidade. Nunca compartilhe chaves de autoridade de atualização da mainnet.
O Anchor encapsula os mesmos arquivos de deploy e keypair - a higiene da CLI protege diretamente os resultados do anchor deploy.
Toolchain fixada, pagador financiado, ID de programa correspondente, build de release, teste seco em devnet, plano de autoridade de atualização multisig.
Rotacione quando engenheiros saírem ou as chaves tocarem logs de CI compartilhados. As chaves devnet têm baixo risco, mas criam um bom hábito para a disciplina na mainnet.
Versões do 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