Cálculo de Espaço
O cálculo correto do espaço evita falhas de inicialização e surpresas com aluguéis. Some discriminadores, campos Borsh ou size_of::<Pod>(), em seguida, consulte Rent para lamports.
Busque em todas as páginas da documentação
O cálculo correto do espaço evita falhas de inicialização e surpresas com aluguéis. Some discriminadores, campos Borsh ou size_of::<Pod>(), em seguida, consulte Rent para lamports.
pub const SPACE: usize = 8 + User::LEN;
let lamports = Rent::get()?.minimum_balance(SPACE);Quando usar isto:
space = do 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 + bodyO que isto demonstra:
SPACE = disc + soma(tamanhos de campo) + limites de comprimento variável.
4 + max_entries * entry_size.
// Teste no host: assert_eq!(serialized.len(), USER_SPACE - 8);| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
| Anchor InitSpace | Automático | Nativo manual |
| Medida de serialização no host | Verdade absoluta | Apenas tempo de execução |
| Calculadora de aluguel Excel | Planejamento | Não substitui código |
Rent::minimum_balance.
realloc paga a diferença.
165 bytes clássicos SPL.
Comprimento dos dados apenas on-chain.
10 MB.
Apenas o detentor de lamports.
Macro expande em tempo de compilação.
32 * n.
Evitar - usar bytes fixos.
Teste unitário no host.
solana rent.
Verificar criação com SPACE.
Versões da Pilha: Esta página foi 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, e LiteSVM 0.6.x.
Revisado por Chris St. John·Última atualização: 19 de jul. de 2026