挖矿
仅有哈希算力无法生成区块。挖矿需要 State;只有证明完成后才能开始搜索 nonce。
Parano1d 的工作量证明负责为已经证明有效的 State 转换排序。在搜索
nonce 前,区块生产者必须跟随规范链、持有 Live State、构建精确的下一
次转换,并完成递归 HistoryStep。
因此,独立生产区块的基本单元是能够生成证明的完整节点,而不是单独的哈希 挖矿工作进程。
节点和挖矿进程分别做什么
区块归属于挖矿节点。节点负责:
- 跟随并独立验证规范状态链;
- 在交易意图进入内存池前进行验证;
- 选择互不冲突的交易集;
- 固定奖励、费用、槽位写入和转换后 State 根;
- 证明与 nonce 无关的区块部分和前一终端证明;
- 验证获胜 nonce;
- 原子提交并广播完整的
{block, HistoryStep 终端证明}区块包。
Nonce 搜索可以在该进程内部运行,也可以交给 parano1d-miner。外部
挖矿进程的职责窄得多:
- 接收一份不可变的 Poseidon2b 区块头输入序列和目标值;
- 搜索 128 位 nonce 的独立取值;
- 把候选 nonce 返回节点。
挖矿进程不会收到区块体、State 见证数据或 HistoryStep 见证数据。证明完成
后,它无法替换交易、更改 State 根或修改模板。
一次区块尝试
区块生产按以下顺序进行:
- 节点等待同步完成,并满足所需的已完成身份认证的对等节点数量。
- 读取规范链尖、Live State 和内存池中可接受的交易意图。
- 选择 B64 或 B255 证明类别,并固定候选区块除 nonce 之外的全部语义 字段。
- 计算精确的槽位写入和最终 UTXO 根。
- 证明新的
HistoryStep,包括与前一终端证明的递归连续性。 - 完成的证明固定一份不可变挖矿模板。
- 内置矿工或外部挖矿进程搜索 Poseidon2b nonce。
- 节点验证 nonce、封装已准备的终端证明、原子提交区块并向对等节点 宣布。
新的规范链尖会使未完成工作过期。节点丢弃该尝试,从新的 State 重新开始;绝不 把旧证明移到不同父区块或交易集上。
对等节点只有在独立验证父区块、HistoryStep、PoW 目标值和所有共识
承诺后才接受结果。有效竞争链之间由累计工作量决定胜者。
两种挖矿模式
| 模式 | 证明构建 | Nonce 搜索 | 适合场景 |
|---|---|---|---|
| 内置 | Core 节点 | Core 节点 | GUI 钱包、单机矿工、单台服务器 |
| 外部 | Core 节点 | parano1d-miner |
独立 CPU 挖矿进程、私有挖矿网络或矿池 |
两种模式遵循同一套共识规则,生成完全相同的区块。外部挖矿只把 nonce 搜索移过 RPC 边界。
普通 --mode node 进程会验证并中继区块,但不构建挖矿模板。
使用 GUI 钱包挖矿
原生钱包管理自己的完整节点。按 F5 打开 挖矿,选择 CPU 线程预算,
再点击 开始挖矿。
节点完成同步并连接至少两个经过认证的对等节点后,挖矿才可用。活动钱包 地址接收新模板的奖励。切换活动地址会影响下一模板;已经不可变的模板保留 原奖励地址。
页面显示选中的 CPU 后端、B64/B255 就绪状态、当前挖矿状态以及本机找到的 区块。关闭行为和区块表见钱包内挖矿。
运行 Core 内置矿工
创建节点数据前,先检查实际主机:
parano1d --check-hardware
以内置矿工模式启动 Core:
parano1d --mode miner --cpu-threads 12
省略 --cpu-threads 时,使用进程可见的全部逻辑 CPU。未配置奖励地址时,
Core 使用本地钱包活动地址。也可固定一个独立的规范 bech32m 地址:
parano1d --mode miner --miner-address o1...
在另一个终端观察就绪状态和链进度:
parano1d-cli status
parano1d-cli peers
parano1d-cli mining
如果未同步或已完成身份认证的对等节点少于两个,Core 会等待,不会在孤立的本地视图上 挖矿。完整服务器和 systemd 流程见 内置挖矿。
运行外部挖矿进程
启动负责持有并证明外部挖矿模板的节点:
parano1d \
--mode extminer \
--mining-key '<long-random-token>'
让挖矿进程连接节点的本地回环 RPC:
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 级别,可通过以下命令查看:
parano1d-cli mining
在三年开发分配期内,矿工获得每个新区块发行奖励的 90%。扣除共识规定的 State 增长费销毁后,可领取的交易费也归矿工。分配期结束后,每个新区块奖励的 100% 都支付给矿工。
本机找到区块后,余额并不会立刻具有最终性。后续有效区块会增加确认深度; 在保留的竞争窗口内,更高工作量的浅层重组仍可能替换它。
挖矿与去中心化
自主矿工不能只依靠哈希算力。它的节点必须保持最新、验证收到的工作、构建 并证明下一 State,之后 nonce 引擎才能得到有用任务。如果该节点接受入站 P2P,同一套基础设施还会中继交易和区块,并向其他节点提供同步数据。
外部挖矿进程和矿池仍然可行:一个证明节点可以服务多个 nonce 搜索进程。 因此,Parano1d 并不声称专用硬件无法存在。系统提供的更强且更精确的 性质是:专用哈希算力无法独立生成区块,也无法弥补证明节点能力不足。