Prácticas recomendadas de optimización
Un resumen condensado de las 25 prácticas de optimización de transacciones más importantes extraídas de cada página de esta sección.
Busca en todas las páginas de la documentación
Un resumen condensado de las 25 prácticas de optimización de transacciones más importantes extraídas de cada página de esta sección.
Simular cada plantilla de mainnet: Leer unitsConsumed y errores antes de enviar (Estimación de Unidades de Cómputo).
Establecer el límite de unidades de cómputo con margen: 110% del mínimo de CU simulado.
Instrucciones del presupuesto de cómputo primero: set_compute_unit_limit e set_compute_unit_price preceden a las ixs del programa (Ensamblaje de Transacciones).
Tasas de prioridad dinámicas en mainnet: Apuntar a p75-p90 con un límite máximo (Establecimiento de Tasas de Prioridad).
Actualizar tasas por lote de envío: Las muestras obsoletas infravaloran durante los picos.
Seguimiento del estado de la firma: El éxito de sendTransaction no garantiza el aterrizaje (Por qué las Transacciones No Aterrizan).
Usar confirmación WebSocket: signatureNotifications supera a los bucles de sondeo ajustados.
Reintentar con un blockhash nuevo: Volver a firmar después de la expiración; no retransmitir infinitamente txs obsoletas (Reintentos y Gestión de Blockhash).
Respetar lastValidBlockHeight: Dejar de retransmitir firmas muertas.
Usar v0 + ALTs para metadatos grandes: Los fallos de tamaño heredados son descartes silenciosos (Tablas de Búsqueda de Direcciones en la Práctica).
Esperar la ranura de activación de ALT: Después de extender antes de compilar el mensaje v0.
Creaciones de ATA idempotentes en la misma tx: Reduce fallos parciales de transacciones múltiples.
Proveedor RPC para envíos: El RPC público descarta paquetes bajo carga.
skipPreflight false por defecto: Capturar errores antes de quemar la confianza del usuario.
Limitar la tasa de prioridad máxima: Proteger a los usuarios de los picos de tarifas.
Mostrar estimación de tarifa total: Base + prioridad + propina Jito (opcional) en la UI.
Paquetes Jito para acuñaciones competitivas: Atomicidad + propina cuando la ruta nativa falla SLO (Paquetes Jito).
Simular paquetes antes de enviar: Reducir la tasa de envío de paquetes fallidos.
No reintentar fallos de aterrizaje: Solucionar primero el problema del programa/cuenta.
Efectos idempotentes en la cadena: Los reintentos son más seguros cuando cambia el blockhash.
Perfilar CU en LiteSVM/validador local: Capturar regresiones antes de mainnet.
Surfpool simula rutas DeFi: Precisión de la bifurcación de mainnet para rutas complejas.
Monitorizar SLO de tasa de aterrizaje: Alertar cuando el p95 de confirmación se degrada.
Documentar el playbook de aterrizaje: Manual de ejecución de incidentes para la congestión del día de acuñación.
Devnet no demuestra el aterrizaje en mainnet: Validar la política con sondas de polvo en mainnet.
Simular CU + tasa de prioridad dinámica + suscripción confirmada + reintento de blockhash con límite.
Nunca son obligatorios: adoptarlos cuando la ruta nativa no cumple el SLO durante eventos pico.
getRecentPrioritizationFees y simulateTransaction son cuestiones de RPC; consulte Prácticas recomendadas de RPC.
Versiones de la pila: Esta página se escribió 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, y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026