挖矿docs/mining/index.md

挖矿

仅有哈希算力无法生成区块。挖矿需要 State;只有证明完成后才能开始搜索 nonce

Parano1d 的工作量证明负责为已经证明有效的 State 转换排序。在搜索 nonce 前,区块生产者必须跟随规范链、持有 Live State、构建精确的下一 次转换,并完成递归 HistoryStep

因此,独立生产区块的基本单元是能够生成证明的完整节点,而不是单独的哈希 挖矿工作进程。

证明原生区块流程

节点和挖矿进程分别做什么

区块归属于挖矿节点。节点负责:

  • 跟随并独立验证规范状态链;
  • 在交易意图进入内存池前进行验证;
  • 选择互不冲突的交易集;
  • 固定奖励、费用、槽位写入和转换后 State 根;
  • 证明与 nonce 无关的区块部分和前一终端证明;
  • 验证获胜 nonce;
  • 原子提交并广播完整的 {block, HistoryStep 终端证明} 区块包。

Nonce 搜索可以在该进程内部运行,也可以交给 parano1d-miner。外部 挖矿进程的职责窄得多:

  • 接收一份不可变的 Poseidon2b 区块头输入序列和目标值;
  • 搜索 128 位 nonce 的独立取值;
  • 把候选 nonce 返回节点。

挖矿进程不会收到区块体、State 见证数据或 HistoryStep 见证数据。证明完成 后,它无法替换交易、更改 State 根或修改模板。

一次区块尝试

区块生产按以下顺序进行:

  1. 节点等待同步完成,并满足所需的已完成身份认证的对等节点数量。
  2. 读取规范链尖、Live State 和内存池中可接受的交易意图。
  3. 选择 B64 或 B255 证明类别,并固定候选区块除 nonce 之外的全部语义 字段。
  4. 计算精确的槽位写入和最终 UTXO 根。
  5. 证明新的 HistoryStep,包括与前一终端证明的递归连续性。
  6. 完成的证明固定一份不可变挖矿模板。
  7. 内置矿工或外部挖矿进程搜索 Poseidon2b nonce。
  8. 节点验证 nonce、封装已准备的终端证明、原子提交区块并向对等节点 宣布。

新的规范链尖会使未完成工作过期。节点丢弃该尝试,从新的 State 重新开始;绝不 把旧证明移到不同父区块或交易集上。

对等节点只有在独立验证父区块、HistoryStep、PoW 目标值和所有共识 承诺后才接受结果。有效竞争链之间由累计工作量决定胜者。

两种挖矿模式

模式 证明构建 Nonce 搜索 适合场景
内置 Core 节点 Core 节点 GUI 钱包、单机矿工、单台服务器
外部 Core 节点 parano1d-miner 独立 CPU 挖矿进程、私有挖矿网络或矿池

两种模式遵循同一套共识规则,生成完全相同的区块。外部挖矿只把 nonce 搜索移过 RPC 边界。

普通 --mode node 进程会验证并中继区块,但不构建挖矿模板。

使用 GUI 钱包挖矿

原生钱包管理自己的完整节点。按 F5 打开 挖矿,选择 CPU 线程预算, 再点击 开始挖矿

节点完成同步并连接至少两个经过认证的对等节点后,挖矿才可用。活动钱包 地址接收新模板的奖励。切换活动地址会影响下一模板;已经不可变的模板保留 原奖励地址。

页面显示选中的 CPU 后端、B64/B255 就绪状态、当前挖矿状态以及本机找到的 区块。关闭行为和区块表见钱包内挖矿

运行 Core 内置矿工

创建节点数据前,先检查实际主机:

sh
parano1d --check-hardware

以内置矿工模式启动 Core:

sh
parano1d --mode miner --cpu-threads 12

省略 --cpu-threads 时,使用进程可见的全部逻辑 CPU。未配置奖励地址时, Core 使用本地钱包活动地址。也可固定一个独立的规范 bech32m 地址:

