Construyendo un Programa con Pinocchio
Un programa Pinocchio combina un punto de entrada delgado, validación estricta de cuentas, despacho por Borsh u opcode, y ayudantes de CPI, reflejando la estructura nativa con menos sobrecarga de boilerplate.
Busca en todas las páginas de la documentación
Un programa Pinocchio combina un punto de entrada delgado, validación estricta de cuentas, despacho por Borsh u opcode, y ayudantes de CPI, reflejando la estructura nativa con menos sobrecarga de boilerplate.
entrypoint!(process_instruction);
fn process_instruction(id: &Pubkey, accounts: &[AccountInfo], data: &[u8]) -> ProgramResult {
match data.first() { Some(0) => init(id, accounts), _ => Err(ProgramError::InvalidInstructionData) }
}Cuándo usar esto:
pub fn init(program_id: &Pubkey, accounts: &[AccountInfo]) -> ProgramResult {
let [payer, state, system @ ..] = accounts else { return Err(ProgramError::NotEnoughAccountKeys) };
if !payer.is_signer() { return Err(ProgramError::MissingRequiredSignature); }
// CPI create vía pinocchio invoke / system instructions
Ok(())
}Lo que esto demuestra:
Generar con Codama para clientes @solana/kit 7.0.0.
// Centralizar ayudantes de validación de cuentas.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Proyecto nuevo de Anchor | Velocidad | CU |
| Framework Steel | Más azúcar sintáctico | Ligeramente más pesado |
| Repositorios de plantillas | Arranque rápido | Mantenimiento |
Programas separados a través de CPI.
Configurar según la documentación.
Mismos ayudantes de spl.
Equivalente a invoke_signed.
cargo build-sbf.
solana-verify.
solana program deploy.
Mismo cargador que nativo.
Códigos u32 personalizados.
Syscall log mínimo.
Prueba de despliegue local.
Toolchain de Pin.
Versiones de Stack: 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.
Revisado por Chris St. John·Última actualización: 16 jul 2026