Saltar al contenido principal

Ejecutar un Validador

Esta guía cubre cómo crear un validador en la red QoreChain, entender el sistema de clasificación de pools, registrar una clave PQC para seguridad resistente a la computación cuántica, y monitorear tu nodo.

nota

Esta guía está orientada a la mainnet qorechain-vladi (chain ID EVM 9801), activa desde el 7 de junio de 2026 y ejecutando la versión de cadena v3.1.95. Se recomienda la testnet qorechain-diana (chain ID EVM 9800) para ensayar tu configuración antes de pasar a producción. Sustituye el --chain-id adecuado según tu red objetivo.


Requisitos previos

  • Un nodo qorechaind completamente sincronizado (ver Conexión a Testnet)
  • Una cuenta con fondos de al menos 100,000 QOR (100,000,000,000 uqor) para la autodelegación inicial — este mínimo se aplica on-chain y create-validator se rechaza por debajo de él
  • Una licencia validator_operator activa en tu cuenta — ver la nota más abajo; sin ella, create-validator falla con ErrUnauthorized sin importar cuánto QOR autodelegues
  • Familiaridad con el modelo de Staking y Delegación

Crear un Validador

Gate de licencia: validator_operator

create-validator está protegido por dos verificaciones independientes, ambas aplicadas on-chain, y necesitas ambas — un autobond grande por sí solo no es suficiente:

  1. Autobond mínimo de 100,000 QOR.
  2. Una licencia validator_operator activa en la cuenta que envía la transacción.

El expires_at de una licencia es una altura de bloque, no una fecha ni una duración — 0 significa sin vencimiento. Si falta o está vencida, create-validator falla con ErrUnauthorized, sin importar cuánto autodelegues; esta es la razón más común por la que un intento bien financiado falla y parece inexplicable. Este gate existe específicamente porque la vía de ejecución EVM no puede verlo ni aplicarlo (un único decorador de ante allí lo eludiría por completo) — es una de las razones por las que el staking y la validación permanecen exclusivamente en la vía Native.

qorechaind tx staking create-validator \
--amount 100000000000uqor \
--pubkey $(qorechaind comet show-validator) \
--moniker "my-validator" \
--commission-rate 0.10 \
--commission-max-rate 0.20 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1 \
--from mykey \
--gas auto \
--gas-adjustment 1.3 \
-y
ParámetroDescripción
--amountMonto de autodelegación — mínimo 100,000 QOR (100000000000uqor)
--pubkeyClave pública de consenso del validador (ed25519)
--monikerNombre legible para tu validador
--commission-rateTasa de comisión inicial (p. ej., 0.10 = 10%)
--commission-max-rateTasa de comisión máxima (inmutable tras la creación)
--commission-max-change-rateTasa máxima de cambio diario de comisión
--min-self-delegationCantidad mínima de tokens que el operador debe autodelegar

Una vez confirmada la transacción, verifica tu validador:

qorechaind query staking validator $(qorechaind keys show mykey --bech val -a)

Clasificación de Pools

QoreChain utiliza un sistema de clasificación de tres pools gestionado por el módulo x/qca (Quantum Consensus Allocation). Cada 1,000 bloques, los validadores se reclasifican en uno de tres pools según su reputación y stake:

PoolCriterioAsignación de Bloques
RPoS (Reputation Proof-of-Stake)Reputación >= percentil 70 Y stake >= mediana40% de los bloques
DPoS (Delegated Proof-of-Stake)Delegación total >= 10,000 QOR35% de los bloques
PoS (Proof-of-Stake)Todos los demás validadores activos25% de los bloques

Dentro de cada pool, los proponentes de bloque se seleccionan mediante selección aleatoria ponderada proporcional a su stake efectivo. La clasificación garantiza que tanto los validadores de alta reputación como los de alta delegación reciban una representación justa, permitiendo a la vez que los validadores más pequeños participen.

Consultar tu Clasificación de Pool

qorechaind query qca pool-classification $(qorechaind keys show mykey --bech val -a)

Vía JSON-RPC:

curl -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "qor_getPoolClassification",
"params": ["qorvaloper1..."],
"id": 1
}'

Curva de Bonding

La recompensa de staking para un validador se determina mediante una curva de bonding que incorpora múltiples factores:

R = beta * S * (1 + alpha * log(1 + L)) * Q(r) * P(t)
VariableDescripción
RMonto de la recompensa
betaTasa base de recompensa
SStake efectivo
alphaConstante de escalado de lealtad
LDuración de lealtad (tiempo continuo de staking)
Q(r)Factor de calidad de reputación, rango [0.75 - 1.25]
P(t)Multiplicador de fase del protocolo (se ajusta según el ciclo de vida de la red)