sh
parano1d --mode miner --miner-address o1...

在另一个终端观察就绪状态和链进度:

sh
parano1d-cli status
parano1d-cli peers
parano1d-cli mining

如果未同步或已完成身份认证的对等节点少于两个,Core 会等待,不会在孤立的本地视图上 挖矿。完整服务器和 systemd 流程见 内置挖矿

运行外部挖矿进程

启动负责持有并证明外部挖矿模板的节点:

sh
parano1d \
  --mode extminer \
  --mining-key '<long-random-token>'

让挖矿进程连接节点的本地回环 RPC:

sh
parano1d-miner \
  --rpc http://127.0.0.1:9401 \
  --key '<long-random-token>' \
  --threads 12

节点在返回模板前已经完成整份证明。挖矿进程只搜索 nonce 并提交结果。模板 一次性使用,30 秒后过期;接受竞争链尖时也会立即失效。

远程挖矿进程应通过经过认证的私有网络或受防火墙限制的 TLS 端点连接。 Bearer 令牌用于认证挖矿进程,但不会加密普通 HTTP。不要把通用 RPC 监听器 直接公开到互联网。

奖励地址默认由节点控制。是否允许经过认证的挖矿进程请求自己的奖励地址,是 运营者的显式选择。远程配置与信任边界见 外部矿工

CPU 与证明容量

发布版运行的最低指令集为:

架构 必需指令
x86-64 SSE4.1 和 PCLMULQDQ
ARM64 NEON 和 PMULL

主机支持更宽的指令集时,程序会在运行时自动选择对应内核。硬件检查只确认 发布版后端可以运行,但不保证挖矿性能具有竞争力。

每个挖矿进程都从 B64 证明类别开始。只有测得的完整准备时间支持更大关系 时,才使用 B255。两类证明同一个共识陈述:

类别 关系 用户页容量
B64 m=23 最多 64 页
B255 m=24 最多 255 页

证明构建和 PoW 是按顺序执行、共用同一线程预算的全核阶段,而不是两个 彼此竞争的全核任务。在公共基础设施服务器上,应让部分 CPU 不计入 --cpu-threads,以保持操作系统和对等服务的响应能力。

网络目标平均区块间隔为 15 秒。这不是截止时间:单个区块可能更早或更晚。 证明延迟仍然重要,因为其他矿工推进链尖后,当前候选会过期。应在目标机器 上测量完整 B64 准备路径,而不是只看 CPU 型号或宣传的 vCPU 数量。

发布版最低要求和参考数据见硬件与容量性能测量

难度、奖励与确认

ASERT 调整 Poseidon2b 目标值,使平均区块间隔维持 15 秒。累计有效工作量 最大的链获胜;工作量相同时使用规范区块哈希作确定性决胜。

当前奖励取决于 State 级别,可通过以下命令查看:

sh
parano1d-cli mining

在三年开发分配期内,矿工获得每个新区块发行奖励的 90%。扣除共识规定的 State 增长费销毁后,可领取的交易费也归矿工。分配期结束后,每个新区块奖励的 100% 都支付给矿工。

本机找到区块后,余额并不会立刻具有最终性。后续有效区块会增加确认深度; 在保留的竞争窗口内,更高工作量的浅层重组仍可能替换它。

挖矿与去中心化

自主矿工不能只依靠哈希算力。它的节点必须保持最新、验证收到的工作、构建 并证明下一 State,之后 nonce 引擎才能得到有用任务。如果该节点接受入站 P2P,同一套基础设施还会中继交易和区块,并向其他节点提供同步数据。

外部挖矿进程和矿池仍然可行:一个证明节点可以服务多个 nonce 搜索进程。 因此,Parano1d 并不声称专用硬件无法存在。系统提供的更强且更精确的 性质是:专用哈希算力无法独立生成区块,也无法弥补证明节点能力不足。

区块头的精确关系见工作量证明,实现流水线 见区块生产

ParanO(1)d 技术文档共识行为以源代码为准。