▸ 问答 · 运营者评估

运营方会问的六个问题。按顺序排列。

本站其他页面按信息架构组织——架构、故障史、信任层。这一页则按抱持怀疑的运营方真正想知道的问题来组织——作答紧凑,且按被问到的先后顺序排列。

Q1
它到底做什么?
Q2
出问题时它会告诉我什么?
Q3
怎么配置?
Q4
成本是多少?许可证是什么?
Q5
为什么不运行现有的矿池网关?
Q6
今天已经接通了什么?还有什么仍在计划中?
Q1

它到底做什么?

L1(网关)验证 SV2 表面;L2(Shield)重新推导 template 的每个声明字段,并与独立 mempool 交叉校验。单一二进制文件。

L1 · GATEWAY
加固后的 Stratum V2。
连接生命周期、认证、share 提交、bitcoind RPC。网关基线 reason code。早已被走熟的表面。
L2 · INVARIANT SHIELD
两个阶段 · 22 个不变量 reason code。
Phase 1——Class S(结构类)+ Class D(声明值 vs 推导值的重新推导):Tier 1(5 个关键项)+ Tier 2(5 个高危项)已交付,Tier 3(7 个)排入 Phase 1.5。Phase 2——Class M 与一个独立的 bitcoind mempool 交叉比对。两个阶段同在 v2.0 交付。WIRED
▸ 一句话总结
Veldra 用 rust-bitcoin 独立重新推导每个 template 的每个声明字段。然后点名每一处不一致。
Q2

出问题时它会告诉我什么?

指标流与日志行上都带有具名 reason code——网关 code 加上 22 个 v2_invariant_*。看到一个,复制它,去文档里搜。不做静默丢弃。

59
gateway reason code · v1 基线
22
v2_invariant_* code 总数 · 以 rg-consensus::ConsensusViolation::ALL_CODES 为准
T1 · ×5Tier 1 · 关键Phase 1(v2.0.0)

会立即产生无效区块的缺陷。从原始区块字节重新推导。

CoinbaseValueCoinbaseHeightMerkleRootWitnessCommitmentMismatchTxCount
T2 · ×5Tier 2 · 高危Phase 1(v2.0.0)

会导致区块大概率成为孤块,或在下游被判为无效的缺陷。

TemplateWeightSigopsCoinbaseSigopsWitnessCommitmentMissingCoinbaseBip34
T3 · ×7Tier 3 · 双保险Phase 1.5(观察周期之后)

在 v2.0.0 的生产观察周期干净完成后接入。

CoinbaseScriptLengthCoinbaseOutputCountWeightExceedsMaxSigopsExceedMaxNonCoinbaseNullPrevoutHeaderVersionLowDuplicateTx
CLASS M · PHASE 2(mempool 真值基准)

将 template 中非 coinbase 的 txid 与一份独立的 bitcoind mempool 视图交叉核对。当未知 tx 比例超过 tolerance_pct 时拒绝。

权威来源: rg-consensus::ConsensusViolation::ALL_CODES

Q3

怎么配置?

基线 61 个 TOML 键,另加 [policy.mempool] 下的 8 个新键。跨各 reload tier 均可热重载。

v1 基线 · 61 个键 分布在 [gateway] · [timing] · [share] · [auth]
[policy.mempool]v2.0.0 新增 · 8 键
enforcefalse在运营方主动启用之前仅作提示
tolerance_pct4.0未知 tx 比例阈值;可向 2.0 下调
poll_interval_secs10getrawmempool poll 节奏
max_stale_secs60fail-stale 窗口,超过则视图转为 Degraded
per_tx_detailfalse把 SAMPLE_UNKNOWN_CAP=10 扩展到所有未知 txid
rpc_url运营方侧 bitcoind 的 RPC 端点
rpc_userRPC 认证 · 或经由环境变量
rpc_passRPC 认证 · 或经由环境变量

8 个新键全部可选并带默认值,因此旧配置无需改动即可继续加载。

Q4

成本是多少?许可证是什么?

三种接入模式:Shadow(免费,仅告警)、Observe(需许可,不强制执行)、Inline(需许可,fail-closed)。

模式
Shadow
免费约 1 天接入

让网关运行在你现有路径之后,裁决 = 仅告警。share 流零改动。

模式
Observe
需许可证约 1 周

自托管的 Docker 技术栈加许可证密钥。需要 mainnet bitcoind(或使用 rg-feed-server)。

模式
Inline
需许可证取决于基础设施就绪度

fail-closed 强制执行。网关位于 share 路径中。

BITCOIND 前置条件

observe 与 inline 两种模式都需要运营方侧的 bitcoind:已同步、资源充足、RPC 可达,并通过环境变量或 [policy.mempool] 接通 rpc_* 凭据。

许可
源码可见,并有第三方源码存管保障连续性。
每一行都可审计。商业部署需要许可证;不留任何不透明之处。若 Veldra 停止运营,完整源码将以宽松许可证发布——你的部署、配置与数据仍然属于你。不存在锁定。
Q5

为什么不运行现有的矿池网关?

与 Stratum Reference Implementation 矿池的逐项功能对照——这是我们调研中唯一点名的可比对象。其余几种选择(内部自维护的 Core 分叉、demand-broker 代理、什么都不做)是运营决策,不是产品。

Stratum Reference Implementation(SRI)是 SV2 协议可实现性的权威证明。Veldra 面向的是需要验证、而不只是需要连通性的矿池运营方。

维度
SRI
Veldra
SV2 协议表面
是 · 权威参考
是 · 生产形态
v1 政策类检查
部分
完整 · 59 个 gateway reason code
L2 不变量再推导
是 · 22 个 v2_invariant 编码
L3 mempool 现场事实
是 · Phase 2 Class M
面向矿池运营方部署而构建
实现参考

DATUM 及其他矿工侧 template 协议属于生态背景。Veldra 的验证层与矿池运行哪一种矿工侧协议无关。

Q6

今天已经接通了什么?还有什么仍在计划中?

v2.0.0 在同一个发布中接入 Phase 1(Tier 1 + Tier 2 不变量——10 个 reason code)与 Phase 2(Class M mempool 真值基准)。Phase 1.5 在生产观察周期之后增加 7 个 Tier 3 兜底不变量。v3.x 是一份设计草图——selfish mining 检测。

v2.0.0v2.0.0 发布里程碑当前

Invariant Shield Phase 1 加上 Phase 2 的 mempool 真值基准。

p1.5Phase 1.5下一个工程段

v2.0.0 的生产观察周期干净完成后,七个 Tier 3 兜底不变量随之接入。

v3.xv3.x(有限愿景)设计草图

selfish mining 检测。per-tx detail 模式,加上 v2.0.0 中已交付的四项 Phase 2 指标,已经为时间序列检测备好了数据形态:检测那些未知 tx 集合在时间上聚集、且指纹在结构上彼此一致的 template。v3.x 的设计从已交付的 Phase 2 表面出发——无需协议变更,除了在运营方策略中开启 per-tx detail 之外没有迁移成本。

▸ 交付前如何试用