El Flujo de Trabajo de Anchor
Utiliza este flujo de trabajo de decisión desde la idea hasta la instrucción desplegada: compilación local, prueba, simulación, y luego promoción a devnet y mainnet.
Cómo Usar Este Flujo de Trabajo
- Sigue los pasos en orden para nuevas instrucciones; salta adelante solo para cambios de documentación.
- Nunca despliegues a mainnet sin pasar las suites de prueba locales y de devnet.
- Regenera la IDL después de cada cambio en la API pública.
- Registra el ID del programa y el hash de la IDL en tus notas de lanzamiento.
Paso 1: ¿Estás cambiando la lógica en la cadena?
Sí → edita programs/*/src/lib.rs, actualiza las estructuras de cuenta y añade pruebas.
No → cambio solo en el cliente: actualiza el cliente TS contra la IDL existente; omite la redeploy.
Paso 2: ¿El cambio necesita un nuevo diseño de cuenta?
Si sí, planifica la migración o realloc. Añade space en init y versiona tu struct de cuenta. Ver realloc en Anchor.
Paso 3: Ejecuta anchor build
Corrige los errores de compilación y los problemas de expansión de macros. Confirma que target/idl/*.json se ha actualizado.
Paso 4: Ejecuta anchor test localmente
Surfpool o un validador local ejercitan el despliegue + pruebas TS. Añade casos para nuevos errores y semillas de borde.
Paso 5: ¿Pasan las pruebas?
No → corrige el programa o los fixtures de prueba; usa solana logs o rastreos de Surfpool.
Sí → procede a devnet.
Paso 6: Despliega en devnet
anchor deploy --provider.cluster devnet. Ejecuta pruebas de integración contra el RPC de devnet o LiteSVM con cuentas obtenidas.
Paso 7: Actualiza clientes y consumidores de IDL
Publica la IDL, ejecuta la actualización de Codama/declare_program!, incrementa el paquete npm si es aplicable.
Paso 8: ¿Se necesita una revisión de seguridad?
Nuevos firmantes, CPIs o init_if_needed → solicita una revisión. Ver Seguridad de CPI.
Paso 9: ¿Listo para mainnet?
Compilación verificable, diff auditado, autoridad de actualización financiada y plan de reversión. Despliega con el mismo flujo anchor deploy en el proveedor de mainnet.
Preguntas Frecuentes
¿Qué versión de Anchor utiliza este sitio?
0.32.1 para anchor-lang, Anchor CLI y ejemplos en esta sección.
¿Necesito Solana CLI además de Anchor?
Sí. Solana CLI 3.0.10 maneja keypairs, airdrops e inspección de solana program.
¿Dónde vive la IDL después de la compilación?
target/idl/<program>.json en tu espacio de trabajo.
¿Puedo mezclar UncheckedAccount con Signer?
Sí, pero cada campo no verificado necesita restricciones explícitas o comprobaciones del manejador.
¿Cómo puedo probar sin devnet?
Usa anchor test con Surfpool 0.12.0 o LiteSVM 0.6.x en CI.
¿Qué es el prefijo de 8 bytes en los datos de la cuenta?
Discriminador de cuenta de Anchor; no lo elimines al dimensionar space.
¿Debo confirmar la IDL generada?
Sí, o publica la IDL en la cadena para que los clientes tengan una fuente canónica.
¿Cómo depuro fallos de restricciones?
Ejecuta con logs; Anchor imprime el nombre de la restricción y el índice de la cuenta.
¿Funciona Anchor en Agave 4.1.1?
Sí. Esta pila se dirige a validadores Agave con Solana CLI 3.0.10.
¿Qué debo leer a continuación en esta sección?
Ver artículos hermanos enlazados en Relacionados para temas más profundos del flujo de trabajo.
Relacionado
- Compilación y Despliegue - comandos
- Mejores Prácticas de Anchor Basics - hábitos
- Pruebas de Anchor TS - patrones de prueba
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.