Espaço e Aluguel
As contas Solana devem ser isentas de aluguel. O init do Anchor usa seu atributo space para alocar bytes, incluindo o discriminador de 8 bytes.
Busque em todas as páginas da documentação
As contas Solana devem ser isentas de aluguel. O init do Anchor usa seu atributo space para alocar bytes, incluindo o discriminador de 8 bytes.
#[account]
#[derive(InitSpace)]
pub struct User {
pub authority: Pubkey,
pub points: u64,
}
// space = 8 + User::INIT_SPACE
#[account(init, payer = payer, space = 8 + User::INIT_SPACE)]
pub user: Account<'info, User>,Quando usar isso: Você adiciona campos ao estado on-chain ou cria novos tipos de conta.
#[account]
#[derive(InitSpace)]
pub struct Config {
pub admin: Pubkey,
#[max_len(64)]
pub name: String,
pub fee_bps: u16,
}
#[account(init, payer = payer, space = 8 + Config::INIT_SPACE)]
pub config: Account<'info, Config>,O que isso demonstra:
InitSpace derive calcula o tamanho em tempo de compilaçãomax_len em strings/vecs limita a alocaçãoString / Vec: precisam de max_len com InitSpace.O mínimo de isenção de aluguel depende do tamanho alocado. Use Rent::get()?.minimum_balance(space) em testes para afirmar o financiamento.
INIT_SPACE.max_len; tamanho desconhecido. Correção: Use #[max_len(n)] com InitSpace.realloc.close = recipient.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| restrição de realloc | Contas em crescimento | Tamanho fixo conhecido antecipadamente |
| zero_copy | Estruturas fixas grandes | Pequenas contas de configuração |
| Cálculo manual de espaço | Não-Anchor | Derive InitSpace |
0.32.1 para anchor-lang, Anchor CLI e exemplos nesta seção.
Sim. O Solana CLI 3.0.10 lida com keypairs, airdrops e inspeção de solana program.
target/idl/<program>.json em seu workspace.
Sim, mas cada campo não verificado precisa de restrições explícitas ou verificações do manipulador.
Use anchor test com Surfpool 0.12.0 ou LiteSVM 0.6.x em CI.
Discriminador de conta Anchor; não o remova ao dimensionar space.
Sim, ou publique o IDL on-chain para que os clientes tenham uma fonte canônica.
Execute com logs; o Anchor imprime o nome da restrição e o índice da conta.
Sim. Esta pilha visa validadores Agave com Solana CLI 3.0.10.
Veja artigos irmãos vinculados em Relacionados para tópicos mais aprofundados sobre espaço e aluguel.
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: 16 de jul. de 2026