Construindo e Implantando
O build compila seu programa para SBF e regenera o IDL. O deploy carrega o .so para um cluster e atualiza o mapeamento do ID do programa em Anchor.toml.
Receita
anchor build
anchor deploy --provider.cluster devnet
anchor keys syncQuando usar isso: Você envia uma nova versão ou integra um novo ID de programa.
Exemplo de Trabalho
# Verificar a toolchain
anchor --version # 0.32.1
solana --version # solana-cli 3.0.10
# Construir SBF + IDL
anchor build
# Implantar no devnet (carteira financiada)
anchor deploy --provider.cluster devnet
# Sincronizar declare_id! e Anchor.toml a partir do keypair implantado
anchor keys sync
# Confirmar programa on-chain
solana program show <PROGRAM_ID> --url devnet# programs/my_program/Cargo.toml
[dependencies]
anchor-lang = "0.32.1"
anchor-spl = "0.32.1"O que isso demonstra:
target/deploy/*.soé o binário do programa atualizável- O IDL em
target/idl/<name>.jsondireciona a geração de código do cliente anchor keys syncalinhadeclare_id!com o keypair- A seleção do cluster vem de
Anchor.tomlou flags da CLI
Mergulho Profundo
Pipeline de Build
cargo build-sbfcompila Rust para Solana BPF.- O Anchor extrai layouts de conta e instruções para o IDL JSON.
- Tipos TypeScript podem ser gerados a partir do IDL para testes.
Checklist de Implantação
| Etapa | Comando |
|---|---|
| Financiar o implantador | solana airdrop 2 (devnet) |
| Construir | anchor build |
| Implantar | anchor deploy |
| Sincronizar IDs | anchor keys sync |
| Verificar | solana program show |
Armadilhas
- Implantar sem reconstruir - O .so antigo é carregado. Correção: Sempre execute
anchor buildantes de implantar. - IDL não commitado - Clientes divergem da API on-chain. Correção: Faça o commit do IDL ou publique o IDL on-chain.
- Provedor de cluster errado - O programa é implantado na rede inesperada. Correção: Defina
[provider] clusteremAnchor.toml. - SOL insuficiente para implantação - A transação falha no meio do upload. Correção: Financie o implantador; a implantação custa múltiplos SOL no mainnet.
- Pular a sincronização de chaves - Erros de incompatibilidade de
declare_id. Correção: Execute a sincronização após cada novo keypair de programa.
Alternativas
| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| solana program deploy | Fluxos de trabalho que não usam Anchor | Você perde a etapa de geração de IDL |
| Builds verificáveis em CI | Lançamentos auditados | Iteração rápida local |
| Surfpool apenas para local | Sem gastos de cluster | A implantação final ainda precisa de um cluster |
FAQs
Qual versão do Anchor este site usa?
0.32.1 para anchor-lang, Anchor CLI e exemplos nesta seção.
Preciso do Solana CLI junto com o Anchor?
Sim. O Solana CLI 3.0.10 lida com keypairs, airdrops e inspeção de solana program.
Onde o IDL fica após o build?
target/idl/<program>.json em seu workspace.
Posso misturar UncheckedAccount com Signer?
Sim, mas cada campo não verificado precisa de restrições explícitas ou verificações do manipulador.
Como testar sem devnet?
Use anchor test com Surfpool 0.12.0 ou LiteSVM 0.6.x em CI.
Qual é o prefixo de 8 bytes nos dados da conta?
O discriminador da conta Anchor; não o remova ao dimensionar o space.
Devo fazer commit do IDL gerado?
Sim, ou publique o IDL on-chain para que os clientes tenham uma fonte canônica.
Como depurar falhas de restrição?
Execute com logs; o Anchor imprime o nome da restrição e o índice da conta.
O Anchor funciona no Agave 4.1.1?
Sim. Esta stack tem como alvo validadores Agave com Solana CLI 3.0.10.
O que devo ler a seguir nesta seção?
Veja artigos irmãos vinculados em Relacionados para tópicos mais aprofundados sobre build e deploy.
Relacionado
- O IDL do Anchor - Formato do IDL
- Estrutura do Projeto - Caminhos dos artefatos
- Noções Básicas de Implantação - Operações de cluster
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.