Inflación y Recompensas de Staking
Calendario de emisión y recompensas para validadores/delegadores. 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.
Receta
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:
- Implementar o depurar recompensas de inflación y staking en flujos de producción.
- Enseñar el concepto a ingenieros nuevos en Solana.
- Auditar si tu stack coincide con el comportamiento de la era Agave 4.1.
Ejemplo Funcional
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:
- Patrones de acceso RPC con @solana/kit 7.0.0.
- Lectura de metadatos de ejecución (errores, CU) de transacciones confirmadas.
- Acceso a sysvars en cadena en programas Anchor 0.32.1.
Análisis Profundo
Cómo Funciona
- Calendario de emisión y recompensas para validadores/delegadores.
- El modelo de cuentas de Solana requiere listas explícitas de cuentas por instrucción.
- Sealevel ejecuta transacciones no conflictivas en paralelo.
Notas de Agave 4.1.1
- Las semánticas de confirmación siguen la votación TowerBFT con ordenamiento PoH.
- Alpenglow (Votor + Rotor) se está implementando para una finalidad más rápida; consulta la sección de Consenso.
- Desarrollo local: Surfpool 0.12.0 y LiteSVM 0.6.x.
Notas de Rust
// Usa matemáticas verificadas y restricciones explícitas en los programas
require!(amount > 0, MyError::InvalidAmount);Errores Comunes
- Snippets heredados de web3.js v1 - La API difiere de Kit. Solución: usa @solana/kit 7.0.0.
- Cluster incorrecto - Desajuste entre devnet y mainnet. Solución: alinea CLI, RPC, wallet y explorador.
- Cantidades de SOL en punto flotante - Pérdida de precisión. Solución: lamports bigint de extremo a extremo.
- Blockhash expirado - Transacciones descartadas. Solución: vuelve a obtener el blockhash y vuelve a firmar.
- CU insuficiente - OOM o presupuesto excedido. Solución: optimiza el programa + establece el Presupuesto de Cómputo.
- Faltan verificaciones del propietario - Exploits de cuentas escribibles. Solución: restricciones de Anchor en cada cuenta
mut.
Alternativas
| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| @solana/kit 7.0.0 | Nuevos clientes TypeScript | Mantenimiento de 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 |
Preguntas Frecuentes
¿Cómo se aplica esto en Agave 4.1.1?
Agave 4.1.1 sigue el calendario de inflación en cadena: las tasas de recompensa disminuyen con el tiempo según los parámetros del protocolo.
¿Qué versión de Solana CLI debo usar?
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.
¿Debo usar @solana/kit o web3.js?
Usa @solana/kit 7.0.0 para nuevos TypeScript: métodos RPC tipados, 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 incrementalmente.
¿Qué nivel de compromiso se recomienda?
Usa confirmed para dashboards y finalized antes de retiros o callbacks entre sistemas.
¿Cómo depuro fallos relacionados?
Si las recompensas parecen faltar, verifica que el stake esté active, que el validador no esté en mora y que hayas pasado el límite de la época.
¿Funciona esto en devnet?
Sí, los programas de staking y gobernanza se despliegan en devnet con épocas de prueba. La economía difiere (sin valor real), pero las formas de las instrucciones coinciden con mainnet.
¿Cómo afectan las unidades de cómputo a esto?
La inflación es a nivel de protocolo; los programas de aplicación no pagan CU de inflación.
¿Cuál es el patrón de Anchor 0.32.1?
Los patrones de Anchor 0.32.1 se aplican cuando escribes programas en 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.
¿Cómo pruebo con Surfpool 0.12.0?
Inicia Surfpool 0.12.0, apunta el RPC a su puerto y ejecuta anchor test o scripts de integración de clientes contra cuentas bifurcadas.
¿Puede LiteSVM 0.6.x cubrir esto?
LiteSVM no distribuye automáticamente la inflación; usa fixtures de recompensa conocidas para pruebas matemáticas.
¿Qué cambió en la era Agave?
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; fija las versiones y lee las notas de la versión en cada actualización.
¿Dónde encuentro métodos RPC relacionados?
getInflationRate, getInflationReward, getSupply, y getEpochInfo.
Relacionado
- Explora otras páginas de la sección
economics-tokenomics-governancepara temas complementarios. - Fundamentos de Solana - Orientación sobre cuentas y transacciones.
Versiones 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.