Buenas Prácticas para Frameworks Ligeros
Pinocchio y Steel eliminan las protecciones de Anchor; estas prácticas reintroducen intencionalmente la seguridad y la observabilidad.
Cómo Usar Esta Lista
- Trátala como seguridad de programas nativos más disciplina de perfilado.
- Nunca fusiones victorias de CU que eliminen la validación de cuentas.
- Publica el IDL a través de Codama en cada lanzamiento.
A - Seguridad (no negociable)
- Mantén la lista de verificación completa de validación manual de cuentas; los frameworks no la reemplazan. Previene regresiones frente a los valores predeterminados de Anchor.
- Mantén SEEDS.md y las tablas de códigos de error junto con el código. Alineación del cliente y de auditoría.
- Ejecuta pruebas de reentrada y de cuentas duplicadas en rutas CPI. Mismos riesgos que los nativos.
- No elimines verificaciones solo por CU; perfila primero, optimiza después. Seguridad > microsegundos.
- Compilaciones verificables en cada despliegue en mainnet. Confianza del usuario.
B - Rendimiento
- Captura instantánea de CU p99 en LiteSVM CI para instrucciones "hot". Detecta regresiones.
- Minimiza el registro en flags de características de lanzamiento. Disciplina de CU.
- Audita el tamaño del árbol de dependencias después de cada nuevo crate. Explosiones binarias y de CU.
- Prefiere diseños de copia cero cuando el perfilado demuestre el costo de deserialización. Solo victorias medidas.
- Limita explícitamente los bucles y la profundidad de CPI. Límites de Agave.
C - Ecosistema
- Genera clientes con Codama para @solana/kit 7.0.0. Reemplaza el flujo de trabajo de IDL de Anchor.
- Documenta las versiones fijadas del framework en README. Compilaciones reproducibles.
- Realiza CPI a programas de Anchor con especificación de cuenta explícita. Seguridad de interoperabilidad.
- Planifica la migración con diseños compatibles con bytes. Continuidad del usuario.
- Re-evalúa el rendimiento después de las actualizaciones de Agave. Cambios en CU.
Preguntas Frecuentes
¿Omitir Anchor por completo?
Muchos equipos todavía empiezan con Anchor.
¿Pinocchio para principiantes?
Después de los fundamentos de nativos/Anchor.
¿Steel por defecto?
Si se busca un equilibrio entre ergonomía y CU.
¿IDL sin Anchor?
Codama.
¿Auditar más difícil?
A menudo sí; presupuesta tiempo.
¿Pinocchio inmutable?
Misma historia de actualización.
¿Surfpool?
Por defecto local.
¿Fuzzing?
Analizadores de instrucciones.
¿Código abierto?
Recomendado.
¿Umbral de CI de CU?
Falla la compilación si p99 excede el presupuesto.
¿Logs en producción?
Mínimos.
¿Comunidad?
Comparte benchmarks honestamente.
Relacionado
- Fundamentos de Pinocchio - Inicio
- Victorias de CU y Tamaño Binario - Medir
- Buenas Prácticas de Rust para Programas de Solana - Hábitos de Rust
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.