Puntos clave:

  • Bono por duración de lealtad: Los validadores que hacen staking de forma continua reciben recompensas crecientes mediante el término logarítmico de lealtad. Esto incentiva el compromiso a largo plazo.
  • Factor de calidad de reputación: Va de 0.75 (reputación pobre) a 1.25 (reputación excelente). La reputación se calcula a partir del uptime, las propuestas exitosas, la participación comunitaria y la calidad de validación de transacciones.
  • Multiplicador de fase del protocolo: Se ajusta a medida que la red madura a través de distintas fases (bootstrap, crecimiento, madurez).

Slashing

Las penalizaciones base por infracción, consultables en vivo y vigentes al momento de escribir esto:

qorechaind query slashing params
ParámetroValor
Ventana de bloques firmados10,000 bloques (aproximadamente 6 horas para acumularse)
Mínimo firmado por ventana95% (encarcela por debajo de este umbral)
Duración del encarcelamiento por inactividad600 segundos (10 minutos)
Fracción de slashing por inactividad1% del stake
Fracción de slashing por doble firma5% del stake

El encarcelamiento es un tiempo de espera fijo de 10 minutos con una penalización fija; es independiente del modelo progresivo descrito a continuación, que superpone consecuencias adicionales y crecientes sobre las infracciones reincidentes a lo largo de un horizonte más largo.

Slashing Progresivo

QoreChain utiliza un modelo de slashing progresivo que escala las penalizaciones para infractores reincidentes, permitiendo al mismo tiempo que los validadores se recuperen con el tiempo:

penalty = base_rate * escalation^effective_count * severity
ParámetroValor
Penalización máxima por evento33% del stake
Vida media de decaimiento100,000 bloques
Severidad por inactividad1.0
Severidad por doble firma2.0
Severidad por ataque de light client3.0
  1. Cada infracción incrementa el contador efectivo. Cada infracción (inactividad, doble firma, etc.) incrementa el contador efectivo del validador, lo cual afecta las penalizaciones futuras.

  2. La penalización escala exponencialmente. La penalización escala según el contador efectivo usando la fórmula anterior, de modo que los infractores reincidentes enfrentan penalizaciones mucho mayores.

  3. El contador efectivo decae con el tiempo. El contador efectivo decae con una vida media de 100,000 bloques (~7 días con bloques de 6s), permitiendo que los validadores se recuperen tras un período de buen comportamiento.

  4. Eventos únicos frente a infracciones repetidas. Un único evento accidental de inactividad resulta en una penalización menor, mientras que las infracciones repetidas desencadenan consecuencias exponencialmente crecientes.


Registro de Clave PQC

Registra tu clave pública criptográfica post-cuántica (PQC) — ML-DSA-87 — antes de solicitar una licencia de validador o ejecutar create-validator. Esto no es opcional ni automático: la cadena exige una firma híbrida PQC en cada transacción por la vía cosmos, MsgCreateValidator no es uno de los tipos de mensaje exentos y — a diferencia de una cuenta regular, que registra su clave automáticamente en su primera transacción — un validador debe ejecutar este comando por sí mismo, en su propio nodo, con antelación.

qorechaind tx pqc register-key <pubkey-hex> hybrid \
--from mykey \
--gas 600000 \
-y
ParámetroDescripción
<pubkey-hex>Clave pública ML-DSA-87 de 2592 bytes en codificación hex
hybridModo de registro (hybrid = clásico + PQC combinados)
Establece --gas explícitamente

La clave pública ML-DSA-87 ocupa 2,592 bytes, y escribirla on-chain supera el límite de gas por defecto de 200,000. Sin --gas 600000 (o superior), la transacción falla con un error opaco out of gas in location: WritePerByte.

Verificar el registro:

qorechaind query pqc key <account-address>

Monitoreo

Métricas de Prometheus

QoreChain expone métricas de Prometheus en el puerto 26660:

http://localhost:26660/metrics

Métricas clave a monitorear:

MétricaDescripción
qorechain_missed_blocks_totalTotal de bloques perdidos por tu validador
qorechain_validator_uptimePorcentaje de uptime en los últimos N bloques
qorechain_reputation_scorePuntuación de reputación actual
qorechain_pool_classificationAsignación de pool actual (0=PoS, 1=DPoS, 2=RPoS)
qorechain_consecutive_signedBloques consecutivos firmados
consensus_heightAltura de bloque actual
consensus_roundsRondas de consenso para la altura actual

