Gossip协议,又称为流行病协议,是一种用于分布式数据库同步及信息扩散的通信协议。该协议通过周期性地在节点间传播信息来实现数据的一致性。本文介绍了Gossip协议的工作原理、优缺点以及在区块链领域的应用。 摘要生成于 ,由 DeepSeek-R1 满血版支持,

Gossip Protocol

Gossip protocol 也叫 Epidemic Protocol (流行病协议)。Gossip protocol在1987年8月由施乐-帕洛阿尔托研究中心发表ACM上的论文

《Epidemic Algorithms for Replicated Database Maintenance》中被提出。原本用于分布式数据库中节点同步数据使用,后被广泛用于数据库复制、信息扩散、集群成员身份确认、故障探测等。

Gossip Protocol和DHT(Distributed Hash Table)一样是P2P网络中的通信协议。

Gossip和P2P的区别

  • 每个节点都存全量的数据,本地检索
  • 每个节点从Peer拉取数据,达到和Peer数据一致
  • 节点收到或产生新数据的时候,会转发给Peer,最终经过Multi-hop之后到达全网

Gossip 的完整过程

为了表述清楚,我们先做一些前提设定

  1. Gossip 是周期性的散播消息,把周期限定为 1 秒
  2. 被感染节点随机选择 k 个邻接节点(fan-out)散播消息,这里把 fan-out 设置为 3,每次最多往 3 个节点散播。
  3. 每次散播消息都选择尚未发送过的节点进行散播
  4. 收到消息的节点不再往发送节点散播,比如 A -> B,那么 B 进行散播的时候,不再发给 A。

注意:Gossip 过程是异步的,发消息的节点不会关注对方是否收到,即不等待响应;不管对方有没有收到,它都会每隔 1 秒向周围节点发消息。异步是它的优点,而消息冗余则是它的缺点。

  • 享有P2P网络抗单点故障的优点
  • 相比DHT更不容易受到网络阻隔(partition)

缺点

  • Multi-hop造成消息的延迟。这也是区块链挖矿、浏览器经常需要解决的问题
  • 重复接收相同消息,造成了消息的冗余,也增加了收到消息的节点的处理压力

改进方向1:消息延迟

1. 增加Peer数量

需要解决的问题:Peer数量不够,节点则容易失去同步

  • 在网络中设置一些固定的节点,与大量的Peer进行连接
  • 其他节点Peer数量不够的时候,从这些固定节点获取Peer列表

2. 应对网络峰值

需要解决的问题:节点收到新数据后立刻转发给所有Peer,Peer多的情况下会造成瞬间的网络拥堵

解决:分批有序进行广播

a. Diffusion:广播时候对各个Peer加随机的延时

b. Fan-out:每秒随机选几个Peer发出消息

网络 协议 10 - Socket 编程(上):实践是检验真理的唯一标准 网络 协议 11 - Socket 编程(下):眼见为实耳听为虚 网络 协议 12 - HTTP 协议 :常用而不简单 网络 协议 13 - HTTPS 协议 :加密路上无尽头 网络 协议 14 - 流媒体 协议 :要说爱你不容易     “兄弟,有种子吗?”     “什么种子?小麦种吗?”
在 P2P 通信标准 协议 ( 二 ) 中,介绍了TURN的基本交互流程,在上篇结束部分也有说到,TURN作为STUN 协议 的一个拓展,保持了STUN的工具性质,而不作为完整的NAT传输解决方案,只提供穿透NAT的功能, 并且由具体的应用程序来使用.虽然TURN也可以独立工作,但其本身就是被设计为ICE/RFC5245 的一部分,本章就来介绍一下ICE 协议 的具体内容. ICE信息的描述格式通常采用标准...
如果你想下一个电影,一般会通过什么方式呢? 当然,最简单的方式就是通过HTTP 协议 进行下载,但是通过浏览器下载的时候,只要文件稍微大点,下载的速度就奇慢无比。 还有种下载文件的方式,就是通过FTP,也就是文件传输 协议 。FTP采用两个TCP连接来传输一个文件: 控制连接: P2P 网络 如果我们简单来看 P2P 技术 ,它的应用领域已经非常广泛了,从流媒体到点对点通讯、从文件共享到协同处理,多种领域都有它的身影出现。 同样的, P2P 的 网络 协议 也有很多,比较常见的有 BitTorrent、ED2K、Gnutella、Tor 等,也就是我们常说的 BT 工具 和 电驴。 比特币、以太坊等众多数字货币都实现了属于自己的 P2P 网络 协议 ,但是这种模式并不同于以上讨论的 P...
区块链 技术 大量依赖于 P2P 网络 ,可以说没有 P2P 就没有 区块链 现在的发展。而 区块链 拥有去中心化的应用理论,所以对 P2P 的过程有着近似严苛的安全要求。本文围绕 P2P 网络 的基础架构以及安全 协议 展开论述。内容是通过我的大量文献阅读之后进行的提炼。希望大家多多交流! 一、概述 P2P 网络 1 、何为 P2P ? P2P (peer-to-peer) 网络 又称为对等式 网络 ,或者点对点 网络 。这是一种无中心的...