Boas Práticas de Frameworks Leves
Pinocchio e Steel removem guardrails do Anchor - estas práticas colocam segurança e observabilidade de volta intencionalmente.
Como Usar Esta Lista
- Trate como segurança de programa native mais disciplina de profiling.
- Nunca faça merge de ganhos de CU que removam validação de conta.
- Publique IDL via Codama em todo release.
A - Segurança (não negociável)
- Mantenha o checklist completo de validação manual de contas - frameworks não o substituem. Previne regressões vs padrões Anchor.
- Mantenha SEEDS.md e tabelas de código de erro junto ao código. Alinhamento de cliente e auditoria.
- Execute testes de reentrância e conta duplicada em caminhos CPI. Mesmos riscos que native.
- Não remova checks só por CU - profile primeiro, otimize depois. Segurança > microssegundos.
- Builds verificáveis em todo deploy mainnet. Confiança do usuário.
B - Performance
- Snapshot CU p99 no CI LiteSVM para hot instructions. Detecte regressões.
- Minimize logging em feature flags de release. Disciplina de CU.
- Audite tamanho da árvore de deps após cada crate novo. Explosões de binário e CU.
- Prefira layouts zero-copy quando profiling comprovar custo de deserialize. Ganhos medidos apenas.
- Limite loops e profundidade CPI explicitamente. Limites Agave.
C - Ecossistema
- Gere clientes com Codama para @solana/kit 7.0.0. Substitua workflow IDL Anchor.
- Documente pins de versão de framework no README. Builds reproduzíveis.
- CPI para programas Anchor com spec explícita de conta. Segurança de interop.
- Planeje migração com layouts byte-compatible. Continuidade do usuário.
- Re-benchmark após upgrades Agave. CU muda.
FAQs
Pular Anchor inteiramente?
Muitas equipes ainda começam com Anchor.
Pinocchio para iniciantes?
Após fundamentos native/Anchor.
Steel como padrão?
Se entre ergonomia e CU.
IDL sem Anchor?
Codama.
Auditoria mais difícil?
Muitas vezes sim - orçamente tempo.
Pinocchio imutável?
Mesma história de upgrade.
Surfpool?
Local padrão.
Fuzz?
Parsers de instrução.
Open source?
Recomendado.
Limite CU no CI?
Falhe build se p99 exceder orçamento.
Logs em prod?
Mínimos.
Comunidade?
Compartilhe benchmarks honestamente.
Relacionado
- Noções Básicas de Pinocchio - Comece
- Ganhos de CU e Tamanho de Binário - Meça
- Boas Práticas Rust para Solana - Hábitos Rust
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.