▸ PRODUCTO · v2.0.0

El verificador no confía en el template. Lo vuelve a derivar.

Veldra v2.0.0 entrega el Invariant Shield: 22 comprobaciones canónicas de re-derivación (Fase 1) más la referencia real del mempool (Fase 2). Montado sobre la pasarela de política v1 de 59 códigos y la base de configuración TOML de 61 claves ya existentes.

ALCANCE HONESTO · ESTADO v2.0.0WIREDvs.OBSERVING

v2.0.0 integrado, en origin, CI en verde. La re-derivación de consenso independiente se ejecuta. La referencia real del mempool se ejecuta. La afirmación de lanzamiento de que el sistema detecta en producción la manipulación consistente por parte del template-manager en la capa del verificador exige que antes se complete el ciclo de observación en producción. Hasta entonces, la comunicación pública distingue entre «integrado y probado en CI» y «validado contra templates reales de mainnet durante una ventana de observación de varias semanas».

▸ SECCIONES
01Reason codes02Configuración03Telemetría04Facade rg-consensus05Máquina de estados fail-stale de la Fase 206Modelo de amenazas · límites · salvedades07Modos de adopción08Veldra vs SRI09Roadmap
01

Reason codes

Cada desacuerdo recibe un nombre. La superficie de reason codes es el contrato: lo que el verificador emite cuando rechaza un template, en el flujo de métricas y en la línea de log, con una fuente canónica sobre la que puedes hacer grep.

59
gateway reason codes · base v1
22
códigos v2_invariant_* en total · canónicos desde rg-consensus::ConsensusViolation::ALL_CODES
T1 · ×5Tier 1 · críticoFase 1 (v2.0.0)

Defectos que producen un bloque inmediatamente inválido. Re-derivados a partir de los bytes en bruto del bloque.

CoinbaseValueCoinbaseHeightMerkleRootWitnessCommitmentMismatchTxCount
T2 · ×5Tier 2 · altoFase 1 (v2.0.0)

Defectos que producen bloques con probabilidad de quedar huérfanos o inválidos aguas abajo.

TemplateWeightSigopsCoinbaseSigopsWitnessCommitmentMissingCoinbaseBip34
T3 · ×7Tier 3 · redundancia deliberadaFase 1.5 (tras el ciclo de observación)

Se conectan tras completarse limpiamente el ciclo de observación en producción de v2.0.0.

CoinbaseScriptLengthCoinbaseOutputCountWeightExceedsMaxSigopsExceedMaxNonCoinbaseNullPrevoutHeaderVersionLowDuplicateTx
CLASS M · FASE 2 (referencia real del mempool)

Coteja los txids no-coinbase del template con una vista independiente del mempool de bitcoind. Rechaza cuando la proporción de tx desconocidas supera tolerance_pct.

Fuente canónica: rg-consensus::ConsensusViolation::ALL_CODES

02

Configuración

61 claves TOML de base más 8 nuevas bajo [policy.mempool] en v2.0.0. Las 8 son opcionales y con valores por defecto — las configuraciones antiguas se siguen cargando sin cambios.

Base v1 · 61 claves en [gateway] · [timing] · [share] · [auth]
[policy.mempool]NUEVO EN v2.0.0 · 8 CLAVES
enforcefalseinformativo hasta que el operador lo active
tolerance_pct4.0umbral de proporción de tx desconocidas; ajustable a la baja hacia 2.0
poll_interval_secs10cadencia del poll a getrawmempool
max_stale_secs60ventana de fail-stale antes de que la vista pase a Degraded
per_tx_detailfalseamplía SAMPLE_UNKNOWN_CAP=10 a todos los txids desconocidos
rpc_urlendpoint RPC del bitcoind del operador
rpc_userauth RPC · o vía variable de entorno
rpc_passauth RPC · o vía variable de entorno

Las 8 claves nuevas son opcionales y con valores por defecto, de modo que las configuraciones antiguas se siguen cargando sin cambios.

03

Telemetría

Cuatro nuevos flujos de Prometheus en v2.0.0 para la Fase 2. Las exportaciones existentes no cambian.

NUEVO EN v2.0.0 · 4 FLUJOS
verifier_phase2_checks_total{result}counterresult ∈ {agreed, rejected, skipped, stale}
verifier_phase2_degraded_totalcounterse incrementa por cada template servido mientras la vista está en Degraded
verifier_mempool_view_age_secondsgaugeantigüedad de la última actualización correcta
verifier_mempool_view_sizegaugenúmero de tx en la última actualización correcta

Las exportaciones existentes no cambian. Observabilidad Prometheus / Grafana / CSV / NDJSON según el sitio actual.

04

Facade rg-consensus

La reducida API pública del motor de consenso. Cinco puntos de entrada de re-derivación y cinco métodos de acceso sobre rust-bitcoin — toda la superficie de Class D / Class S.

rg-consensus es una fachada separable que envuelve rust-bitcoin tras un límite estrecho.

PUNTOS DE ENTRADA DE RE-DERIVACIÓN · ×5
re_derive_coinbase_value()re_derive_template_weight()re_derive_merkle_root()re_derive_witness_commitment()count_sigops()
ACCESSORS DE CLASE · ×5
template_txidsparse_blocktotal_sigopscoinbase_sigopsbip34_height
05

Máquina de estados fail-stale de la Fase 2

Qué ocurre cuando falla el sondeo RPC al bitcoind del operador. Tres estados, transiciones nombradas, ningún template descartado.

Máquina de estados de la vista del mempool: el verificador pasa por tres estados según la antigüedad de la vista y después se degrada limpiamente, sin descartar templates.

ESTADO 1
Fresh
ENTRA CUANDO
sondeo con éxito dentro de poll_interval_secs
COMPORTAMIENTO
La comprobación de Class M se ejecuta sobre la vista fresca.
ESTADO 2
Stale
ENTRA CUANDO
fallo de actualización, antigüedad ≤ max_stale_secs
COMPORTAMIENTO
Class M sigue ejecutándose contra la última vista conocida.
ESTADO 3
Degraded
ENTRA CUANDO
edad > max_stale_secs × 2
COMPORTAMIENTO
Class M se omite. Los templates recaen en la Fase 1. verifier_phase2_degraded_total ++.
VALORES POR DEFECTO
max_stale_secs = 60  ·  sample_unknown_cap = 10
06

Modelo de amenazas · límites · salvedades

Lo que está dentro del alcance, lo que queda estructuralmente fuera del alcance y lo que la ventana de tolerancia del 4% del mempool puede y no puede hacer.

ID
AMENAZA
ESTADO
DETECTADO POR
T1tampering del raw_block✓ DENTROL2 Fase 1
T2discrepancia entre lo declarado y los bytes✓ DENTROL2 Fase 1
T3manipulación consistente por parte del template-manager✓ DENTROL3 Fase 2
T4compromiso del bitcoind del operador✗ FUERAexplícitamente fuera de alcance
T5selfish mining · divergencia agresiva del mempool✗ FUERAterritorio v3.x

ReserveGrid OS v2.0.0 con la Fase 1 más la Fase 2 detecta T1, T2 y T3. T4 y T5 quedan explícitamente fuera de alcance.

▸ TECHOS ARQUITECTÓNICOS · LO QUE CADA CAPA NO PUEDE DETECTAR ESTRUCTURALMENTE
L1 · NO PUEDE

cualquier template cuyos campos declarados queden dentro de los umbrales del operador, aunque los bytes subyacentes estén fabricados

L2 · NO PUEDE

manipulación cuyos valores declarados y bytes crudos son internamente consistentes por construcción

L3 · NO PUEDE

manipulación que se mantiene dentro de la ventana de tolerancia configurada, o mientras el propio bitcoind está comprometido

▸ ADVERTENCIAS · NOMBRADAS DE ENTRADA
  • 01La ventana de tolerancia del 4% en la Fase 2 absorbe la divergencia benigna del mempool (latencia legítima de propagación entre el bitcoind del operador y la red).
  • 02Ajustarla a la baja hacia 2.0 estrecha la ventana, pero no puede llegar a cero sin producir falsos positivos en templates reales.
  • 03La Fase 2 confía en el bitcoind del operador por definición. Si ese mismo bitcoind está comprometido, Class M queda ciega.
