O SVM e sBPF
Programas Solana compilam para bytecode sBPF (Solana BPF) executado pelo SVM em validators Agave. Rust 1.91.1 usa o triple sbf-solana-solana via cargo build-sbf.
Receita
anchor build
# Saída: target/deploy/<name>.so (shared object sBPF)Quando 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
file target/deploy/*.so
# ELF shared object para Solana BPF loaderO 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
- Noções Básicas de Programas - primeiro programa
- O Entrypoint do Programa - dispatch de entry
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.