Ancla vs. Nativo
Los programas nativos de Solana usan entrypoint! y análisis manual de cuentas. Ancla genera el despacho, discriminadores, validación de cuentas e IDL a partir de macros, a costa del tamaño binario y algo de sobrecarga de CU.
Busca en todas las páginas de la documentación
Los programas nativos de Solana usan entrypoint! y análisis manual de cuentas. Ancla genera el despacho, discriminadores, validación de cuentas e IDL a partir de macros, a costa del tamaño binario y algo de sobrecarga de CU.
| Preocupación | Nativo | Ancla 0.32.1 |
|---|---|---|
| Punto de entrada | Escrito a mano | Generado por #[program] |
| Comprobaciones de cuenta | Manual en el manejador | Restricciones #[derive(Accounts)] |
| Tipos de cliente | Mantenidos a mano | IDL / declare_program! |
| Errores | Códigos u32 personalizados | #[error_code] + mapeo de IDL |
Cuándo elegir esto: Eliges un framework para un nuevo programa o debates migrar código nativo existente.
// Ancla: la validación es declarativa
#[derive(Accounts)]
pub struct Increment<'info> {
#[account(mut, has_one = authority)]
pub counter: Account<'info, Counter>,
pub authority: Signer<'info>,
}
// Equivalente nativo: comprobaciones manuales en cada manejador
// - verificar firmante
// - verificar propietario == program_id
// - verificar counter.authority == authority.key()
// - deserializar con discriminadorLo que esto demuestra:
declare_program! en 0.32anchor-spl y declare_program!.constraint y require!. Solución: Modelar amenazas explícitamente.solana program log y medidores de CU.| Alternativa | Usar cuándo | No usar cuándo |
|---|---|---|
| Pinocchio + diseño manual | Código sensible a CU | Quieres macros de cuenta de Ancla |
| Framework Steel | Patrones nativos estructurados | Necesitas herramientas de IDL del ecosistema Ancla |
| Permanecer nativo | Programa pequeño, sin generación de código de cliente | Necesidades ricas de validación de cuentas |
0.32.1 para anchor-lang, Ancla CLI y ejemplos en esta sección.
Sí. Solana CLI 3.0.10 maneja pares de claves, airdrops e inspección de solana program.
target/idl/<program>.json en tu espacio de trabajo.
Sí, pero cada campo no verificado necesita restricciones explícitas o comprobaciones en el manejador.
Usa anchor test con Surfpool 0.12.0 o LiteSVM 0.6.x en CI.
Discriminador de cuenta de Ancla; no lo elimines al dimensionar space.
Sí, o publica la IDL en la cadena para que los clientes tengan una fuente canónica.
Ejecuta con registros; Ancla imprime el nombre de la restricción y el índice de la cuenta.
Sí. Esta pila se dirige a validadores Agave con Solana CLI 3.0.10.
Consulta los artículos hermanos vinculados en Relacionados para temas más profundos de ancla vs. nativo.
Versiones de la pila: Esta página fue escrita para Agave 4.1.1, Solana CLI 3.0.10, Ancla 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.
Revisado por Chris St. John·Última actualización: 19 jul 2026