一。概述
背书节点模拟执行签名的结果会经过排序服务(Ording service)广播给所有的节点。
它提供的是一种原子广播服务(Atomic Broadcast),即在逻辑上所有节点接收到的消息顺序是相同的,相同序号都是相同的内容。
排序服务广播的信息包括:
【1】。更新的状态信息
【2】。账本信息。。。
这些信息需要广播给所有节点。
若排序服务的所有节点都保持直接连接,在节点较多,数据量较大情况下容易形成单节点故障或成为性能瓶颈。
由超级账本节点组成的区块链网络本身就是一种去中心化的网络,利用P2P实现数据广播是显而易见的做法。
最觉见的方法是--洪泛(Flooding)
【1】洪泛是节点在接收到数据包以后,直接转发给所有的邻居节点,直到所有的节点都接收到了数据包或数据包的跳数(Hop count)超过一定的限制。
【2】洪泛优点:
节点覆盖率高:若在一个源节点 & 目标节点间存在一条路径,洪泛就能通过广播以最快速度找到这条路径。
很好冗余度:在不稳定的网络中提高网络健壮性(Robustness)
【3】洪泛缺点:
低效 & 广播风暴
超级账本采用Gossip的协议实现P2P数据分发,与洪泛的广播策略不同:
【1】节点在接收到数据包后,不直接转发给邻居节点,而是会计算一下概率,根据计算结果判断是否需要进行转发。
【2】转发概率设置为:
A。固定值的纯Gossip(Pure Gossip)
B。盲Gossip(Blind Gossping)
C。固定概率Gossip(Fixed probablility Gossip)
转发概率还可根据其他一些信息动态计算,如:节点的度(Degree),全局拓扑结构等。
在超级账本实现中,采用的是随机的选择k(默认值为3)个节点进行转发,若邻居节点的数据还没有需要转发的节点数量多,就全部转发。
二。超级账本中的Gossip协议
三。成员认证及身份管理
四。节点启动及成员管理
五。主节点选举过程
六。基于反熵的状态同步
七。数据传播过程
八。多通道的支持
九。消息的验证策略
十。消息的多路分用及分区
十一。和Gossip相关的配置参数
本章小结: