▸ Q&A · OPERATOR EVALUATION

Six questions operators ask. In order.

The other surfaces of this site organize by IA — the architecture, the failure history, the trust layers. This page organizes by what skeptical operators actually want to know — answered tightly, in the order they get asked.

Q1
What does it actually do?
Q2
What does it tell me when something’s wrong?
Q3
How do I configure it?
Q4
What does it cost? What’s the license?
Q5
Why not run an existing pool gateway?
Q6
What’s WIRED today, and what’s still planned?
Q1

What does it actually do?

L1 (gateway) verifies the SV2 surface; L2 (Shield) re-derives every declared template field and cross-checks an independent mempool. One binary.

L1 · GATEWAY
Stratum V2, hardened.
Connection lifecycle, auth, share submission, bitcoind RPC. Gateway-baseline reason codes. The well-trodden surface.
L2 · INVARIANT SHIELD
Two phases · 22 invariant codes.
Phase 1 — Class S (structural) + Class D (declared-vs-derived re-derivation): Tier 1 (5 critical) + Tier 2 (5 high) shipped, Tier 3 (7) queued for Phase 1.5. Phase 2 — Class M cross-references an independent bitcoind mempool. Both phases ship in v2.0.WIRED
▸ ONE-LINE SUMMARY
Veldra re-derives every declared field of every template, independently with rust-bitcoin. Then names every disagreement.
Q2

What does it tell me when something’s wrong?

Named reason codes on the metric stream and the log line — gateway codes plus 22 v2_invariant_*. Find one, copy it, search the docs. No silent drops.

59
gateway reason codes · v1 baseline
22
v2_invariant_* codes total · canonical from rg-consensus::ConsensusViolation::ALL_CODES
T1 · ×5Tier 1 · criticalPhase 1 (v2.0.0)

Defects that produce an immediately invalid block. Re-derived from raw block bytes.

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

Defects that produce orphan-likely or downstream-invalid blocks.

TemplateWeightSigopsCoinbaseSigopsWitnessCommitmentMissingCoinbaseBip34
T3 · ×7Tier 3 · belt-and-suspendersPhase 1.5 (post observation cycle)

Wires after the v2.0.0 production observation cycle completes cleanly.

CoinbaseScriptLengthCoinbaseOutputCountWeightExceedsMaxSigopsExceedMaxNonCoinbaseNullPrevoutHeaderVersionLowDuplicateTx
CLASS M · PHASE 2 (mempool ground truth)

Cross-references the template's non-coinbase txids against an independent bitcoind mempool view. Rejects when the unknown-tx ratio exceeds tolerance_pct.

Canonical source: rg-consensus::ConsensusViolation::ALL_CODES

Q3

How do I configure it?

61 baseline TOML keys plus 8 new under [policy.mempool]. Hot-reloadable across reload tiers.

v1 baseline · 61 keys across [gateway] · [timing] · [share] · [auth]
[policy.mempool]NEW IN v2.0.0 · 8 KEYS
enforcefalseadvisory until operator opts in
tolerance_pct4.0unknown-tx ratio threshold; tunable down toward 2.0
poll_interval_secs10getrawmempool poll cadence
max_stale_secs60fail-stale window before view becomes Degraded
per_tx_detailfalseexpand SAMPLE_UNKNOWN_CAP=10 to all unknown txids
rpc_urloperator-side bitcoind RPC endpoint
rpc_userRPC auth · or via env var
rpc_passRPC auth · or via env var

All 8 new keys optional with defaults so older configs continue to load unchanged.

Q4

What does it cost? What’s the license?

Three adoption modes: Shadow (free, warn-only), Observe (license, no enforcement), Inline (license, fail-closed).

MODE
Shadow
Free~1 day to wire

Run the gateway behind your existing path with verdict = warn-only. Zero share-flow change.

MODE
Observe
License~1 week

Self-hosted Docker stack plus license key. Mainnet bitcoind required (or use rg-feed-server).

MODE
Inline
LicenseDepends on infra readiness

Fail-closed enforcement. Gateway in the share path.

BITCOIND PREREQUISITE

Observe and inline both require operator-side bitcoind: synced, resourced, RPC reachable, env-var or [policy.mempool] rpc_* credentials wired.

LICENSE
Source-available, with escrow continuity.
Every line auditable. Commercial deployment requires a license; no opacity. If Veldra ceases operations, full source releases under a permissive license — your deployment, configuration, and data stay yours. No lock-in.
Q5

Why not run an existing pool gateway?

Side-by-side feature matrix vs the Stratum Reference Implementation pool — the only single comparable named in our research. The other surfaces (in-house Core forks, demand-broker proxies, do-nothing) are operational decisions, not products.

The Stratum Reference Implementation (SRI) is the canonical proof that the SV2 protocol is implementable. Veldra is built for pool operators who need verification, not just connectivity.

AXIS
SRI
Veldra
SV2 protocol surface
Yes · canonical reference
Yes · production-shaped
v1 policy-class checks
Partial
Full · 59 gateway reason codes
L2 invariant re-derivation
No
Yes · 22 v2_invariant codes
L3 mempool ground truth
No
Yes · Phase 2 Class M
Built for pool operator deployment
Implementation reference
Yes

DATUM and other miner-side template protocols are ecosystem context. Veldra’s verification layer is independent of which miner-side protocol the pool runs.

Q6

What’s WIRED today, and what’s still planned?

v2.0.0 wires Phase 1 (Tier 1 + Tier 2 invariants — 10 codes) and Phase 2 (Class M mempool ground truth) in the same release. Phase 1.5 adds the 7 Tier 3 belt-and-suspenders invariants after the production observation cycle. v3.x is a design sketch — selfish-mining detection.

v2.0.0v2.0.0 launch milestonecurrent

Invariant Shield Phase 1 plus Phase 2 mempool ground truth.

p1.5Phase 1.5next engineering bucket

Seven Tier 3 belt-and-suspenders invariants wire after the v2.0.0 production observation cycle completes cleanly.

v3.xv3.x (mild vision)design sketch

Selfish mining detection. Per-tx detail mode plus the four Phase 2 metrics shipped in v2.0.0 set up the data shape for time-series detection of templates whose unknown-tx sets cluster temporally with structurally coherent fingerprints. v3.x design begins from the shipped Phase 2 surface — no protocol change required, no migration cost beyond enabling per-tx detail in operator policy.

▸ HOW TO TRY IT BEFORE COMMITTING