1 P2P网络架构比特币采用基于互联网的P2P(点对点)网络架构。P2P是指同一网络中的每一台计算机都是相互平等的,所有节点共同提供网络服务,没有任何“特殊”的节点。每个网络节点以“扁平”拓扑互连。P2P网络中没有服务器、集中式服务和分层结构。P2P节点之间相互交互和协作:每个节点对外提供服务,并使用网络中其他节点提供的服务。所以P2P网络是可靠的、去中心化的、开放的。早期的互联网是P2P网络架构的典型用例:IP网络中的所有节点都是完全平等的。今天的互联网架构具有层次结构,但IP协议仍然保留了扁平的拓扑结构。在比特币之外,最大最成功的P2P技术应用是在文件共享领域:Napster是这一领域的先驱,BitTorrent是其架构的最新演变。
比特币采用的P2P网络架构不仅仅是选择拓扑那么简单。比特币被设计为点对点的数字现金系统,其网络架构不仅是这一核心特性的反映,也是这一特性的基石。分散控制是设计的核心原则,只有保持一个扁平化、分散化的P2P共识网络才能实现。
“比特币网络”是按照比特币P2P协议运行的节点集合。除了比特币P2P协议,比特币网络还包含其他协议。例如,Stratum协议用于采矿和轻量级或移动比特币钱包。网关路由服务器提供这些协议,使用比特币P2P协议访问比特币网络,并将网络扩展到所有运行其他协议的节点。例如,Stratum服务器通过Stratum协议将所有Stratum挖掘节点连接到比特币主网络,并将Stratum协议桥接到比特币P2P协议。我们使用“扩展的比特币网络”来指包括比特币P2P协议、挖掘池挖掘协议、地层协议和其他用于连接比特币系统组件的相关协议的整体网络结构。
2节点类型及分工虽然比特币P2P网络中的所有节点都是平等的,但是根据提供的功能不同,每个节点可能会有不同的分工。每个比特币节点都是路由、区块链数据库、挖掘和钱包服务功能的集合。一个完整的节点包括四个功能,如图6-1所示:
每个节点参与整个网络的路由功能,也可能包含其他功能。每个节点参与验证和传播事务和块信息,并发现和维护与对等节点的连接。在图6-1所示的全节点用例中,名为“网络路由节点”的橙色圆圈代表这个路由功能。
一些节点保持区块链的完整和最新的副本,这样的节点被称为“完全节点”。所有节点都可以独立验证所有事务,而无需任何外部参考。还有一些节点只保留一部分区块链,它们通过一种叫做“简单支付验证(SPV)”的方法来完成交易验证。这样的节点被称为“SPV节点”和“轻量节点”。在上图所示的全节点用例中,名为“完整区块链”的蓝色圆圈代表全节点区块链数据库功能。在图6-3中,SPV节点没有这个蓝色圆圈来表示它们没有区块链的完整副本。
挖掘节点通过在特殊硬件设备上运行的工作验证算法,以竞争的方式创建新的块。一些挖掘节点也是完整节点,保留区块链的完整副本;挖掘池中参与挖掘的一些节点是轻量级节点,它们必须依赖于挖掘池服务器维护的所有节点才能工作。在全节点用例中,挖掘功能由图中名为“Miner”的黑色圆圈表示。
用户的钱包也可以作为整个节点的一部分,这在桌面比特币客户端很常见。目前越来越多的用户钱包是SPV节点,尤其是运行在智能手机等资源受限设备上的比特币钱包应用;而且这种情况越来越普遍。在图6-1中,名为“钱包”的绿色圆圈代表钱包功能。
在比特币P2P协议中,除了这些主要类型的节点之外,一些服务器和节点还在运行其他协议,如专用挖掘池挖掘协议、轻量级客户端访问协议等。
图2描述了扩展比特币网络中最常见的节点类型。
#欧亿OKEx##数字货币##比特币Supertalk #