Implantando Programas
Implante programas sBPF compilados com solana program deploy, gerencie contas buffer e controle upgrade authority pela CLI.
Busque em todas as páginas da documentação
Implante programas sBPF compilados com solana program deploy, gerencie contas buffer e controle upgrade authority pela CLI.
Card de receita de referência rápida - pronto para copiar e colar.
cargo build-sbf
solana program deploy target/deploy/my_program.so
solana program show <PROGRAM_ID>
solana program set-upgrade-authority <PROGRAM_ID> --new-upgrade-authority <AUTH>Quando usar:
.so.Anchor.toml / declare_id! após keygen.cd my_anchor_program
anchor build
# Artifact: target/deploy/my_anchor_program.so
solana config set --url devnet
solana airdrop 2
# Deploy with explicit program keypair (first deploy)
solana program deploy \
target/deploy/my_anchor_program.so \
--program-id target/deploy/my_anchor_program-keypair.json
PROGRAM_ID=$(solana-keygen pubkey target/deploy/my_anchor_program-keypair.json)
solana program show "$PROGRAM_ID"O que isso demonstra:
cargo build-sbf / anchor build produz o .so consumido pelo deploy.program show confirma loader, conta programdata e authority.none (imutável)..so.| Comando | Propósito |
|---|---|
program deploy | Upload e ativação (ou upgrade) de bytecode |
program write-buffer | Upload apenas para buffer |
program deploy --buffer | Finalizar de buffer existente |
program close | Recuperar lamports do buffer (authority necessária) |
program set-upgrade-authority | Transferir ou revogar direitos de upgrade |
# Show deploy cost estimate
solana program deploy my_program.so --dry-run 2>&1 | grep -i cost
# Immutable program: revoke upgrade authority
solana program set-upgrade-authority <PROGRAM_ID> --finaldeclare_id! não corresponde ao keypair implantado. Correção: alinhe Anchor.toml e lib.rs com solana-keygen pubkey do keypair de deploy..so não otimizado desperdiça CU e rent. Correção: cargo build-sbf --release / anchor build.solana config get antes de todo deploy.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
anchor deploy | Workspace Anchor com IDs scriptados | Programas nativos raw sem Anchor |
solana program write-buffer + finalize separado | CI divide upload e ativação | Loops dev local simples |
Pipeline solana-verify | Deploys verificáveis reproduzíveis | Testes devnet descartáveis rápidos |
| Surfpool / validator local | Simulação pré-mainnet | Release de produção |
target/deploy/<crate_name>.so mais -keypair.json correspondente para o program ID.
Rent para programdata escala com tamanho do bytecode mais fees de transação. Execute deploy em devnet e leia lamports cobrados em solana confirm -v.
Sim - submeta novo .so no mesmo program ID enquanto detém upgrade authority.
Remove upgrade authority permanentemente - programa torna-se imutável.
Conta temporária guardando chunks ELF uploadados antes de ativação em programdata.
Possível com signers compatíveis, mas a maioria dos times usa hot deploy key em devnet e authority multisig na mainnet.
Frequentemente buffer parcial ou deploy concorrente. Feche buffers obsoletos ou espere txs em voo limparem.
solana program dump <ID> out.so e compare SHA256 com artefato de build, ou use solana-verify para builds reproduzíveis.
Sim - inicie solana-test-validator e implante em http://127.0.0.1:8899.
Fee payer na transação de deploy - geralmente seu keypair CLI configurado.
Versões do 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.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026