Melhores Práticas Avançadas de Anchor
Programas Anchor 0.32.1 eficientes e prontos para produção combinam otimização com uma barra de segurança inalterada.
Como Usar Esta Lista
- Use após ter uma base sólida em noções básicas, contas e seções de CPI.
- Faça o profiling antes de aplicar
zero_copyou CPI nativo. - A revisão de segurança ainda é necessária.
A - Desempenho
- Faça o profiling de CU no LiteSVM antes da mainnet otimização baseada em dados apenas.
- Armazene "bumps" e prefira
zero_copypara estado fixo grande quando o profiling justificar. - Remova recursos de depuração das builds de release para mainnet para um
.somenor e CU mais baixo.
B - Padrões Avançados
- Documente protocolos
remaining_accountsque não estão na IDL. - Planeje
realloc/migrações com bytes de versão antes de aumentar contas. - Prefira
declare_program!em vez deinvokemanual quando a IDL existir. - Mantenha tipos de conta personalizados raros e testados use
Account<T>como padrão.
FAQs
Versão do Anchor?
0.32.1 em todos os tópicos avançados.
Quando usar `zero_copy`?
Layouts fixos grandes quando o CU do Borsh é muito alto.
O `realloc` é reversível?
Não facilmente; planeje o crescimento futuro.
As contas restantes estão na IDL?
Não; documente separadamente.
O `declare_program!` precisa de quê?
IDL JSON do chamador em tempo de compilação.
O Anchor pode fazer CPI para Pinocchio?
Sim, com metadados de conta corretos.
Flags de recursos e IDL?
Evite IDLs diferentes por recurso na mainnet.
Como medir CU?
LiteSVM, Surfpool, simulação em devnet.
Tipos de conta personalizados são comuns?
Não; último recurso.
Próximos passos?
Veja os links relacionados para melhores práticas avançadas.
Relacionado
- Otimização de CU e Tamanho - CU
- Contas Zero-Copy -
zero_copy - Melhores Práticas Básicas de Anchor - fundação
Versões das Pilhas: 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.