Implantando Programas
Implantar um programa Solana carrega o bytecode BPF para uma conta de dados do programa através do upgradeable loader. Use Solana CLI 3.0.10 ou anchor deploy após anchor build em clusters Agave 4.1.1.
Busque em todas as páginas da documentação
Implantar um programa Solana carrega o bytecode BPF para uma conta de dados do programa através do upgradeable loader. Use Solana CLI 3.0.10 ou anchor deploy após anchor build em clusters Agave 4.1.1.
Cartão de receita de referência rápida - pronto para copiar e colar.
anchor build
solana program deploy target/deploy/my_program.so \
--program-id target/deploy/my_program-keypair.json \
--url devnetQuando usar isso:
#!/usr/bin/env bash
set -euo pipefail
CLUSTER=devnet
PROGRAM_SO=target/deploy/my_program.so
PROGRAM_KEYPAIR=target/deploy/my_program-keypair.json
solana config set --url "$CLUSTER"
solana balance
# Construir artefato reproduzível
anchor build
# Estimar custo
solana program deploy "$PROGRAM_SO" --program-id "$PROGRAM_KEYPAIR" --dry-run
# Implantar
DEPLOY_OUT=$(solana program deploy "$PROGRAM_SO" --program-id "$PROGRAM_KEYPAIR")
echo "$DEPLOY_OUT"
PROGRAM_ID=$(solana-keygen pubkey "$PROGRAM_KEYPAIR")
solana program show "$PROGRAM_ID"O que isso demonstra:
--dry-run visualiza a taxa de aluguel (rent) e CU (compute units) sem efetivar.declare_id!.program show confirma a autoridade e o comprimento dos dados após a implantação.| Fator | Impacto |
|---|---|
Tamanho do arquivo .so | Aluguel proporcional aos bytes |
| Cluster | devnet com SOL mais barato; mainnet com custo real |
| Falha na implantação | Aluguel do buffer até o fechamento |
| Taxas de prioridade | Velocidade de pouso durante congestionamento |
# Fechar buffer com falha para recuperar o aluguel
solana program close <BUFFER_ADDRESS>declare_id! != chave pública do keypair. Correção: anchor keys sync após a geração da chave.solana program deploy --dry-run primeiro.solana config get antes da implantação.solana-verify build.| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
anchor deploy | Espaço de trabalho Anchor | Apenas programa nativo bruto |
| Retomar Buffer | SO grande / rede instável | Programas pequenos |
| Proposta de implantação Squads | Governança de produção | Iteração solo em devnet |
Principalmente o aluguel para os dados do programa (~tamanho do .so); use --dry-run para estimar em seu cluster.
Não - o ID é a chave pública do keypair; mudar o ID é uma nova implantação e migração de estado.
anchor build envolve cargo build-sbf e gera o IDL - prefira para projetos Anchor 0.32.1.
Conta temporária de espera para blocos ELF durante a implantação em várias etapas.
O buffer parcial permanece - feche o buffer ou retome a implantação a partir do endereço do buffer.
Sim - implante separadamente por cluster com keypairs de programa específicos do cluster, se necessário.
Construa em CI, implante com chave segura do gerenciador de segredos, verifique o hash pós-implantação.
Possível revogando a autoridade imediatamente - raro; geralmente mantenha a autoridade durante o período de auditoria.
Conta separada do ID do programa - program show lista o endereço ProgramData que contém o ELF.
Construa com ferramentas de plataforma correspondentes para que o ELF implantado corresponda às expectativas do loader BPF do validador.
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