Consultar Puntuación de Reputación

qorechaind query reputation score $(qorechaind keys show mykey --bech val -a)

Vía JSON-RPC:

curl -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "qor_getReputationScore",
"params": ["qorvaloper1..."],
"id": 1
}'

Verificaciones de Salud

# Node status
qorechaind status | jq '.sync_info'

# Validator signing info (uptime, missed blocks)
qorechaind query slashing signing-info $(qorechaind comet show-validator)

# Check if your validator is in the active set
qorechaind query staking validators --status bonded | grep "my-validator"

Buenas Prácticas Operativas

  1. Usa una arquitectura de nodos sentry. Ejecuta tu validador detrás de nodos sentry para protegerlo de ataques DDoS. Expón solo los nodos sentry a la red pública.

  2. Configura alertas. Configura alertas para bloques perdidos, uptime bajo y reinicios inesperados. Unos pocos bloques perdidos son normales; las pérdidas sostenidas activarán slashing.

  3. Mantén un uptime alto. El sistema de reputación premia el uptime consistente. El tiempo de inactividad prolongado degrada tu factor de calidad de reputación, reduciendo las recompensas.

  4. Mantén el software actualizado. Sigue las versiones de QoreChain y aplica las actualizaciones con prontitud. Coordínate con la comunidad de validadores para las actualizaciones de cadena.

  5. Asegura tus claves. Usa un módulo de seguridad de hardware (HSM) o un firmante remoto para la clave de consenso del validador. Nunca almacenes las claves en la misma máquina que el nodo.

  6. Registra una clave PQC. Protege tu validador a futuro frente a las amenazas cuánticas registrando una clave ML-DSA-87.

  7. Monitorea tu pool. Rastrea tu clasificación de pool cada 1,000 bloques. Mejorar tu reputación puede moverte de PoS a RPoS, aumentando significativamente las oportunidades de proponer bloques.


Referencia de Comandos del Validador

# Edit validator metadata
qorechaind tx staking edit-validator \
--moniker "new-name" \
--website "https://myvalidator.com" \
--details "Description of my validator" \
--from mykey -y

# Unjail after downtime slashing
qorechaind tx slashing unjail --from mykey -y

# Delegate additional stake
qorechaind tx staking delegate $(qorechaind keys show mykey --bech val -a) \
500000000uqor --from mykey -y

# Withdraw rewards
qorechaind tx distribution withdraw-rewards $(qorechaind keys show mykey --bech val -a) \
--commission --from mykey -y

Validar Redes Conectadas

A partir de la versión de cadena v3.1.80, un validador de QoreChain también puede ayudar a validar las redes conectadas a través del bridge. Esto es opt-in y está sujeto a licencia:

  1. Poseer la licencia. El validador debe tener una licencia activa validator_<chain> (o qcb_bridge) para la red objetivo. El orquestador se niega a iniciar un cliente externo sin ella (fail-closed).
  2. La activación aprovisiona el cliente automáticamente. Cuando se activa la licencia, QoreChain aprovisiona el cliente de la red correspondiente en tu nodo: descarga el cliente fijado, renderiza su configuración y lo ejecuta bajo la orquestación de QoreChain. No se descarga nada hasta la activación.
  3. Aporta las claves y el stake de la red. El validador/stake y las claves de firma de la red externa son suministrados por el operador para cada red; QoreChain proporciona el framework de drivers y el gate de licencia obligatorio, no tu stake en la cadena externa.

Existen drivers para las 37 redes del bridge, clasificadas según cómo puede participar un validador:

ClaseParticipaciónEjemplos
Validador sin permisos (permissionless)Hacer stake y ejecutarSolana, Ethereum, Avalanche, Sui, Aptos, Cardano, Tezos, Algorand, Starknet
Con tope / electo / por admisiónHacer stake, sujeto a un tope o elecciónBSC, Polygon, Polkadot, TRON, Sei, Injective, NEAR, Hedera
Nodo completo L2Ejecutar un nodo completo (sin staking)Optimism, Base, zkSync Era, Linea, Scroll, Arbitrum
Sin staking / lista de confianzaObservar / participar sin hacer stakeBitcoin, Filecoin, XRPL, Stellar
nota

Las versiones fijadas de los clientes son best-effort; verifica la versión del cliente upstream para tu red objetivo antes de una activación en producción.

Próximos Pasos