《区块链金融》课件 第2章 网络结构与通信机制_第1页
《区块链金融》课件 第2章 网络结构与通信机制_第2页
《区块链金融》课件 第2章 网络结构与通信机制_第3页
《区块链金融》课件 第2章 网络结构与通信机制_第4页
《区块链金融》课件 第2章 网络结构与通信机制_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微课视频版区块链金融第2章网络结构与通信机制目录01.P2P网络结构02.通信机制P2P网络结构PART01第2章网络结构与通信机制区块链的网络结构采用P2P(PeertoPeer)形式。P2P网络,也称对等网或“端到端”网络,是一种在对等者之间分配任务和工作负载的分布式应用架构,节点之间地位平等,没有中心节点,没有服务器系统。P2P引导网络计算模式从集中式向分布式偏移,即网络应用的核心从中央服务器向网络边缘的终端设备扩散。2.1P2P网络结构2.1.1P2P简介第2章网络结构与通信机制1.P2P起源P2P技源自加利福尼亚大学伯克利分校(UniversityofCalifornia,Berkeley)开展的寻找外星生命的SETI@Home研究计划。通过一个屏保程序,利用大约100万台CPU的空闲时间,以P2P网络架构分析世界上最大的射电望远镜获得的数据。P2P技术串联所有参与研究计划者闲置的计算机运行庞大复杂的运算,再把结果传到SETI@Home总部。2.1.1P2P简介第2章网络结构与通信机制2.P2P概念P2P网络是由若干互联协作的计算机节点构成的分布式系统,这些节点能够为了共享内容、CPU时间、存储或者带宽等资源而自我形成一定的网络拓扑结构,在适应节点数目的变化和失效的同时维持可以接受的链接能力和性能,并且不需要一个全局服务器或者权威的中介支持。P2P系统至少具有如下特征之一:一是系统依存于边缘化(非中央式服务器)设备的主动协作,每个成员直接从其他成员而不是从服务器的参与中受益;二是系统成员既是服务器又是客户端;三是系统应用的全部用户构成一个虚拟或实际的群体。2.1.1P2P简介第2章网络结构与通信机制2.P2P概念P2P网络采用扁平式拓扑结构,各节点地位相同,没有中心化服务器,每个节点都同等地参与路由、校验、广播等功能。P2P技术的主要代表形式是在应用层上基于P2P网络协议的客户端软件,P2P网络架构是区块链实现去中心化的网络基础。2.1.2P2P网络分类第2章网络结构与通信机制P2P网络可以根据覆盖层网络(OverlayNetwork)是否能够保持特定的拓扑结构,分为结构化P2P网络和非结构化P2P网络两类。结构化P2P通过下层查找服务,维护节点间逻辑的、确定的拓扑结构,对参与节点和发布数据项提供可控的管理,利用全局公认的策略定位数据项。非结构化P2P是指节点到节点之间互有连接,彼此形成无规则的网状拓扑结构,节点需要请求某资源节点时,通常以广播机制寻找。OverlayNetwork是建立在已有物理网络之上的一个由多节点和逻辑链路构成的虚拟拓扑网络结构,它基于物理网络基本的传输功能建立,通过一个虚拟的网络拓扑结构将网络节点重新组织起来。2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络非结构化P2P网络可以细分为:分布/集中目录式P2P;纯分散式P2P;混合式P2P。2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(1)分布/集中目录式P2P网络分布/集中目录式结构包括中心服务器和网络节点两种角色,网络结构如图2-1所示。图2-1集中目录式P2P网络结构2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(1)分布/集中目录式P2P网络各节点向中心服务器注册自身信息(名称、地址、资源等),一台或多台中心服务器负责管理P2P网络各节点,建立索引机制。节点发布可供下载资源,所有提供下载的资源都存储在提供该资源的节点上。中心服务器与节点间以及各节点之间都可以直接建立连接。查询节点根据中心服务器中信息的查询结果、网络流量和延迟等信息选择与定位其它节点,并直接建立连接,资源下载过程不经过中心服务器。服务器功能被弱化,仅用于辅助节点间建立连接,连接后,服务器不再起作用。2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(1)分布/集中目录式P2P网络优点:网络易于管理,易于发现网络节点,查找和更新共享资源非常方便,查找效率高;缺点:网络结构存在单点故障及性能瓶颈。网络规模越大,中心节点维护成本越高。典型应用:Napster及BT。2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(1)分布/集中目录式P2P网络以Napster为例,介绍分布/集中目录式P2P网络的工作过程。Napster:多台中心服务器的分布目录式P2P网络。服务器使各分散节点能够彼此联系,建立在线节点共享资源的目录索引,创建连接,服务器不存储文件。节点加入并连接Napster后,将IP地址、端口号、共享资源及资源存放路径等信息发送给中心服务器,建立目录索引。节点把自己的共享资源存储在本地共享目录。各节点一旦建立联系,便可互相共享对方资源。客户端搜索并下载文件的整个过程如图2-2所示。2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(1)分布/集中目录式P2P网络以Napster为例,介绍分布/集中目录式P2P网络的工作过程。图2-2Napster下载文件流程2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(2)纯分散式P2P网络也称广播式P2P结构,没有服务器,P2P节点间建立随机网络。一个新加入节点和网络中某个节点间随机建立连接信道。拓扑如图2-3所示。新节点加入网络方法:随机选择一个已存在的节点建立邻接关系。图2-3纯分散式P2P网络拓扑结构2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(2)纯分散式P2P网络在分散式P2P中,节点通过与相邻节点之间的连接遍历整个网络拓扑。节点功能相似,通过基于对等网协议的客户端软件搜索网络中存在的对等节点,在节点之间直接建立连接。节点之间的内容查询和内容共享都是直接通过相邻节点广播接力传递,同时每个节点还会记录搜索轨迹,以防止搜索环路的产生。Gnutella和Freenet是纯分散式P2P的典型应用。2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(2)纯分散式P2P网络以Gnutella网络为例,系统的每个连接节点既是服务器又是客户端,一个新节点只要连上此网络内的任一节点,便可与此网络进行资源互享。一个新节点首先通过访问系统提供的特殊节点的“索引”机制获得某一活动节点的IP地址、端口号等信息,然后请求与之建立一个TCP/IP连接,接着该节点主动搜索系统上的其它节点,找到与自己相邻的节点。2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(2)纯分散式P2P网络在Gnutella网络中,节点查找共享资源时:首先向自己的邻接节点发送查询字符,其他节点收到查询字符后,确认本地节点是否有查询请求的共享资源,如果有,则原路返回一个查询响应字符。查询节点收到响应字符后,与响应节点建立TCP连接,通过HTTP协议从响应节点中下载自己需要的资源。无论本地节点是否存在符合查询请求的共享资源,其他节点都会将该查询通过扩散方式继续传递,直至查询字段中TTL(TimeToLive)值等于0,转发结束。2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(2)纯分散式P2P网络优点:用户可以自己设定规则和建立自己的网络环境,可以在Internet下有效地工作,也可以搭建在LAN上,解决了网络结构中心化的问题,扩展性和容错性较好。缺点:网络没有中心管理者,节点难以发现,由于以泛洪法实现资源检索,占用系统大量带宽,不易管理,安全性较差。2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(3)混合式P2P网络混合式P2P网络结构综合了纯分散式P2P网络和集中目录式P2P网络的优势,将网络节点按能力(如计算能力、内存大小、连接带宽、网络滞留时间等)不同分为3类:普通节点、索引节点和搜索节点。①普通节点不具有任何特殊功能的用户节点。2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(3)混合式P2P网络②索引节点索引节点类似搜索引擎,保存整个网络中可以利用的搜索节点信息,并搜集节点状态信息,维护整个网络的结构。连接速度快、内存大的节点可以作为索引节点。③搜索节点处理普通节点的搜索请求,搜索文件列表。2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(3)混合式P2P网络搜索节点与其临近的多个普通节点之间构成一个局部的“自治域”,“自治域”内采用集中目录式的P2P结构,不同“自治域”之间再通过纯分散式P2P模式将搜索节点相连,构成分布式的P2P网络。一个新的普通节点加入后,先选择一个搜索节点连接,该搜索节点再推送其他搜索节点列表给新加入的普通节点。2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(3)混合式P2P网络搜索网络资源时,普通节点通过索引节点获得可用搜索节点信息,之后普通节点就和获得的搜索节点连接通信。根据搜索请求,如果和普通节点直接连接的搜索节点查询结果达到预设的个数,就停止;否则就向另外可用的搜索节点发出请求,如果查询结果数量还不够,就继续向外快速发散,直到所有的搜索节点被搜索到为止。若所有的搜索节点都被访问过,就意味着网络上所有的节点都被搜索到了。2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(3)混合式P2P网络由于普通节点的资源搜索先在本地所属的“自治域”内进行,只有查询结果不符合需求时,再通过搜索节点之间进行有限的泛洪。这种搜索方式可以避免大规模泛洪广播存在的问题。在实际应用中,混合式P2P结构相对灵活且有效,目前较多的应用场景基于混合式P2P结构实现,比如比特币网络。2.1.2P2P网络分类第2章网络结构与通信机制1.非结构化P2P网络(3)混合式P2P网络非结构型P2P网络本质上是一种随机网络,有三个优点:一是系统易于构建,每个新加入节点可以从中心节点得到一个随机节点列表,也可以采用随机走的方式得到一定数目的随机节点,直接与之建立连接即可;二是工作机制相对简单,节点不需要知道整体拓扑结构;三是拓扑结构相对健壮,可扩展性较好。2.1.2P2P网络分类第2章网络结构与通信机制2.结构化P2P网络结构化P2P网络:节点与节点之间互有连接,彼此形成特定规则的拓扑结构,节点需要查询资源时,依拓扑结构规则寻找。结构化与非结构化的区别:结构化网络将所有节点按照某种结构进行有序组织,每个节点所维护的邻居按照这种结构组织起来,以利于快速查询。结构化P2P是一种采用纯分布式的消息传递机制和根据关键字进行查找的定位服务,主流技术是分布式哈希表(DistributedHashTable,DHT)。2.1.2P2P网络分类第2章网络结构与通信机制2.结构化P2P网络DHT是一种环形拓扑结构,实现方式多样,但结构相同。在环形结构里,每个节点具有一个唯一的节点标识(NodeID),NodeID是一个128位的哈希值。每个节点在路由表里保存了其他前驱、后继节点的NodeID,取消了泛洪算法,用较少的路由信息就可以有效地到达目标节点。DHT的技术实现包括Chord、Pastry、CAN、Kademlia等算法。Kademlia是以太坊网络的实现算法,很多常用的P2P应用如BitTorrent、电驴等也使用了Kademlia。2.1.3区块链的P2P结构第2章网络结构与通信机制区块链平台选择完全分布式且可容忍单点故障的P2P协议作为网络传输协议。每个节点均拥有路由发现、广播交易、广播区块、发现新节点等功能。区块链的网络结构是通过客户端软件构建在现有物理网络上、采用P2P形式的虚拟网络结构。在传输层调用TCP/UDP协议进行节点间通信。P2P是区块链连接各组成节点的网络通信技术。拓扑结构如图2-5所示。图2-5区块链拓扑结构2.1.3区块链的P2P结构第2章网络结构与通信机制1.节点类型按照节点存储数据量的不同,节点可分为全节点(FullNode,FN)和轻节点(LightNode,LN)两种类型,如图2-5所示。图2-5区块链拓扑结构2.1.3区块链的P2P结构第2章网络结构与通信机制1.节点类型全节点就是全数量节点,保存了所有区块的全部数据,能够独立地完成区块有效性及交易数据的验证和查询,但存储空间成本较高,目前存储全节点大概需要几百GB空间,且节点之间需要时时同步信息。轻节点仅保存所有区块的头部数据,节省存储空间,所需存储空间大约是全节点的1/1000,适合移动设备或存储资源不足的节点采用,可以通过“简易支付验证”完成数据的校验功能。2.1.3区块链的P2P结构第2章网络结构与通信机制2.节点接入区块链的组织形式不同,节点加入的方式也各有不同。联盟链及私有链的加入需要关键节点的验证通过,而公有链的加入相对简单。下面以比特币为例,介绍节点加入的方式。比特币是一个开放的网络,只要能够接入Internet,下载比特币客户端软件就能成为一个新节点。新节点必须与至少一个比特币网络中存在的节点建立连接,才能同步区块数据。2.1.3区块链的P2P结构第2章网络结构与通信机制2.节点接入新节点接入比特币网络有两种方法:(1)DNS种子节点DNS-seed,又称为DNS种子。比特币客户端软件自带一些种子节点,DNS种子提供比特币节点的IP地址列表,通过DNS查询找到这些域名所对应的IP地址即可。(2)硬编码节点在比特币代码中,静态写入了一些节点的IP地址,新节点通过连接这些IP地址接入比特币网络。2.1.3区块链的P2P结构第2章网络结构与通信机制3.节点建立连接(1)握手:新节点与发现的有效节点进行初始“握手”。新节点发送一条包含基本认证内容的Version消息,开始“握手”通信过程。(2)建立连接:为保证新加入节点的连接稳定,新节点需要建立更多的连接,使节点在网络中被更多节点接受。(3)交换“区块清单”:如果新加入节点作为全节点存在,执行该步骤。因为新节点仅包含静态植入客户端中的创世区块,所以在连接到其他节点后,需要构建完整的区块链。通信机制PART022.2通信机制第2章网络结构与通信机制区块链的传输方式是基于IP的全网广播机制。全网广播机制就是,节点首先向邻接节点广播,邻接节点收到广播消息后,再继续向自己的邻接节点广播,以此类推,将消息广播到整个网络,这种广播方法也称为泛洪机制。在区块链中,当一个节点产生交易或生成区块时,节点将新交易数据向与其相连的一个或多个节点发送,接收数据的节点再依次向其连接节点传输,直至扩散至全网。2.2.1P2P信息传播方法第2章网络结构与通信机制1.基于多播树的传播多播是点对多点的数据通信方式。为了使多播技术满足实时通信的需求,最初在网络层引入多播树(MulticastingTree,MT)的概念。多播树是覆盖所有多播组成员的一棵生成树,所有节点都被组织在一棵树中,构造出一棵总传输开销最小的生成树,树根只有子节点,树叶只有父节点,其他节点既有子节点,也有父节点,信息从树根节点沿树枝传输。2.2.1P2P信息传播方法第2章网络结构与通信机制1.基于多播树的传播随着Internet以及对等网的发展,应用层多播(ApplicationLevelMulticast)技术出现。应用层实现多播有两种方案:应用层多播和Overlay多播。应用层多播是在纯分散式P2P网络结构中建立多播树,多播的功能由终端节点来完成。Overlay多播是在集中目录式P2P网络结构或混合式P2P网络结构上建立多播树,多播的功能由终端节点和代理节点共同完成。基于Internet的应用层多播,不需要对Internet结构进行改变,很容易部署。2.2.1P2P信息传播方法第2章网络结构与通信机制1.基于多播树的传播以Gnutella为例,分析多播树生成过程。Gnutella是典型的纯分散式无结构P2P网络。在图2-6中,节点A希望传播信息到其它多个节点。A节点作为传输的发起者,将成为多播树的根节点。图2-6Gnutella网络