07

Modos de adopción

Tres formas de despliegue — Shadow (solo aviso · gratis), Observe (licencia · sin aplicación de política), Inline (licencia · fail-closed). El requisito de bitcoind se nombra de entrada.

MODO
Shadow
Gratis~1 día para cablear

Ejecuta la pasarela detrás de tu ruta actual con veredicto = solo aviso. Cero cambios en el flujo de shares.

MODO
Observe
Licencia~1 semana

Stack de Docker autoalojado más clave de licencia. Requiere un bitcoind de mainnet (o usa rg-feed-server).

MODO
Inline
LicenciaDepende del estado de la infra

Aplicación de política fail-closed. Pasarela dentro de la ruta de los shares.

REQUISITO BITCOIND

Tanto observe como inline requieren un bitcoind del lado del operador: sincronizado, con recursos suficientes, con RPC accesible y con las credenciales rpc_* cableadas mediante variable de entorno o [policy.mempool].

FLUJO DE CLAVE DE LICENCIA

Los operadores que quieran el modo observe o inline obtienen una clave de licencia desde su cuenta de veldra.org (Iniciar sesión).

Tanto observe como inline requieren un bitcoind del lado del operador: sincronizado, con recursos suficientes, con RPC accesible y con las credenciales rpc_* cableadas mediante variable de entorno o [policy.mempool].

08

Veldra vs SRI

La única comparación de producto que se nombra. Stratum Reference Implementation es la prueba canónica de que el protocolo SV2 es implementable. Veldra está hecho para operadores de pool que necesitan verificación, no solo conectividad.

La Stratum Reference Implementation (SRI) es la prueba canónica de que el protocolo SV2 es implementable. Veldra está hecho para operadores de pool que necesitan verificación, no solo conectividad.

EJE
SRI
Veldra
Superficie del protocolo SV2
Sí · referencia canónica
Sí · forma de producción
Verificaciones de clase política v1
Parcial
Completas · 59 gateway reason codes
Re-derivación de invariantes L2
No
Sí · 22 códigos v2_invariant
Verdad de campo del mempool L3
No
Sí · Fase 2 Class M
Construido para el despliegue por operadores de pool
Referencia de implementación

DATUM y otros protocolos de template del lado del minero son contexto del ecosistema. La capa de verificación de Veldra es independiente del protocolo del lado del minero que ejecute el pool.

09

Roadmap

v2.0.0 → Fase 1.5 → v3.x. Sin fechas de calendario — los hitos están condicionados al ciclo de observación en producción, no al reloj.

v2.0.0Hito de lanzamiento v2.0.0actual

Invariant Shield Fase 1 más la referencia real del mempool de la Fase 2.

p1.5Fase 1.5siguiente bucket de ingeniería

Siete invariantes Tier 3 de doble seguridad se conectan tras completarse limpiamente el ciclo de observación en producción de v2.0.0.

v3.xv3.x (visión moderada)boceto de diseño

Detección de selfish mining. El modo per-tx detail y las cuatro métricas de la Fase 2 entregadas en v2.0.0 establecen la forma de los datos para la detección, sobre series temporales, de templates cuyos conjuntos de tx desconocidas se agrupan en el tiempo con huellas estructuralmente coherentes. El diseño de v3.x parte de la superficie de la Fase 2 ya entregada — no requiere cambios de protocolo ni tiene más coste de migración que habilitar per-tx detail en la política del operador.

▸ LEER A CONTINUACIÓN
Arquitectura →
Cómo un solo block template recorre la pasarela, la re-derivación independiente, Class D y Class M: seis pasos con los códigos nombrados en cada etapa.
Atlas de fallos →
Un historial de incidentes de pool, indexado por fecha — qué fue cada uno, qué capa lo habría detectado y qué reason code se habría disparado.
Preguntas · Evaluación del operador →
Seis preguntas directas en orden. Qué hace. Qué te dice. Cómo configurarlo. Coste. Por qué no las herramientas existentes. Qué está INTEGRADO hoy.