区块链--P2P网络模块


比特币的网络基础就是Peer to Peer,即P2P,翻译为点对点,专业机构一般翻译为对等计算。P2P网络中的所有参与者,可以是提供服务(server),也可以是资源使用者(client)。这种技术,上世纪70年代就已经出现了,由于当时的硬件条件(网络带宽和传播速度)限制,随着互联网的发展,P2P得到了迅速的发展。
1、P2P网络原理
从计算模式上来说,P2P打破了传统的Client/Server (C/S)模式,在网络中的每个结点的地位都是对等的。每个结点既充当服务器,为其他结点提供服务,同时也享用其他结点提供的服务。

P2P的特点:非中心化、可扩展性、健壮性、高性价比、隐私保护、负载均衡。
P2P的发展面临的问题: 知识产权保护、网络病毒传播、网络带宽问题、安全问题。
P2P的应用分类:P2P分布式存储系统、P2P计算能力的共享、P2P协同工作环境、P2P应用层组播、Internet间接访问基础结构、P2P流媒体技术、P2P搜索技术。
根据结构关系可以将P2P系统细分为四种拓扑形式:
  • 中心化拓扑(Centralized Topology);
  • 全分布式非结构化拓扑(Decentralized Unstructured Topology);
  • 全分布式结构化拓扑(Decentralized Structured Topology,也称作DHT网络);
  • 半分布式拓扑(Partially Decentralized Topology)。
中心化拓扑:即存在一个中心节点保存了其他所有节点的索引信息,索引信息一般包括节点 IP 地址、端口、节点资源等

全分布式非结构化拓扑:
移除了中心节点,在 P2P 节点之间建立随机网络,就是在一个新加入节点和 P2P 网络中的某个节点间随机建立连接通道,从而形成一个随机拓扑结构。比特币采用的是该网络结构

全分布式结构化拓扑:将所有节点按照某种结构进行有序组织,比如形成一个环状网络或树状网络。而结构化网络的具体实现上,普遍都是基于 DHT(Distributed Hash Table,分布式哈希表) 算法思想。比如以太坊网络的实现算法Kademlia。

半分布式拓扑:吸取了中心化结构和全分布式非结构化拓扑的优点,选择性能较高(处理、存储、带宽等方面性能)的结点作为超级结点(英文表达为SuperNodes或者Hubs),在各个超级结点上存储了系统中其他部分结点的信息,发现算法仅在超级结点之间转发,超级结点再将查询请求转发给适当的叶子结点。半分布式结构也是一个层次式结构,超级结点之间构成一个高速转发层,超级结点和所负责的普通结点构成若干层次。EOS采用的就是该网络结构。

在实际应用中,每种拓扑结构的P2P网络都有其优缺点,下表从可扩展性、可靠性、可维护性、发现算法的效率、复杂查询等方面比较了这四种拓扑结构的综合性能。
比较标准/拓扑结构
中心化拓扑
全分布式非结构化拓扑
全分布式结构化拓扑
半分布式拓扑
可扩展性
可靠性
可维护性
最好
最好
发现算法效率
最高
复杂查询
支持
支持
不支持
支持

2、比特币的P2P网络
比特币网络中的节点具有功能有:路由、钱包、挖矿、区块链数据库。所有的节点都具有路由功能,参与校验和广播交易及区块信息,且会发现和维持与其他节点的连接。
比特币网络中节点的分类:
全节点,是包含了完整的区块链数据库;
SPV节点或轻节点(Lightweight Node),只包含了区块链数据库中的区块头;除了比特币核心钱包是全节点外,其余大部分钱包都是轻节点;
挖矿节点则通过解决工作量证明(PoW)算法问题,与其他挖矿节点相互竞争创建新区块,按照是否集中挖矿,可以分为独立矿工和矿池;矿池的中心节点是一个矿池服务器,其他挖矿节点全部连接到矿池服务器,采用的是矿池挖矿协议,主流的挖矿协议有Stratum协议,矿池的中心节点作为全节点与比特币主网按照比特币协议通信。比特币矿工挖矿目前来说主要是为了挖矿激励,矿工创建新区块,需要向全网广播,并获得全网认可奖励才有效,为了达到高的传播效率,矿工之间传播区块采用的专门传输网络是比特币传播网络或比特币中继网络(Bitcoin Relay Network)。

不同结构的 P2P 网络,会有不同的优点和缺点,结合不同的使用场景,选择最优的P2P网络结构来满足不同的要求;与开发语言没有关系,可以通过多种开发语言来实现。P2P网络中不同节点也可以用不同开发语言的具体实现,比如,比特币就有用 C++ 实现的 Bitcoin Core,还有用 Java 实现的 BitcoinJ;以太坊也有用 Go 语言实现的 go-ethereum,也有用 C++ 实现的 go-ethereum,还有用 Java 实现的 Ethereum(J)。


参考文献:



猜你喜欢

转载自blog.csdn.net/mengzaishenqiu/article/details/80366361