虽然在比特币网络中的节点是平等的,但基于它们所支持的功能,它们可能充当了不同的角色。一个比特币节点是一系列功能的集合,包括:钱包、矿工、区块链数据库、路由节点。一个完全节点拥有全部4个功能,如图6.1所示。
图6.1 比特币网络节点,拥有所有4项功能
所有节点均带有路由功能,从而能够加入网络,当然也可能包含其他功能。所有节点验证并传播交易和区块,发现并维护与其他节点的连接。在完全节点的例子中(见图6.1),路由功能被称为“网络路由节点”。
有些节点被称为完全节点,它们维护着一份完整的最新区块链副本。完全节点可以不依赖外部而自主权威地验证任何交易。而另一些节点只维护区块链的一个子集,它们验证交易时需要用到一种叫作简化支付验证(Simplified Payment Verification,简称SPV)的方法,这些节点也被称为SPV或轻量级节点。在完全节点的示例图中,完全节点的区块链数据库功能被称为“完全区块链”。在图6.3中,SPV节点没有区块链的全量副本。
挖矿节点采用特殊的硬件来求解工作量证明算法,它们通过竞争的方式创建新的区块。某些挖矿节点本身就是完全节点,维护一个完整的区块链副本,而另外一些则是轻量级节点,它们加入矿池,依赖矿池服务器来维护完全节点功能。在完全节点中,挖矿功能被称为“矿工”。
用户钱包可以是完全节点的一部分,这在桌面比特币客户端中比较常见。越来越多的用户钱包,特别是在类似智能手机等资源有限的设备上运行的钱包软件,则是SPV节点。钱包功能在图6.1中标注为“钱包”。
除了运行比特币P2P协议的主要节点类型,网络上还有一些服务器和节点运行其他协议,比如专业矿池协议、轻量级客户端访问协议等。
图6.2显示了在扩展比特币网络上最常见的几种协议类型。
图6.2 在扩展比特币网络中不同类型的节点
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。