把钱包、节点、矿工、矿池和链外支付网络画成同一个“区块链服务”,会在故障时找不到责任主体。沿合成订单的支付意图追踪:钱包选币、检查卖家与找零、签署交易;RPC 接收原始字节;网络与本地交易池处理传播和策略;候选块生产者选择交易;独立全节点按共识规则验证块并更新持久化状态。这个顺序不意味着每次提交都成功走到最后一步。

先修区块链(06):Bitcoin 原始交易如何花费、找零和付费到区块链(12):全节点、裁剪节点与轻客户端查的不是同一件事。钱包可与节点同机,也可以只连接远端 RPC;系统部署关系不改变职责分界。开发 RPC 不应默认开放给公网,钱包密钥不应仅因想查询区块而进入节点进程。

flowchart LR
  W[钱包: 密钥/描述符、选币/PSBT] -->|原始交易| R[RPC 边界]
  R --> M[P2P + mempool: 接收策略/临时视图]
  M --> T[挖矿模板: 候选交易和 coinbase]
  P[矿池: 协调工作分配及结算] --> K[矿工: 搜索有效 PoW]
  T --> K
  K --> N[P2P: 发布候选块]
  N --> V[验证: 头/交易/脚本/UTXO 规则]
  V --> S[chainstate + 区块存储: 规范历史]
  S -->|查询/确认| R
  L[Lightning 等链外网络: 通道状态] -->|必要时结算或退出| R
模块 输入和持久化对象 故障时必须分清
钱包 描述符/私钥、派生路径、未确认视图与备份 签了但没广播;找零在外部地址丢失
mempool/P2P 网络传来的交易与临时池状态 本地拒绝或尚未传播,不等于共识拒绝
模板/矿工/矿池 当前有效链状态、交易候选、工作份额 模板过期、工作无效或矿池结算失败不等于用户交易无效
区块验证/chainstate 验证过的块、可花费状态、持久化索引 分支重组需撤销,存储损坏需重建或校验
RPC/链外通道 读写入口、独立通道状态 服务不可用、通道退出与链上终局各有假设

沿候选块再走一遍:生产者根据已知链头组装模板并领取符合规则的奖励;矿工取得满足目标的头后广播,其他全节点并不因为它来自知名矿池就跳过校验。接收节点检查头、块体、交易与 UTXO 转移,连接新链状态;出现更强有效分支时执行回滚与重新连接。区块存储和 chainstate 不是同一份对象:前者提供历史字节,后者服务于当前未花费验证;钱包余额又只是依据钱包可识别输出的派生视图。

两次持久化与一次撤销

假设钱包选择价值 100 的 UTXO,构造卖家 70、找零 29、手续费 1 的交易。钱包应在持久记录中保存选币与找零描述符,离线签名者只需得到完成签名所需的被花输出信息,不应获得其他账户私钥。RPC 返回交易 ID 最多表明接口处理了提交请求;一个节点的 mempool 是临时且受本地策略约束的候选视图,并非所有节点共有的数据库。拒绝是费用策略、传播冲突还是脚本/共识不合法,应按冻结客户端的返回与节点日志区分。钱包重新发同一交易时,不应把新响应数量算成新增卖家收款。

接着考虑候选区块:模板选择当前节点可用的交易并生成 coinbase 等块级信息,矿池可以协调多个矿工搜索哈希,但计算份额不授予绕过区块验证的权力。其他节点必须先验证头及祖先链,再校验块体中每笔交易的输入是否在处理到该笔时可花费,最后更新本地 UTXO 集。Bitcoin 块头承诺交易 Merkle 根,不能从它直接读取一份完整 UTXO 状态根;新节点要通过同步验证或明确受信的快照流程建立自己的状态。链头改换时,节点需要撤销旧分支所产生和花费的输出、接入新分支,钱包和订单索引也应重新计算确认而非只增加高度。

Lightning 等支付网络的付款状态保存在通道参与者处,链上只看得到必要的通道资金与争议交易;矿工不知道订单是否实际交付,池运营者也不能代替钱包管理可撤销旧通道状态。完整链、裁剪节点与仅看头和 Merkle 证明的轻客户端各有不同的历史/校验可用性;这些部署差异必须在恢复与重组测试中分别记录。本环境还没有 Core 的 RPC、chainstate 磁盘及双节点测试,以上是需要用真实组件反证的责任图。

练习一:钱包显示 txid,远端 RPC 可查,能宣布订单结算吗?答案:尚须纳入的块、后续链选择、执行结果以及卖家交付/对账策略。练习二:停掉矿池接口后,全节点还能检查他人广播的有效块吗?答案:节点验证与矿池协调是不同职责;前提是它仍与网络同步、存储与规则正常。本地未启动 Core,这一结论是架构推理,不是停机实测。

此篇重在模块输入、状态、失败分支的待核实现研究框架,没有冻结 Core 源码 SHA,也没有真实 RPC、磁盘文件和模板证据,架构验收 NOT_RUN。可迁移原则:沿一条请求分别列控制面、验证面、持久化面,再追撤销路径。参考入口:Core 源码、Core 钱包/RPC 文档、BIP 仓库(均待读冻结版);导航:区块链(12):全节点、裁剪节点与轻客户端查的不是同一件事 · 13 · 区块链(14):PBFT 的法定集合为何需要换主证明。