将 DHT 用于八卦协议?
Posted
技术标签:
【中文标题】将 DHT 用于八卦协议?【英文标题】:Use a DHT for a gossip protocol? 【发布时间】:2018-11-02 06:59:27 【问题描述】:我一直在研究 DHT,尤其是 kademlia 已经有一段时间了。 我正在尝试在 Kademlia DHT 上实现一个 p2p 网络。我希望能够向全网八卦消息。 根据我对使用八卦协议的研究,但是当我已经使用 dht 来存储对等点时,添加另一个全新的协议来传播消息似乎很奇怪。 是否有一个八卦协议可以在像 Kademlia 这样的 DHT 拓扑上运行或与它一起工作?
【问题讨论】:
【参考方案1】:您对效率的关注程度如何?作为下限,有人必须向网络中的所有 N
节点发送数据包,以将更新传播到所有节点。
最简单的方法是简单地将每条消息转发到路由表中的所有条目。这样做是不行的,因为它显然会导致转发风暴。
第二种最简单的方法是转发更新,即更新的数据。这将导致N * log(N)
流量。
如果你的所有节点都是可信的,并且你不关心最后的效率,你可以在这里停下来。
如果节点不受信任,您将需要一种机制来限制谁可以发送更新并验证数据包。
如果您还关心效率,您可以在转发之前添加随机退避并跟踪哪个路由表条目已经有哪个版本来修剪不必要的转发尝试。
如果您不想与整个网络闲聊,而只想与其中的一个子集聊天,您可以实现感兴趣的节点可以加入的子网,即订阅。 Bittorrent Enhancement Proposal 50 描述了这种方法。
【讨论】:
感谢您的回答。 bittorrent 的提议很有趣。节点不受信任,我确实考虑效率。以上是关于将 DHT 用于八卦协议?的主要内容,如果未能解决你的问题,请参考以下文章