作为整个生态链的一环,网络节点一直担任着交易确认和广播的工作。
网络节点有很多种,但也有不同的分类方法。按照最常见的一种分法,网络节点有三种:
第一种叫做完整节点 (Full node);
第二种是完整节点的变体,叫做修剪节点 (Pruning node);
第三种则不是完整节点,通常被称作 SPV 节点,也称轻量节点 (Lightweight node)。
这种分类方式基于两点差异:一是这个节点是否下载了最新最完整的比特币区块链;第二个区别,也是更为重要的一点,是该节点能否独立验证比特币的转账交易,即能否独立实现作为一个节点的基本功能。
在细说这三种节点前,有一个前提需要明确,那就是任何一种比特币节点,都需要遵守比特币的共识规则 (Consensus rules)。分散共识机制 (Distributed Consensus) 是比特币的根基之一,是所有节点必须遵守的,共识规则的细则有不少,比如下面这些:
每个区块仅能产生特定数量的比特币 (当前是 12.5 比特币/区块)。Blocks may only create a certain number of bitcoins. (Currently 12.5 BTC per block.)
在一条区块链内,任意一笔转账都不能够被二次转出 (双花,Double-spending)。Within a single block chain, a transaction output cannot be double-spent.
来源:https://en.bitcoin.it/wiki/Full_node
(下图:全球比特币完整节点的数量,截止到2017年10月30日)
接下来我们详细介绍一下这三种节点。
先来看看第一种完整节点。顾名思义,完整的比特币节点就是那些下全了最新区块链的计算设备。完整节点是比特币网络的主心骨。因为可以独立完成交易确认和广播,它是支撑着比特币转账交易的核心力量。如果没有人运行完整节点了,比特币网络便会瞬间崩塌。使用完整节点的主要包括两类人,一是独立挖矿的矿工,二是那些使用默认设置运行比特币软件 (Bitcoin core) 的用户 (比特币软件同时也是一个钱包,因此运行比特币软件的个人用户里,有不少也会用它存储比特币)。
独立挖矿的矿工需要完整的区块链账本,以便随时验证新交易。比特币软件默认会自行同步当前完整的区块链。