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.
-
Simule todo template na mainnet: Leia
unitsConsumede 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_limiteset_compute_unit_priceprecedem 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
sendTransactionnão é aterrissagem (Why Transactions Fail to Land). -
Use confirmação WebSocket:
signatureNotificationssupera 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.
FAQs
Stack mínima viável de aterrissagem?
Simular CU + priority fee dinâmica + assinatura confirmed + retry de blockhash com teto.
Quando Jito bundles são obrigatórios?
Nunca obrigatórios - adote quando caminho nativo perde SLO durante eventos de pico.
Como otimização e práticas RPC se conectam?
getRecentPrioritizationFees e simulateTransaction são preocupações RPC - veja RPC Best Practices.
Relacionados
- Why Transactions Fail to Land - modos de falha
- Setting Priority Fees - ajuste de fee
- Transactions Not Landing - resposta a incidentes
- Priority Fees - fundamentos
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.