使用DHT实现Gossip协议?

3

我已经花了一些时间研究DHT和特别是kademlia。我正在尝试实现一个基于Kademlia DHT的P2P网络,我希望能够向整个网络传播消息。 通过我的研究,我发现使用八卦协议来进行传播,但是当我已经使用dht存储对等方时,似乎添加另一个全新的协议来传播消息有些奇怪。 是否有一种八卦协议可以在DHT拓扑结构上或与之配合使用,例如Kademlia?

1个回答

5
你对效率有多关注?作为下限,某人必须向网络中的所有 N 节点发送一个数据包,以将更新传播到所有节点。
最简单的方法是将每个消息转发到路由表中的所有条目。这样做是不行的,因为它显然会导致转发风暴。
第二种最简单的方法是转发更新,即新数据。这将导致 N * log(N) 流量。
如果您的所有节点都值得信任,并且您不关心效率的最后量子,那么您可以在此停止。
如果节点不可信,则需要一种机制来限制谁可以发送更新并验证数据包。
如果您还关心效率,可以在转发之前添加随机退避,并跟踪哪个路由表条目已经具有哪个版本,以修剪不必要的转发尝试。
如果您不想与整个网络交流,而只想与其中的子集进行交流,可以实现子网络,感兴趣的节点可以加入,即订阅。 Bittorrent Enhancement Proposal 50 描述了这种方法。

感谢回答。BitTorrent的提案很有趣。节点不可信,我确实考虑效率。 - yosher lutski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接