Boas Práticas de Transações
Landing de transações confiável e eficiente em custo.
Como Usar Esta Lista
- Revise antes do lançamento mainnet e após incidentes
- Marque itens por release train
A - Fundamentos
- Fixe toolchain Agave 4.1.1. CLI 3.0.10, Anchor 0.32.1, Rust 1.91.1 alinhados no CI.
- Use @solana/kit 7.0.0 para novos clientes. Evite web3.js v1 em trabalho greenfield.
- Combine cluster RPC, carteira e explorer. Previna erros falsos de "conta não encontrada".
B - Confiabilidade
- Confirme em
confirmedoufinalized. Não trateprocessedcomo final. - Atualize blockhash na retentativa. Transações expiradas são descartadas silenciosamente.
- Simule e leia logs. Decodifique erros de programa antes de reenviar.
C - Economia e Segurança
- Orçamente taxas de prioridade sob congestionamento. Mercados de taxa locais precisam de instruções Compute Budget.
- Valide signatários e owners de conta. Constraints ausentes são vulnerabilidades críticas.
- Feche contas não usadas para recuperar rent. Devolva lamports aos usuários quando o ciclo de vida terminar.
FAQs
Como isso se aplica no Agave 4.1.1?
Agave 4.1.1 aplica listas de contas, blockhashes e mercados de taxa exatamente como no checklist.
Qual versão do Solana CLI devo usar?
Use Solana CLI 3.0.10, que combina com Agave 4.1.1. Instale com agave-install init 4.1.1 (ou arquivo pin da equipe), depois verifique com solana --version e agave-install --version.
Devo usar @solana/kit ou web3.js?
Use @solana/kit 7.0.0 para novo TypeScript - métodos RPC tipados, API menor, e exemplos nesta página já usam Kit. Mantenha web3.js apenas para bases legadas; migre chamadas RPC e construção de transação incrementalmente.
Qual nível de commitment é recomendado?
Simule em confirmed, depois faça poll em getSignatureStatuses em confirmed para velocidade. Use finalized antes de tratar movimentos de token como liquidados.
Como depurar falhas relacionadas?
Maioria das falhas: blockhash expirado, metas de conta erradas ou taxa de prioridade ausente - simule antes de todo envio.
Funciona em devnet?
Sim - aponte CLI e RPC para https://api.devnet.solana.com. Comportamento corresponde à mainnet; apenas dados de conta e economia diferem.
Como compute units afetam isso?
Sempre defina SetComputeUnitLimit a partir da simulação mais ~10% de folga; adicione SetComputeUnitPrice quando congestionado.
Qual é o padrão Anchor 0.32.1?
Anchor 0.32.1 usa #[program], Context<T> e #[derive(Accounts)] com constraints mut/signer explícitas - execute anchor build e anchor test em 0.32.1 via avm use 0.32.1.
Como testar com Surfpool 0.12.0?
Execute anchor test com Surfpool 0.12.0 para simular transações completas contra fork mainnet - especialmente caminhos de taxa de prioridade e v0/ALT.
LiteSVM 0.6.x cobre isso?
LiteSVM detecta problemas de meta de conta e CU; devnet valida landing em mercado de taxas.
O que mudou na era Agave?
O cliente validator foi rebrandizado para Agave (4.1.1), CLI 3.0.10 alinha com ele, e trabalho Alpenglow está mudando finalidade - fixe versões e leia release notes a cada upgrade.
Onde encontro métodos RPC relacionados?
simulateTransaction, getLatestBlockhash, getRecentPrioritizationFees, sendTransaction.
Relacionado
- Veja páginas irmãs nesta seção para profundidade por tópico.
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.