Boas Práticas de Padrões de Programa
Padrões reutilizáveis só ajudam quando aplicados de forma consistente. Esta lista captura disciplina de inicialização, custódia, estado e upgrade para programas Solana em produção.
Como Usar Esta Lista
- Mapeie cada instrução para o checklist de padrões antes da implementação.
- Faça cross-link de SEEDS.md e tabelas de transição de estado nas revisões.
- Simule caminhos de falha, não apenas caminhos felizes.
A - Ciclo de Vida
- Separe a criação de conta da inicialização; escreva discriminadores antes de aceitar valor. Bloqueia ataques de reinit.
- Modele fluxos de negócio como máquinas de estado explícitas com guardas de transição ilegal. Previne bypass de lógica.
- Feche contas zerando dados e direcionando rent para um destinatário declarado. Impede revival.
- Use o sysvar Clock para expirações - nunca confie apenas em tempo fornecido pelo cliente. Fonte de tempo honesta.
- Aplique checks-effects-interactions antes de qualquer CPI externa. Segurança contra reentrância.
B - Custódia
- Isole cofres PDA por usuário ou por escrow com prefixos de semente únicos. Controle de raio de explosão.
- Verifique mint, ATA e grafo de autoridade antes de CPI de token. Anti-substituição.
- Colete taxas com matemática verificada e bps configuráveis limitados. Segurança econômica.
- Forneça caminhos de cancelamento/timeout para escrows. Segurança de fundos do usuário.
- Minimize poderes de admin; use multisig e transferência de admin em duas etapas. Segurança de governança.
C - Evolução
- Reserve espaço de conta ou planeje realloc antes do deploy imutável. Compatibilidade futura.
- Versione schemas e envie instruções de migração com upgrades. Continuidade de usuários ativos.
- Documente tabelas de transição de estado e sementes para auditores. Revisão mais rápida.
- Emita eventos em mudanças materiais de estado para indexadores. Visibilidade operacional.
- Teste regressão de invariantes de padrão no LiteSVM após cada mudança. Previne deriva.
FAQs
Padrões do Anchor são suficientes?
Entenda ainda a saída das macros.
Um padrão por programa?
Combine com cuidado.
Marketplace de NFT?
Escrow + verificações de metadata.
DeFi?
Cofre + máquina de estados + oráculo.
Jogo?
Estado + clock + limites de CU.
Imutável?
Padrões 10x mais importantes.
Ordem de auditoria?
Init, custódia, admin, CPI.
Surfpool?
Testes de integração de padrões.
Agave 4.1.1?
Fixe e reteste.
ADR de docs?
Recomendado por escolha de padrão.
Composável?
Documente superfície pública de CPI.
Drills de falha?
Simule falhas de mainnet mensalmente.
Relacionados
- Noções Básicas de Padrões de Programa - Introdução
- Boas Práticas de PDA - PDAs
- Boas Práticas de CPI - CPIs
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.