Mejores Prácticas para Transacciones
Aterrizaje de transacciones confiable y rentable.
Cómo Usar Esta Lista
- Revísala antes del lanzamiento en mainnet y después de incidentes
- Marca los elementos por cada ciclo de lanzamiento
A - Fundamentos
- Fija la cadena de herramientas Agave 4.1.1. CLI 3.0.10, Anchor 0.32.1, Rust 1.91.1 alineados en CI.
- Usa @solana/kit 7.0.0 para nuevos clientes. Evita web3.js v1 para trabajo nuevo.
- Empareja el clúster RPC, de billetera y explorador. Previene errores falsos de "cuenta no encontrada".
B - Fiabilidad
- Confirma en
confirmedofinalized. No tratesprocessedcomo final. - Actualiza el blockhash al reintentar. Las transacciones expiradas se descartan silenciosamente.
- Simula y lee los logs. Decodifica errores del programa antes de reenviar.
C - Economía y Seguridad
- Presupuesta tarifas prioritarias durante la congestión. Los mercados de tarifas locales necesitan instrucciones de Compute Budget.
- Valida firmantes y propietarios de cuentas. Las restricciones faltantes son vulnerabilidades críticas.
- Cierra cuentas no utilizadas para recuperar el alquiler. Devuelve lamports a los usuarios cuando termina su ciclo de vida.
Preguntas Frecuentes
¿Cómo se aplica esto en Agave 4.1.1?
Agave 4.1.1 aplica listas de cuentas, blockhashes y mercados de tarifas exactamente como en la lista de verificación.
¿Qué versión de Solana CLI debo usar?
Usa Solana CLI 3.0.10, que se empareja con Agave 4.1.1. Instala con agave-install init 4.1.1 (o el archivo de fijación de tu equipo), luego verifica con solana --version y agave-install --version.
¿Debo usar @solana/kit o web3.js?
Usa @solana/kit 7.0.0 para nuevos métodos RPC tipados en TypeScript, una superficie de API más pequeña y los ejemplos en esta página ya usan Kit. Mantén web3.js solo para bases de código heredadas; migra las llamadas RPC y la construcción de transacciones incrementalmente.
¿Qué nivel de compromiso se recomienda?
Simula en confirmed, luego consulta getSignatureStatuses en confirmed para mayor velocidad. Usa finalized antes de tratar los movimientos de tokens como asentados.
¿Cómo depuro fallos relacionados?
La mayoría de los fallos: blockhash expirado, metadatos de cuenta incorrectos o tarifa de prioridad faltante —simula antes de cada envío.
¿Funciona esto en devnet?
Sí — apunta la CLI y el RPC a https://api.devnet.solana.com. El comportamiento coincide con mainnet; solo los datos de cuenta y la economía difieren.
¿Cómo afectan las unidades de cómputo a esto?
Siempre establece SetComputeUnitLimit a partir de la simulación más ~10% de margen; añade SetComputeUnitPrice cuando esté congestionado.
¿Cuál es el patrón de Anchor 0.32.1?
Anchor 0.32.1 usa #[program], Context<T>, y #[derive(Accounts)] con restricciones explícitas de mut/signer — ejecuta anchor build y anchor test en 0.32.1 a través de avm use 0.32.1.
¿Cómo pruebo con Surfpool 0.12.0?
Ejecuta anchor test con Surfpool 0.12.0 para simular transacciones completas contra una bifurcación de mainnet — especialmente las rutas de tarifa de prioridad y v0/ALT.
¿Puede LiteSVM 0.6.x cubrir esto?
LiteSVM detecta problemas de metadatos de cuenta y CU; devnet valida el aterrizaje del mercado de tarifas.
¿Qué cambió en la era Agave?
El cliente validador cambió de nombre a Agave (4.1.1), CLI 3.0.10 se alinea con él, y el trabajo de Alpenglow está cambiando la finalidad — fija las versiones y lee las notas de lanzamiento en cada actualización.
¿Dónde encuentro métodos RPC relacionados?
simulateTransaction, getLatestBlockhash, getRecentPrioritizationFees, sendTransaction.
Relacionados
- Consulta las páginas hermanas en esta sección para obtener detalles específicos del tema.
Versiones de la pila: Esta página fue 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, y LiteSVM 0.6.x.