Mejores Prácticas de Arquitectura
Implicaciones de diseño de cada componente para los desarrolladores.
Cómo Usar Esta Lista
- Revisa antes del lanzamiento a mainnet y después de incidentes
- Marca los elementos por ciclo de lanzamiento
A - Fundamentos
- Fija la toolchain de 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 cluster RPC, wallet y explorer. 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 logs. Decodifica errores del programa antes de reenviar.
C - Economía y Seguridad
- Presupuesta tarifas prioritarias bajo 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 el ciclo de vida.
Preguntas Frecuentes
¿Cómo se aplica esto en Agave 4.1.1?
Agave 4.1.1 sustenta cada elemento: fija CLI 3.0.10, Anchor 0.32.1 y la versión del validador juntos en CI.
¿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?
Usa confirmed para dashboards y finalized antes de retiros o callbacks entre sistemas.
¿Cómo depuro fallos relacionados?
Sigue el elemento B de la lista de verificación: simula transacciones, lee logMessages y decodifica errores del programa antes de reintentar.
¿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 la cuenta y la economía difieren.
¿Cómo afectan las unidades de cómputo a esto?
La lista C cubre las tarifas prioritarias y las CU: siempre establece instrucciones de Compute Budget bajo congestión.
¿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?
Inicia Surfpool 0.12.0, apunta el RPC a su puerto y ejecuta anchor test o scripts de integración de cliente contra cuentas bifurcadas.
¿Puede LiteSVM 0.6.x cubrir esto?
Usa LiteSVM para comprobaciones rápidas de programas; usa Surfpool cuando necesites realismo de mainnet-fork.
¿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, getTransaction, getSignatureStatuses, y getAccountInfo cubren la mayoría de las validaciones de la lista de verificación.
Relacionado
- Consulta las páginas hermanas de 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.