Optimization Best Practices
Um resumo condensado das 25 práticas mais importantes de otimização de transação 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 de otimização de transação extraídas de cada página desta seção.
Simule todo template na mainnet: Leia unitsConsumed e erros antes do envio (Estimating Compute Units).
Defina limite de compute unit com margem: 110% do mínimo de CU simulado.
Instruções de compute budget primeiro: set_compute_unit_limit e set_compute_unit_price precedem ixs de programa (Transaction Assembly).
Priority fees dinâmicas na mainnet: Alvo p75-p90 com teto rígido (Setting Priority Fees).
Atualize fees por lote de envio: Amostras obsoletas subprecificam durante picos.
Rastreie status de assinatura: Sucesso de sendTransaction não é aterrissagem (Why Transactions Fail to Land).
Use confirmação WebSocket: signatureNotifications supera loops de polling apertado.
Retry com blockhash novo: Reassine após expiração; não faça rebroadcast infinito de txs obsoletas (Retries & Blockhash Management).
Respeite lastValidBlockHeight: Pare rebroadcast de assinaturas mortas.
Use v0 + ALTs para metas grandes: Falhas de tamanho legacy são descartes silenciosos (Address Lookup Tables in Practice).
Espere slot de ativação da ALT: Após extend antes de compilar mensagem v0.
Creates de ATA idempotentes na mesma tx: Reduz falha parcial multi-transação.
RPC de provedor para envios: RPC público descarta pacotes sob carga.
skipPreflight false por padrão: Capture erros antes de queimar confiança do usuário.
Limite máximo de priority fee: Proteja usuários de picos de fee.
Mostre estimativa de fee all-in: Base + priority + (opcional) Jito tip na UI.
Jito bundles para mints competitivos: Atomicidade + tip quando caminho nativo falha SLO (Jito Bundles).
Simule bundles antes do envio: Reduza taxa de submissão de bundle falho.
Não retente falhas que aterrissaram: Corrija programa/conta primeiro.
Efeitos on-chain idempotentes: Retries mais seguros quando blockhash muda.
Perfila CU em LiteSVM/validador local: Capture regressões antes da mainnet.
Surfpool simula caminhos DeFi: Precisão de fork mainnet para rotas complexas.
Monitore SLO de taxa de aterrissagem: Alerte quando p95 de confirmação degradar.
Documente playbook de aterrissagem: Runbook de incidente para congestionamento em dia de mint.
Devnet não prova aterrissagem na mainnet: Valide política com probes pequenos na mainnet.
Simular CU + priority fee dinâmica + assinatura confirmed + retry de blockhash com teto.
Nunca obrigatórios - adote quando caminho nativo perde SLO durante eventos de pico.
getRecentPrioritizationFees e simulateTransaction são preocupações RPC - veja RPC Best Practices.
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.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026