Mejores Prácticas Económicas
Diseño de aplicaciones consciente de las tarifas y alineado con los incentivos.
Cómo Usar Esta Lista
- Revísala antes del lanzamiento en mainnet y después de incidentes
- Marca los elementos por ciclo de lanzamiento
A - Fundamentos
- Fija la cadena de herramientas 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, de billetera y explorador. Previene errores falsos de "cuenta no encontrada".
B - Fiabilidad
- Confirma en
confirmedofinalized. No tratesprocessedcomo final. - Refresca 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 de prioridad bajo congestión. Los mercados de tarifas locales necesitan instrucciones de Compute Budget.
- Valida los 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?
Los límites de época de Agave 4.1.1 impulsan las recompensas y la activación de stake—alinea los scripts de operaciones con getEpochInfo.
¿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 TypeScript nuevo—métodos RPC tipados, 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?
Problemas de recompensas: verifica getStakeActivation y la delincuencia del validador antes de culpar al código de la aplicación.
¿Funciona esto en devnet?
Sí—los programas de staking y gobernanza se implementan en devnet con épocas de prueba. La economía difiere (sin valor real), pero las formas de las instrucciones coinciden con mainnet.
¿Cómo afectan las unidades de cómputo a esto?
El stake y las transacciones de gobernanza pueden encadenar muchos CPIs—simula flujos completos con límites altos de CU.
¿Cuál es el patrón de Anchor 0.32.1?
Los patrones de Anchor 0.32.1 se aplican al escribir programas en cadena: cuentas tipadas, guardas require! y generación de IDL—usa avm use 0.32.1 y anchor-lang = "0.32.1" en Cargo.toml.
¿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 clientes contra cuentas forzadas.
¿Puede LiteSVM 0.6.x cubrir esto?
Usa fixtures para cuentas de stake; valida la economía en épocas de devnet.
¿Qué cambió en la era de 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?
getStakeActivation, getInflationReward, getVoteAccounts, getTokenAccountBalance.
Relacionado
- Consulta las páginas hermanas de esta sección para obtener detalles específicos del tema.
Versiones de Stack: 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.