多播树生成过程2.2.1P2P信息传播方法第2章网络结构与通信机制1.基于多播树的传播在构建多播树过程中,树的根节点就是源节点A,子节点从父节点获取数据,节点的请求沿着树根向下遍历,直到找到具备这种能力的节点,构建组播树。如果某节点有多个邻居节点,有可能接收来自多个邻接节点的Child(n)请求信息。Gnutella生成多播树的原则是先到先接受,如果某个节点接收来自多个邻接节点的Child(n)请求信息,该节点将接受最先到达的请求。2.2.1P2P信息传播方法第2章网络结构与通信机制2.基于Gossip协议的传播(1)Gossip算法目标目标:在一定网络结构下,采用某种邻接选择算法和信息交互方式,使得在较短时间、消耗较少通信开销的情况下,将任意节点上的消息传播到整个网络。2.2.1P2P信息传播方法第2章网络结构与通信机制2.基于Gossip协议的传播(2)Gossip协议执行步骤①源节点首先生成查询信息,初始化生存周期TTL(假定TTL=6s)。②随机选择扇出(Fan-Out)节点的个数进行消息传播(假定Fan-Out=6,即每次最多往6个邻接节点传播)。③接收节点检查TTL,若TTL>0,选取Fan-Out个邻接节点进行消息的传播,并令TTL=TTL-1。每次传播消息都选择尚未发送过的节点进行。④节点只接收消息,不反馈结果。⑤收到消息的节点不再往发送节点传播,即如果A→B,那么B不再发给A;⑥邻接节点收到消息,检查邻接表中是否有与目标节点交互历史:有,返回相关信息给源节点;没有,将消息传递给邻接节点的邻接节点,即重复②~⑥;⑦这样反复递归直到找到目标节点,或者TTL=0,消息无效被丢弃。2.2.1P2P信息传播方法第2章网络结构与通信机制2.基于Gossip协议的传播(2)Gossip协议执行步骤调节三个参数保证Gossip算法的可靠性:每个进程存储接收消息的缓冲区大小B;生存周期TTL;每次随机选择的Fan-Out。Gossip协议的消息传播和扩散过程需要一定的时间,在分布式系统下,无法保证某个时刻所有节点都收到消息,有的节点因宕机而重启,有新节点刚刚加入,但经过一段时间后,理论上最终所有节点都会收到消息。因此,本质上Gossip可以看作是一个一致性协议。2.2.1P2P信息传播方法第2章网络结构与通信机制2.基于Gossip协议的传播(3)Gossip协议传播方式①Anti-Entropy反熵传播是以固定概率传播所有数据,也称为SimpleEpidemics(SImodel)模型。节点有两种状态:Suspective(病原)和Infective(感染)。状态为Suspective的节点表示没有收到来自其他节点的更新数据;状态为Infective的节点表示收到来自其他节点的数据更新,并会将更新数据传播给其他节点。2.2.1P2P信息传播方法第2章网络结构与通信机制2.基于Gossip协议的传播(3)Gossip协议传播方式①Anti-EntropyAnti-Entropy的工作方式:

