Programas Stateless
Programas contêm apenas lógica. Todo estado durável vive em contas owned pelo programa. Essa separação permite upgrades sem migrar armazenamento embutido e desbloqueia paralelismo Sealevel.
Receita
#[account]
pub struct Config { pub admin: Pubkey }
// Binário do programa nunca armazena Config inlineQuando usar:
- Construir ou depurar no Agave 4.1.1
- Integrar com programas Anchor 0.32.1
- Trabalho de client com @solana/kit 7.0.0
Exemplo prático
#[program]
pub mod app {
pub fn set_admin(ctx: Context<SetAdmin>) -> Result<()> {
ctx.accounts.config.admin = ctx.accounts.admin.key();
Ok(())
}
}O que isso demonstra:
- Padrões idiomáticos para a era Agave 4.1
- Tratamento correto de contas e signers
- Comportamento observável via logs ou RPC
Aprofundamento
Como funciona
- Programas Solana executam no runtime paralelo Sealevel
- Transações declaram todas as contas; trabalho não sobreposto roda em paralelo
- Compute é medido em CUs; contas rent-exempt persistem estado
Erros comuns
- Exemplos web3.js v1 obsoletos - use @solana/kit 7.0.0. Correção: migre código client.
- Flags de signer ausentes - txs falham em runtime. Correção: marque signers explicitamente.
- Blockhash expirado no retry - drops silenciosos. Correção: atualize e re-assine.
- RPC de cluster errado - contas não encontradas. Correção: corresponda cluster ponta a ponta.
- Espaço de conta subdimensionado - init falha. Correção: use InitSpace no Anchor 0.32.1.
Alternativas
| Alternativa | Use quando | Não use quando |
|---|---|---|
| Anchor 0.32.1 | Desenvolvimento rápido | BPF nativo mínimo |
| Rust nativo | Controle máximo | Iteração rápida necessária |
| LiteSVM 0.6.x | Testes unitários | Testes de integração de rede |
| Surfpool 0.12.0 | Testes de integração Anchor | Tarefas pontuais de CLI |
FAQs
Como isso se relaciona com Sealevel?
Veja as seções acima para detalhes.
Qual versão da CLI devo usar?
Veja as seções acima para detalhes.
Isso se aplica à mainnet-beta?
Veja as seções acima para detalhes.
Qual nível de commitment os clients devem usar?
Veja as seções acima para detalhes.
Como depurar falhas?
Veja as seções acima para detalhes.
PDAs estão envolvidas?
Veja as seções acima para detalhes.
E compute units?
Veja as seções acima para detalhes.
Posso usar devnet?
Veja as seções acima para detalhes.
Como funcionam upgrades?
Veja as seções acima para detalhes.
O que substitui web3.js?
Veja as seções acima para detalhes.
Como testar localmente?
Veja as seções acima para detalhes.
O que é Agave 4.1.1?
Veja as seções acima para detalhes.
Relacionados
Versões da stack: 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.