Prueba de Historial (PoH)
Un reloj verificable y su función en la ordenación. Esta guía está dirigida a validadores Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1 y clientes @solana/kit 7.0.0.
Busca en todas las páginas de la documentación
Un reloj verificable y su función en la ordenación. Esta guía está dirigida a validadores Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1 y clientes @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 = "PEGA_LA_FIRMA_DESPUÉS_DE_TU_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:
// Usa matemáticas comprobadas y restricciones explícitas en los programas
require!(amount > 0, MyError::InvalidAmount);| 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 completa del comportamiento de la red |
Los líderes de Agave 4.1.1 incrustan hashes de PoH en los bloques para que los validadores acuerden el orden de las transacciones antes de que TowerBFT vote.
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 anclaje de tu equipo), luego verifica con solana --version y agave-install --version.
Usa @solana/kit 7.0.0 para nuevos métodos RPC tipados en TypeScript, una superficie de API más pequeña y los ejemplos de esta página ya usan Kit. Conserva web3.js solo para bases de código heredadas; migra las llamadas RPC y la construcción de transacciones de forma incremental.
Usa confirmed para dashboards y finalized antes de retiros o callbacks entre sistemas.
Los problemas de PoH aparecen como deriva de slot o líderes omitidos, no como errores de programa típicos. Compara getBlockTime entre slots al diagnosticar retrasos de ordenación en todo el clúster.
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.
PoH no consume la CU de tu transacción; es un reloj del lado del validador. El impacto en el cliente es la vida útil del blockhash y el tiempo del slot.
Anchor 0.32.1 usa #[program], Context<T> y #[derive(Accounts)] con restricciones explícitas de mut/signer; ejecuta anchor build y anchor test en 0.32.1 a través de avm use 0.32.1.
Inicia Surfpool 0.12.0, apunta el RPC a su puerto y ejecuta anchor test o scripts de integración de cliente contra cuentas bifurcadas.
LiteSVM no ejecuta ticks de PoH; ejecuta instrucciones contra una instantánea estática del ledger.
El cliente validador cambió de nombre a Agave (4.1.1), CLI 3.0.10 se alinea con él y el trabajo de Alpenglow está cambiando la finalidad; ancla las versiones y lee las notas de la versión en cada actualización.
getRecentBlockhash / getLatestBlockhash, getSlot y getBlockTime relacionan la cadencia de firma del cliente con los slots impulsados por PoH.
core-architecture-components para temas complementarios.Versiones del Stack: Esta página fue 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 y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026