每个节点周期性地随机选择其他节点,相互交换自己的数据来保持节点间数据的一致性。

但是每次节点两两交换数据会增加信道开销,带来通信负担。这种传播方式比较适用于新加入节点的初始化。2.2.1P2P信息传播方法第2章网络结构与通信机制2.基于Gossip协议的传播(3)Gossip协议传播方式②Rumor-Mongering谣言传播:以固定概率仅传播新到达的数据,也称为ComplexEpidemics(SIRmodel)模型。三种状态节点:Suspective(病原)、Infective(感染)和Removed(移除)。前两种节点状态的含义和反熵传播一致。Removed节点:已经接收到来自其他节点的数据更新,但是并不会将这个更新传播给其他节点。2.2.1P2P信息传播方法第2章网络结构与通信机制2.基于Gossip协议的传播(3)Gossip协议传播方式②Rumor-Mongering工作方式:当某个节点有新消息,变成Infective状态,并将更新数据向其他节点发送,直到所有节点都收到更新数据。但是消息在某个时间点之后会被标记为Removed状态,使得该消息不会被传播。由于节点之间只相互交换更新数据,大大减少信道开销,但有可能导致更新数据不会传播到所有节点,造成数据不一致。比较适用于节点间数据增量同步。为了在通信开销和可靠性之间取得折中,实际应用中会结合使用这两种方法。2.2.1P2P信息传播方法第2章网络结构与通信机制2.基于Gossip协议的传播(4)Gossip协议通信方式节点间存在3种通信方式:推送模式(Push)、拉取模式(Pull)和推/拉模式(Push/Pull)。①基于Push的方式发起信息交换的节点A随机选择邻接节点B,将自己的信息(Key、Value、Version)发送给节点B,节点B收到信息后,更新比自己新的数据。2.2.1P2P信息传播方法第2章网络结构与通信机制2.基于Gossip协议的传播(4)Gossip协议通信方式节点间存在3种通信方式:推送模式(Push)、拉取模式(Pull)和推/拉模式(Push/Pull)。②基于Pull的方式发起信息交换的节点A随机选择邻接节点B,仅将自己的信息(Key、Version)发送给节点B,节点B将本地比节点A新的数据(Key、Value、Version)发送给节点A,节点A收到信息后更新。2.2.1P2P信息传播方法第2章网络结构与通信机制2.基于Gossip协议的传播(4)Gossip协议通信方式节点间存在3种通信方式:推送模式(Push)、拉取模式(Pull)和推/拉模式(Push/Pull)。③基于Push/Pull混合的方式与Pull方式类似。在Pull方式的基础上增加了一步,节点A再将本地比节点B新的信息发送给节点B,节点B收到信息后更新。2.2.1P2P信息传播方法第2章网络结构与通信机制2.基于Gossip协议的传播(4)Gossip协议通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论