Noções Básicas de Consenso
8 exemplos para você começar com Consenso no Agave 4.1.1 - 5 básicos e 3 intermediários.
Pré-requisitos
solana config set --url devnet
npm install @solana/kit@7.0.0Exemplos Básicos
1. Inspecionar via RPC
import { createSolanaRpc } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");
const slot = await rpc.getSlot().send();
console.log(slot);- Confirma a conectividade RPC e a alcançabilidade do cluster
- Use devnet antes da integração com mainnet-beta
2. Verificação via CLI
solana slot
solana balance- Solana CLI 3.0.10 compartilha a configuração com o provedor Anchor
- Corresponda ao URL de
solana config getcom o RPC do cliente
3. Ler Logs On-Chain
solana confirm -v <SIGNATURE>- Logs expõem a saída
msg!do programa e a CU consumida - Decodifique erros antes de reenviar transações
4. Simular Primeiro
const sim = await rpc.simulateTransaction(encodedTx, { sigVerify: false }).send();
console.log(sim.value.err, sim.value.logs);- O preflight captura a maioria das falhas sem taxas de pouso
- Essencial durante o desenvolvimento de programas Anchor 0.32.1
5. Hook de Programa Anchor
use anchor_lang::prelude::*;
#[program]
pub mod example {
use super::*;
pub fn touch(_ctx: Context<Touch>) -> Result<()> { Ok(()) }
}
#[derive(Accounts)]
pub struct Touch {}- Programas executam em Sealevel com listas explícitas de contas
- Lógica sem estado + contas de dados separadas
Exemplos Intermediários
6. Construir Transação Versão 0
import { createTransactionMessage, pipe } from "@solana/kit";
const msg = pipe(createTransactionMessage({ version: 0 }), (m) => m);- Transações v0 suportam tabelas de lookup de endereços
- Prefira os construtores de transação @solana/kit 7.0.0
7. Definir Orçamento de Computação
# O cliente adiciona instruções do ComputeBudgetProgram para limite de CU e preço- Solicite CU suficiente sob carga
- Taxas de prioridade usam microlamports por CU
8. Testar Localmente
npx surfpool@0.12.0 run anchor test- Surfpool fornece validação local compatível com Agave
- LiteSVM 0.6.x é adequado para testes unitários leves
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.