P2P网络核心技术-Gossip 协议(在fabric网络中的应用)

P2P网络核心技术-Gossip 协议(在fabric网络中的应用)
Gossip protocol(也叫Epidemic Protocol-流行病协议),别名:"流言算法","疫情传播算法";
Gossip protocol:主要用在分布式数据库系统中各个副本节点同步数据之用:
1、Gossip 传播的一个完整过程:
(1)Gossip 是周期性的散播消息,把周期限定为 1 秒;
(2) 被感染节点随机选择 n个相邻节点散播消息,把n设置为3,每次最多往3个节点散播;
(3)每次散播消息都选择尚未发送过的节点进行散播;
(4) 收到消息的节点不再往发送节点散播,比如 A -> B,那么 B 进行散播的时候,不再发给 A;
注意:Gossip 过程是异步的,也就是说发消息的节点不会关注对方是否收到,即不等待响应;不管对方有没有收到,它都会每隔 1 秒向周围节点发消息。异步是它的优点,而消息冗余则是它的缺点。
这里一共有 16 个节点,节点 1 为初始被感染节点,通过 Gossip 过程,最终所有节点都被感染:

 

2、Gossip 的优点:
(1)扩展性:网络可以允许节点的任意增加和减少,新增加的节点的状态最终会与其他节点一致;
(2)容错:网络中任何节点的宕机和重启都不会影响 Gossip 消息的传播,Gossip 协议具有天然的分布式系统容错特性;
(3)去中心化:Gossip 协议不要求任何中心节点,所有节点都可以是对等的,任何一个节点无需知道整个网络状况,只要网络是连通的,任意一个节点就可以把消息散播到全网;
(4)一致性收敛:Gossip 协议中的消息会以一传十、十传百一样的指数级速度在网络中快速传播,因此系统状态的不一致可以在很快的时间内收敛到一致,消息传播速度达到了 logN;
(5)简单:Gossip 协议的过程极其简单,代码实现起来简单;

3、Gossip 的缺陷:
(1)消息的延迟:由于 Gossip 协议中,节点只会随机向少数几个节点发送消息,消息最终是通过多个轮次的散播而到达全网的,因此使用 Gossip 协议会造成不可避免的消息延迟。不适合用在对实时性要求较高的场景下;
(2)消息冗余:Gossip 协议规定,节点会定期随机选择周围节点发送消息,而收到消息的节点也会重复该步骤,因此就不可避免的存在消息重复发送给同一节点的情况,造成了消息的冗余,同时也增加了收到消息的节点的处理压力,而且由于是定期发送,因此,即使收到了消息的节点还会反复收到重复消息,加重了消息的冗余;

4、Gossip 类型:
(1)Anti-Entropy(反熵):以固定的概率传播所有的数据;
(2)Rumor-Mongering(谣言传播):仅传播新到达的数据;

5、Gossip 中的通信模式:在 Gossip 协议下,网络中两个节点之间有三种通信方式:
(1)Push:节点 A 将数据,推送给节点B,节点B更新本地 A 中比自己新的数据;
(2)Pull:  节点 A 将数据,推送给节点B,节点B将本地比 A 新的数据推送给 A,A 更新本地数据;
(3)Push/Pull:节点 A 将数据,推送给节点B,节点B将本地比 A 新的数据推送给 A,A 更新本地数据;节点 A 再将本地比节点B 新的数据推送给 B,B更新本地数据;

Gossip 在fabric网络中的应用:
1、利用一种随机的方式,将信息散播到整个网络中。在fabric网络中,peer节点是以Gossip协议来传播账本数据的,Gossip的数据是连续不断的,
    channel 上的每个peer都会不断的接收到,网络中其他peer传播数据的请求,为了保证数据账本的安全性,每个Gossip的消息message都是经过加密签名的,被伪造的信息,很容易识别出来的,并阻止它继续传播,Gossip的这种传播方式,很容易受到网络延迟,网络分区等影响,导致消息message丢失,但是因为Gossip的数据是连续不断的传播,所以最终网络中所有的peer都会达到一致的,最新的账本的状态;

2、Gossip传播协议,在fabric网络中主要的3个功能:
(1)维护和管理channel的peer成员,发现新的peer,不断探测新peer的状态,并更新新peer的状态;
(2)不断传播账本Ledger的数据,当一个peer收到一个新的账本数据的时候,它首先要把账本数据存到它本地的账本里,同时他还要以一定的方式把这个账本的数据传播出去,随机的传播给它周围的一些节点;
(3)对于新加入的peer,和一些账本数据落后的peer可以通过点对点的更新peer-to-peer state tranfer update,进行快速的更新账本数据;

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>