Cálculo de espacio
El cálculo correcto del espacio evita fallos en la inicialización y sorpresas con el alquiler. Suma discriminadores, campos Borsh o size_of::<Pod>(), luego consulta Rent para obtener los lamports.
Busca en todas las páginas de la documentación
El cálculo correcto del espacio evita fallos en la inicialización y sorpresas con el alquiler. Suma discriminadores, campos Borsh o size_of::<Pod>(), luego consulta Rent para obtener los lamports.
pub const SPACE: usize = 8 + User::LEN;
let lamports = Rent::get()?.minimum_balance(SPACE);Cuándo usar esto:
space = de Anchor.#[derive(BorshSerialize, BorshDeserialize)]
pub struct User { pub authority: Pubkey, pub points: u64 }
impl User { pub const LEN: usize = 32 + 8; }
pub const USER_SPACE: usize = 8 + User::LEN; // disc + bodyLo que esto demuestra:
ESPACIO = disc + suma(tamaños de campo) + límites de longitud variable.
4 + max_entradas * tamaño_entrada.
// Prueba de host: assert_eq!(serialized.len(), USER_SPACE - 8);size_of no una suposición manual. Solución: Afirmación en tiempo de compilación.| Alternativa | Usar cuándo | No usar cuándo |
|---|---|---|
| Anchor InitSpace | Automático | Nativo manual |
| Medición de serialización de host | Verdad fundamental | Solo en tiempo de ejecución |
| Calculadora de alquiler de Excel | Planificación | No sustituto de código |
Rent::minimum_balance.
realloc paga la diferencia.
165 bytes clásico SPL.
Solo la longitud de los datos en cadena.
10 MB.
Solo el poseedor de lamports.
El macro se expande en tiempo de compilación.
32 * n.
Evitar - usar bytes fijos.
Prueba unitaria de host.
solana rent.
Verificar la creación con SPACE.
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: 19 jul 2026