Mejores Prácticas del Runtime de Sealevel
Escribiendo programas eficientes en CU y amigables para la paralelización en Agave 4.1.1.
Cómo Usar Esta Lista
- Aplica antes del despliegue en mainnet y después de las pruebas de carga.
A - Paralelismo
- Fragmenta el estado por PDA de usuario. Evita cuentas globales escribibles.
- Minimiza las cuentas escribibles por instrucción. Cada escritor es un punto de serialización.
- Prefiere cuentas de solo lectura cuando sea posible. Los bloqueos compartidos paralelizan.
B - Cómputo
- Mide las CUs con
solana confirm -v. Perfila cada ruta de instrucción. - Elimina el registro
msg!de las rutas críticas. Los registros cuestan CUs en mainnet. - Solicita CUs adecuadas a través del Presupuesto de Cómputo. No confíes en los valores predeterminados bajo carga.
C - Despliegue
- Fija la cadena de herramientas: Anchor 0.32.1, Rust 1.91.1. Coincide con las compilaciones de CI y locales.
- Planifica la custodia de la autoridad de actualización. Multisig o gobernanza antes de mainnet.
- Prueba con Surfpool 0.12.0 y LiteSVM 0.6.x. Detecta regresiones temprano.
Preguntas Frecuentes
¿Cuál es el mayor consumidor de CUs?
Consulta las secciones anteriores para más detalles.
¿Cómo pruebo el paralelismo?
Consulta las secciones anteriores para más detalles.
¿Deben ser inmutables los programas?
Consulta las secciones anteriores para más detalles.
¿Qué cargador utiliza Agave 4.1.1?
Consulta las secciones anteriores para más detalles.
¿Cómo perfilo las CUs?
Consulta las secciones anteriores para más detalles.
¿Puedo reducir el tamaño del programa?
Consulta las secciones anteriores para más detalles.
¿Qué pasa con nativo vs Anchor?
Consulta las secciones anteriores para más detalles.
¿Cuántas cuentas por ix?
Consulta las secciones anteriores para más detalles.
¿El logging cuesta CUs?
Consulta las secciones anteriores para más detalles.
¿Cómo afectan las actualizaciones al estado?
Consulta las secciones anteriores para más detalles.
¿Qué es sBPF?
Consulta las secciones anteriores para más detalles.
¿Cómo establezco el límite de CUs?
Consulta las secciones anteriores para más detalles.
Relacionado
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.