区块链技术之P2P网络

版权声明:

本公众号所有文章都为作者原创,

欢迎大家分享,

转载请注明出处。

通过交易、区块构建了完整的区块链数据,通过挖矿和共识机制确保比特币在没有中心化机构可以正常运营。在学习完交易、区块、区块链、挖矿、共识机制之后,区块链还需要P2P网络支撑才能真正运转。

P2P网络

区块链采用了基于互联网的P2P网络架构。P2P网络中每一个节点彼此对等,各个节点共同提供服务,不存在任何特殊节点。P2P网络中不存在任何服务器、中心化服务及层级结构。P2P网络具有天生的伸缩性、去中心化和开放的特点。

比特币被设计为一种点对点的数字现金系统,它的网络架构既是这种核心特性的反映,也是该特性的基石。去中心化控制是设计时的核心原则,它只能通过维持一种扁平化、去中心化的P2P共识网络来实现。

在比特币之外,规模最大也最成功的P2P技术应用是在文件分享领域,Napster是该领域的先锋,BitTorrent是其架构的最新演变,国内的迅雷、快播都是P2P技术的领导者。

节点类型和角色

虽然P2P网络中各个节点相关对等,但根据各个节点功能不同,各个节点会有不同的分工,以比特币为例,每个比特币节点都是路由、区块链数据库、挖矿、钱包服务的功能集合,一个全节点包含钱包、矿工、完整区块链、网络路由节点。

一些节点保有一份完整的、最新的区块链拷贝,这样的节点被称为“全节点”。全节点能够独立自主地校验所有交易,而不需借由任何外部参照。另外还有一些节点只保留了区块链的一部分,它们通过一种名为“简易支付验证(SPV)”的方式来完成交易验证,这样的节点被称为“SPV节点”,又叫“轻量级节点”。

挖矿节点通过运行在特殊硬件设备上的工作量证明(proof-of-work)算法,以相互竞争的方式创建新的区块。一些挖矿节点同时也是全节点,保有区块链的完整拷贝;还有一些参与矿池挖矿的节点是轻量级节点,它们必须依赖矿池服务器维护的全节点进行工作。

用户钱包也可以作为全节点的一部分,这在桌面比特币客户端中比较常见。当前,越来越多的用户钱包都是SPV节点,尤其是运行于诸如智能手机等资源受限设备上的比特币钱包应用。比如我们现在使用的Bither就属于这类SPV节点。

在比特币P2P协议中,除了这些主要的节点类型之外,还有一些服务器及节点也在运行着其他协议,例如特殊矿池挖矿协议、轻量级客户端访问协议等。

目前比特币主网络由大约上万个运行着不同版本比特币核心客户端(BitcoinCore)的监听节点、以及几百个运行着各类比特币P2P协议的应用(例如BitcoinJ、Libbitcoin、btcd等)的节点组成。

许多连接到比特币网络的大型公司运行着基于Bitcoin核心客户端的全节点客户端,它们具有区块链的完整拷贝及网络节点,但不具备挖矿及钱包功能。这些节点是网络中的边缘路由器(edgerouters),通过它们可以搭建其他服务,例如交易所、钱包、区块浏览器、商家支付处理(merchantpayment processing)等。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171213G02RNR00?refer=cp_1026

同媒体快讯

  • 瞬间提升文章颜值

    2018-10-15

相关快讯

扫码关注云+社区