区块链应用技术 课件 5.2P2P网络核心技术_第1页
区块链应用技术 课件 5.2P2P网络核心技术_第2页
区块链应用技术 课件 5.2P2P网络核心技术_第3页
区块链应用技术 课件 5.2P2P网络核心技术_第4页
区块链应用技术 课件 5.2P2P网络核心技术_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

P2P网络核心技术P2P网络核心技术1.分布式哈希表2.Kademlia协议3.Gossip协议分布式哈希表分布式哈希表的基础:

常用的数据结构——哈希表哈希表存储的数据有键(key)和值(velue)两部分:它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash)函数。如这个图所示,键为人名,值为buckets中的电话号码,bucket可以看作一个长度为16的数组。人名通过哈希函数转换为数字,数字作为buckets数组的下标。分布式哈希表:存储的键值对数据并不仅仅存在于一台电脑中,而是分布在不同的节点(电脑)中。分布式哈希表有三个特性:(1)离散性:构成系统的节点并没有任何中央式的协调机制,做到了完全的去中心化。(2)伸缩性:即使有成千上万个节点,系统仍然十分有效。加入的节点越多,网络可以提供的服务能力越强。(3)容错性:即使节点不断地加入、离开或是停止工作,系统仍能达到一定的可靠性。Kademlia协议相比于分布式哈希表协议,Kademlia协议采用的数据结构简单、路由方式实现起来足够灵活、具有比较好的性能并且安全性也较强。综合起来在各种哈希表实现中具有很强的竞争力,成了分布式哈希表中被采用最多的技术。1.如何衡量两个ID是否接近(Kademlia的距离衡量机制)Kademlia协议中采用了异或算法(XOR)作为距离算法来衡量两个ID的远近。比较两个ID时,首先把字符串的哈希值变为二进制表示。这里假设节点A的ID二进制表示为01010101,节点B的ID二进制表示为01000000,将两个ID进行异或运算(对应位置的0、1进行异或),结果为00010101,转化为十进制为25。也就是说这两个ID的距离用十进制表示为25。2.如何根据文件的哈希值得到文件存储位置信息(kademlia的路由机制)理解路由机制,可以从Kademlia中k-bucket(k-桶)出发。k-桶是Kademlia论文中提出的一个概念,一个节点会有多个k-桶,不同k-桶

的区别在于离这个节点的距离不同,每个k-桶

中存放了离节点在某个距离范围内的其他已知节点。Kademlia协议建立在上述K-桶之上,可以发起四种消息请求。(1)PING:用来测试节点是否依然在线。(2)STORE:在某个节点中存储一个键值对。(3)FIND_NODE:消息请求的接受者将返回自己K桶中离请求的节点的ID最近的K个节点。(4)FIND_VALUE:根据文件资源的KEY查找一个数据和FIND_NODE类似,如果请求接收着拥有KEY对应的文件资源则返回数据。Gossip协议 1、在HyperledgerFabric中,节点间同步数据采用的是Gossip协议,当节点因为异常缺少账本数据时,可以通过Gossip协议从邻近的节点获得账本数据,保证集群中节点账本的一致性。 2、Gossip是一种去中心化思路的分布式协议,解决集群中的数据传播和状态一致性的问题。(1)协议流程

节点A向节点K发送数据有三种方式:1、push模式:

节点A将数据(key,version,value)推送给K,K更新version比自己新的数据。2、pull模式:

节点A将数据(key,version)推送给K,K将本地version比A新的数据推送给A。3、push/pull模式:

先采用push模式更新K,然后采用pull模式更新A。(2)Gossip缺陷

由于Gossip协议中,节点只会随机向少数几个节点发送消息,消息最终是通过多个轮次的散播而到达全网的,因此使用Gossip协议会造成不可避免的消息延迟。不适合用在对实时性要求较高的场景。

G

温馨提示

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

评论

0/150

提交评论