
先分清节点与挖矿的职责
比特币挖矿搭节点相关术语如何理解,可以从“谁接收数据、谁组织区块、谁计算哈希”入手。节点连接网络并验证数据;挖矿软件组织候选区块;计算设备反复尝试满足工作量证明条件。理解这些职责,比把所有组件都叫作“矿机”更准确。
Bitcoin Developer Guides的挖矿说明展示了这种协作:bitcoind提供网络数据,挖矿软件生成任务,ASIC执行哈希计算,成功的区块再经节点广播。ASIC是专用集成电路,在这里承担专门的计算任务。搭建节点与参与挖矿因此属于不同工作。

区块头、nonce与目标值
区块头包含连接前一区块和概括本区块交易等信息,是挖矿计算的对象。nonce是其中可调整的字段;extra nonce位于coinbase交易中,改变它会间接改变区块头里的默克尔根,从而扩展可尝试的输入。

coinbase交易是区块中的特殊交易,此处的名称不指交易平台。默克尔根可理解为按树形哈希结构形成的交易摘要。目标值则是判断哈希是否合格的门槛:目标越小,满足条件越难。算力表示尝试哈希的速度,不表示节点验证规则的能力。
独立挖矿、矿池与份额
独立挖矿由矿工自行组织出块工作;矿池把多个参与者的计算工作协调起来。矿池份额,即share,是符合矿池要求的计算结果,用于衡量提交的工作。
份额门槛通常比网络出块门槛宽松,所以提交一个有效份额不等于产生一个有效区块。理解相关界面时,应分别看“矿池接受的工作”和“网络接受的区块”,不能将两者数量混为一谈。
RPC与Stratum适用于什么环节
RPC是软件调用另一程序功能的接口方式。getblocktemplate用于获取构造候选区块所需的信息;Stratum用于矿池与挖矿端之间的任务通信。前者侧重区块模板,后者侧重挖矿协作。具体能否选择交易,需要结合协议版本和实现判断。
以太坊术语能否直接套用
ethereum.org的节点与客户端说明区分了客户端软件和运行中的节点,并介绍执行客户端、共识客户端与可另行加入的验证者软件。这有助于理解“运行节点”和“承担出块职责”之间的区别,但其双客户端架构及权益证明角色不能直接套用到比特币。
常见问题是:装好节点软件是否就开始挖矿?节点验证与挖矿计算是不同环节,单纯运行节点不会自动完成上述挖矿流程。阅读搭建说明时,应先确认所属网络,再确认讨论的是客户端、验证职责、存储方式还是计算设备。