Noções Básicas de Implantação
7 exemplos para você começar com implantação de programas - 4 básicos e 3 intermediários. Cobre o carregador BPF, contas de programa/buffer, comandos de implantação e autoridade de atualização no Agave 4.1.1.
Pré-requisitos
- Solana CLI 3.0.10 instalado e carteira financiada na devnet.
- Artefato de programa compilado:
anchor buildproduztarget/deploy/*.so.
solana config set --url devnet
solana airdrop 2
anchor buildExemplos Básicos
1. Inspecionar uma Conta de Programa
Programas implantados são contas executáveis pertencentes ao carregador BPF.
solana program show <PROGRAM_ID>- Mostra o endereço dos dados do programa, autoridade e o último slot de implantação.
- A conta
ProgramDatacontém os bytes ELF e a chave pública da autoridade de atualização. - O sinalizador executável está definido como verdadeiro na conta do programa.
Relacionado: Implantando Programas
2. Implantar com Solana CLI
A implantação padrão carrega o .so para um buffer e, em seguida, copia para a conta do programa.
solana program deploy target/deploy/my_program.so \
--program-id target/deploy/my_program-keypair.json- Custa aluguel para a conta de dados do programa proporcional ao tamanho do
.so. - O JSON do keypair define o endereço do programa (ou gera um novo).
- O padrão usa o carregador atualizável na CLI moderna.
Relacionado: Atualizações de Programa
3. Implantar com Anchor
O Anchor encapsula a compilação + implantação no fluxo de trabalho do workspace.
anchor deploy --provider.cluster devnet- Usa a carteira
Anchor.tomlcomo pagador e autoridade de atualização por padrão. - Os IDs do programa devem corresponder a
declare_id!no código-fonte Rust. anchor keys syncatualiza os caminhos do keypair emAnchor.toml.
4. Ler a Autoridade de Atualização
Quem detém a autoridade de atualização pode substituir o bytecode do programa.
solana program show <PROGRAM_ID> | grep AuthorityNonesignifica programa imutável (autoridade revogada).- A autoridade deve migrar para um multisig antes do TVL na mainnet.
- Perder a chave privada da autoridade bloqueia o caminho de atualização para sempre.
Relacionado: Tornando Programas Imutáveis
Exemplos Intermediários
5. Fluxo de Trabalho da Conta de Buffer
Programas grandes são implantados por meio de um buffer intermediário para permitir a retomada em caso de falha.
solana program write-buffer target/deploy/my_program.so
solana program deploy --buffer <BUFFER_ADDRESS> --program-id <PROGRAM_ID>- O buffer contém uploads parciais durante a implantação.
- Útil em redes instáveis ou artefatos grandes.
- Feche o buffer para recuperar o aluguel após uma implantação bem-sucedida.
6. Verificar Hash Executável
Compare a compilação local com o programa on-chain usando solana-verify.
solana-verify get-executable-hash target/deploy/my_program.so
solana-verify get-program-hash <PROGRAM_ID> --url devnet- Os hashes devem corresponder após um pipeline de compilação reproduzível.
- Publique o hash com uma tag de lançamento para auditores.
Relacionado: Builds Verificáveis
7. Autoridade Controlada por Governança
Autoridade de atualização de produção em um multisig Squads.
solana program set-upgrade-authority <PROGRAM_ID> --new-upgrade-authority <SQUADS_MULTISIG>- As atualizações se tornam propostas de multisig, não um CLI de chave única.
- Documente o modelo de proposta e os requisitos de teste.
Relacionado: Atualizações Controladas por Governança
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.