版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Gossip协议:“八卦版”区块链通信协议编制仅供参考审核批准生效日期地址: 电话:传真: 邮编:随着比特币等数字加密货币的兴起,区块链技术逐渐升温,霎时间,各种区块链技术落地场景应运而生。但是关于区块链技术本身,“去中心化”、“数据不可篡改”、“数据溯源”、“共识机制”等词语散落在大众的脑海中。鉴于区块链的分布式架构,第一个要解决的问题便是在通信中如何保证信息的一致性,如果分布式集群的处理结果不能得到一致性的保障,那么建立在其上的任何业务也就无法正常运行。广为人知的Gossip协议在节点间的信息同步问题中,便能够发挥巨大的作用。CAP原理指出,分布式计算系统中不可能同时确保一致性(Consi
2、stency)、可用性(Availability)、分区容错性(Partition Tolerance),因此,在设计系统时往往需要弱化对某个特性的支持。Gossip协议是什么Gossip协议就是为一些弱化了一致性的应用场景设计、用来实现节点间的信息同步,解决分布式架构中的信息一致性问题。Gossip 协议,又称“八卦”协议,用于系统内节点之间的相互通信,就是模拟人类传播八卦的方式而产生的,类似于社交网络消息传播方式或者是流行性疾病的传染方式。Gossip 是以数学为基础、具有扎实理论分析基础的去中心化分布式通讯协议,即系统内节点之间相互通信的通信机制。Gossip协议可类比八卦新闻在社交网络
3、中的传播。最初只有一个或者少数几个人知道某个八卦新闻,得知该八卦新闻的人都在自己的好友圈转发,虽然每个人的好友数量有限,但该八卦新闻却能够在社交网络中快速发酵。简单来说,在一个网络中,每个节点都随机地和其他节点进行通信,当一个节点要发送消息时,该节点随机地选择对等的节点并发送消息,这些节点收到消息后将重复同样的过程,再将消息转发给网络中其他随机选择的对等节点,最终所有节点的状态都能够达成一致。要进行“谣言”传播,首先需要有种子节点,种子节点经过一定时间间隔都会随机向其他节点发送自己所拥有的节点列表以及需要传播的消息。任何新加入的节点,通过这样的传播便很快地被整个网络获取。在最开始,并不需要将信
4、息传递给所有的节点,但随着时间的增长,“谣言”逐步扩散,在“最终”的某一时刻,全网便会得到相同的信息,也即弱化了一致性,强调实现最终一致性。Gossip 解决的问题也就是在分布式环境下信息高效分发的问题,决定了系统的一致性程度。在超级账本 Fabric 和 Cassandra 数据库中,Gossip 协议在其信息同步中都发挥了重要作用。在 Hyperledger Fabric 的交易流程中,Peer 节点作为参与交易的主体,主要负责存储完整的区块链数据、执行智能合约,Peer 节点之间可以通过 Gossip 协议来完成区块分发、状态同步等问题。在每个 Peer 节点上都维护了其它 Peer 节
5、点的信息,通过随机的与其它 Peer 节点通信来交换信息,达到最终一致性。主要过程为通过 GossipClient 客户端的 GossipStream 双向流进行通信,发送 SignedGossipMessage 消息结构。Apache 的分布式数据库 Cassandra 中,各节点地位平等、各自独立,通过 Gossip 协议进行各个节点间的数据通信,其主要功能是在 Cassandra 集群中的所有节点之间快速高效地传递各个节点的状态和信息。如果处于交换状态的节点在信息传递时长时间未响应,则此时执行请求的节点就会将目标节点标记为失灵,并通过 Gossip 协议将该节点的状态传出去。通过这样的方
6、式,Cassandra 数据库就可以确定能够用来高效存储数据的健康节点,并在这些节点上进行数据的操作,从而避免了节点信息交换故障导致的无效或者错误操作,降低了时间成本,同时提高了系统效率。Gossip协议模型明白了 Gossip 协议及其用途,我们来探究一下 Gossip 协议的具体模型,它主要由时间模型和消息更新模型组成。按照采用的时间模型来看,Gossip 协议可以分为同步 Gossip 协议和异步 Gossip 协议。同步 Gossip 协议是指网络中的节点有确定的时序关系,节点按照一定的时序关系进行数据交换。而异步单播 Gossip 协议是在每一个时间间隔中随机地唤醒网络中的一个节点,
7、被唤醒的节点再随机地选择邻接节点进行数据交换。因为同步问题较为复杂,所以同步 Gossip 协议在实际生产环境中的应用较少。按照节点之间信息更新的方式,Gossip 协议可以分为基于单播的 Gossip 协议和基于广播的 Gossip 协议。单播 Gossip 协议是指被唤醒的节点每次只选择它的一个邻接节点进行数据交换。单播 Gossip 协议的收敛性和收敛速度可证明,且能够收敛于网络的初始均值。但是单播 Gossip 的收敛速度很大程度上依赖于网络结构。广播 Gossip 协议是指在一次迭代过程中,随机地唤醒一个节点,被唤醒的节点与所有的邻接节点均进行信息交换。广播 Gossip 协议无法保
8、证其收敛状态值等于网络初始状态的均值。“八卦”协议下的节点交互模式Gossip的两个节点A、B之间有三种交互模式:1、Push 模式:B节点将数据(key,value,version)及对应的版本号推送给 A 节点,A 节点更新 B 节点中比自己新的数据。在 Push 模式中,发起信息交换的节点随机选取节点并向其发送自己的信息,一般拥有新信息的节点才会作为发起节点。假设存在 n 个节点,采用 Push 方式,在数据传播的初期,已收到消息的节点数目呈指数增长,直到有一半节点收到该消息。此后,未收到消息的节点集合将会在每一轮以一个常数因子进行收缩。当消息传播过程结束时该常数因子为,因为在一轮中没有
9、收到消息的节点的占。因此,收缩过程将会通过轮直到所有的节点均收到消息,Push 模式在每一轮中发送的消息数量为。2、Pull 模式:A 仅将数据 key、version 推送给 B,B 将本地比 A 新的数据(key,value,version)推送给 A,A 更新本地。在 Pull 模式中,发起数据交换的节点随机选择节点并获取所选节点的数据,一般无新数据的节点才会作为发起节点。Pull 方式与 Push 方式相反,在数据传播的初期,收到消息的节点的数量增长缓慢;当已有一半节点收到消息之后,每轮过后未收到消息的节点占比将呈平方收缩。这是因为在一轮开始时假设有个未收到消息的节点,每一个节点将有的
10、概率收到消息,因此节点保持未收到消息状态的概率为,这一轮结束后未收到消息的节点数量为。因此,未收到消息的节点数量的收缩过程仅需要轮,该过程中每一轮传递的消息数量为。3、Push-Pull 模式:在 Pull 的基础上,A 再将本地比 B 新的数据推送给 B,然后 B 再更新本地数据。也就是在 Pull 之后,A 再对比自己掌握的信息,更新 B 手中掌握的信息。Push-Pull 模式是结合了具备可预测性的 Push 机制和具备平方收缩特性的 Pull 机制,在这种模式下,消息双向发送。发起信息交换的节点先初始化一个时间计数器来代表信息的生命值,初始计数为 0。信息的生命值会随着每次传播而递增。
11、发起信息交换的节点随机选取节点并向其发送自己的消息,同时从所选取的节点上获取该节点的消息,这个过程将持续进行直到消息的生命值超过。假设存在 n 个节点,在全连通网络中采用 Push-Pull 的方式,那么完成 Gossip 过程需要轮和次数据交换。想象 A、B 是老同学,毕业后工作在同一家公司,朝夕相处, A 想要了解 B 的信息,B 就只需要把 A 不知道的事情告诉他,类似于“推”模式。倘若只是工作在同一栋楼,两人掌握的信息依然有一定的交集,A 与 B 在简单的交流后,B 就可以告诉 A 所不知道的信息,就类似于“拉”模式。如果两个人毕业后在不同的国家,在信息内容上基本没有交集,这时候就需要将自己知道的全部信息告诉彼此,也就类似于“推-拉”模式。通过这样类似“推”、“拉”的方式,完成了节点间信息的同步。知识拓展:其他通信协议在分布式中,除了 Gossip 这个通信协议,还有 Totem 协议、Paxos 协议等。其中,Totem 协议在节点间形成单环结构,通过 token,利用类似于“丢手绢”的形式,实现消息的传递,只有拿到 token 的节点才能够发送消息,以此来保证消息的有序性。Paxos 协议通俗来讲,类似于二阶段提交,就是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江宇翔职业技术学院《公路工程定额原理与计价》2023-2024学年第一学期期末试卷
- 浙江工业职业技术学院《采购过程演练》2023-2024学年第一学期期末试卷
- 反谐振阻抗比较小的原因
- 中国传媒大学《计算机电子电路基础》2023-2024学年第一学期期末试卷
- 长治医学院《剧场品牌管理》2023-2024学年第一学期期末试卷
- 云南司法警官职业学院《体育-台球》2023-2024学年第一学期期末试卷
- 企业内部知识分享平台构建方案
- 保险行业数字营销模板
- 拿破仑历史名人人物介绍
- 中考誓师大会学生发言稿
- 2025年浙江省金华市统计局招聘2人历年高频重点提升(共500题)附带答案详解
- 员工职业素养与团队意识培训课件2
- 部编版三年级下册语文全册教案及全套导学案
- 2024年国家级森林公园资源承包经营合同范本3篇
- 对口升学《计算机应用基础》复习资料总汇(含答案)
- 迪士尼乐园总体规划
- 2024年江苏省苏州市中考数学试卷含答案
- 2024年世界职业院校技能大赛高职组“市政管线(道)数字化施工组”赛项考试题库
- 介绍蝴蝶兰课件
- 大学计算机基础(第2版) 课件 第1章 计算机概述
- 数字化年终述职报告
评论
0/150
提交评论