TowerBFT + PoH
El consenso BFT basado en votos en la era Agave. Esta guía está dirigida a validadores de Agave 4.1.1, clientes de Solana CLI 3.0.10, Anchor 0.32.1 y @solana/kit 7.0.0.
Busca en todas las páginas de la documentación
El consenso BFT basado en votos en la era Agave. Esta guía está dirigida a validadores de Agave 4.1.1, clientes de Solana CLI 3.0.10, Anchor 0.32.1 y @solana/kit 7.0.0.
Tarjeta de referencia rápida.
solana config set --url devnet
solana balanceimport { createSolanaRpc } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");Cuándo usar esto:
import { createSolanaRpc, address } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");
const slot = await rpc.getSlot().send();
const sig = "PASTE_SIGNATURE_AFTER_YOUR_TX";
const tx = await rpc
.getTransaction(sig, { encoding: "json", maxSupportedTransactionVersion: 0 })
.send();
console.log({ slot, err: tx?.meta?.err, cu: tx?.meta?.computeUnitsConsumed });use anchor_lang::prelude::*;
#[program]
pub mod demo {
use super::*;
pub fn log_slot(_ctx: Context<LogSlot>) -> Result<()> {
let clock = Clock::get()?;
msg!("slot: {}", clock.slot);
Ok(())
}
}
#[derive(Accounts)]
pub struct LogSlot {}Lo que esto demuestra:
// Usar matemáticas verificadas y restricciones explícitas en los programas
require!(amount > 0, MyError::InvalidAmount);mut.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| @solana/kit 7.0.0 | Nuevos clientes TypeScript | Mantener código heredado temporalmente |
| Solana CLI 3.0.10 | Operaciones y sondeos rápidos | Firma de transacciones en producción a escala |
| Surfpool 0.12.0 | Pruebas de integración de Anchor | Despliegue en producción |
| LiteSVM 0.6.x | Pruebas unitarias rápidas | Validación del comportamiento completo de la red |
Los validadores de Agave 4.1.1 votan en sincronía con los ticks de PoH; las confirmaciones se profundizan a medida que se acumulan los votos en una bifurcación.
Usa Solana CLI 3.0.10, que se empareja con Agave 4.1.1. Instala con agave-install init 4.1.1 (o el archivo de fijación de tu equipo), luego verifica con solana --version y agave-install --version.
Usa @solana/kit 7.0.0 para nuevos TypeScript - métodos RPC tipados, superficie de API más pequeña y los ejemplos en esta página ya usan Kit. Mantén web3.js solo para bases de código heredadas; migra las llamadas RPC y la construcción de transacciones incrementalmente.
Usa confirmed para una experiencia de usuario que tolere bifurcaciones raras; usa finalized antes de pagos irreversibles o mensajes de puente. Vuelve a evaluar los tiempos de espera durante el despliegue de Alpenglow.
Los reorganizaciones son raras pero posibles antes de finalized. Si una transacción desaparece, probablemente estaba en una bifurcación descartada; espera a finalized para acciones irreversibles.
Sí - apunta la CLI y el RPC a https://api.devnet.solana.com. El comportamiento coincide con mainnet; solo los datos de cuenta y la economía difieren.
TowerBFT es de capa de consenso - sin impacto directo en CU. El impacto en el cliente es qué nivel de compromiso consultas.
Los patrones de Anchor 0.32.1 se aplican cuando escribes programas en la cadena: cuentas tipadas, guardas require!, y generación de IDL - usa avm use 0.32.1 y anchor-lang = "0.32.1" en Cargo.toml.
Surfpool ayuda a probar scripts de sondeo de clientes contra estado bifurcado; no simula la lógica interna de votación del validador.
LiteSVM no ejecuta votos TowerBFT; las transacciones tienen éxito o fallan inmediatamente en las pruebas.
El cliente validador se renombró a Agave (4.1.1), la CLI 3.0.10 se alinea con él, y el trabajo de Alpenglow está cambiando la finalidad - fija las versiones y lee las notas de la versión en cada actualización.
Consulta getSignatureStatuses en confirmed y finalized; usa isBlockhashValid al reintentar después de bifurcaciones.
consensus-alpenglow para temas complementariosVersiones del stack: Esta página se escribió 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, y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026