Conceptos básicos de Pinocchio
10 ejemplos para empezar con Pinocchio: 7 básicos y 3 intermedios.
Busca en todas las páginas de la documentación
10 ejemplos para empezar con Pinocchio: 7 básicos y 3 intermedios.
Pinocchio reemplaza la entrada de solana-program para una sobrecarga mínima.
[dependencies]
pinocchio = "0.8"#![no_std] en la cadena.Pinocchio proporciona la conexión del punto de entrada.
use pinocchio::{account_info::AccountInfo, entrypoint, pubkey::Pubkey, ProgramResult};
entrypoint!(process_instruction);solana-program.Leer las banderas de firmante y escritura.
if !account.is_signer() { return Err(ProgramError::MissingRequiredSignature); }Patrones opcionales de asignador.
#![no_std]
extern crate alloc;alloc que las nativas.Los tipos Pubkey de Pinocchio se alinean con los bytes del SDK.
let key = account.key();El patrón ProgramResult no cambia.
return Err(ProgramError::InvalidArgument);u32.Invoca ayudantes con semántica similar.
pinocchio::program::invoke(&ix, &accounts)?;invoke_signed para PDAs.Despacho manual o con Borsh.
let (tag, rest) = data.split_at(1);
match tag[0] { 0 => init(rest), 1 => swap(rest), _ => Err(...) }Relacionado: Creación de un programa con Pinocchio
Evita fmt y logs en rutas críticas.
// no msg in loopRelacionado: Ventajas de UC y tamaño binario
LiteSVM 0.6.x ejecuta binarios de pinocchio.
// deploy .so in test fixtureRelacionado: LiteSVM
Versiones de la pila: Esta página se escribió 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