一段时间以来,我一直在研究 DHT,尤其是 kademlia。我正在尝试在 Kademlia DHT 上实现一个 p2p 网络。我希望能够向全网八卦消息。根据我对使用八卦协议的研究,但是当我已经使用 dht 来存储对等点时,添加另一个全新的协议来传播消息似乎很奇怪。是否有一个八卦协议可以在像 Kademlia 这样的 DHT 拓扑上运行或与它一起工作?
问问题
715 次
1 回答
4
您对效率的关注程度如何?作为下限,有人必须向N
网络中的所有节点发送一个数据包,以将更新传播到所有节点。
最幼稚的方法是简单地将每条消息转发到路由表中的所有条目。这不会发生,因为它显然会导致转发风暴。
第二个最幼稚的方法是转发更新,即更新的数据。这将导致N * log(N)
流量。
如果您的所有节点都是受信任的,并且您不关心最后的效率,那么您已经可以在这里停下来了。
如果节点不受信任,您将需要一种机制来限制谁可以发送更新并验证数据包。
如果您还关心效率,您可以在转发之前添加随机退避并跟踪哪个路由表条目已经具有哪个版本来修剪不必要的转发尝试。
如果您不想与整个网络闲聊,而只是其中的一个子集,您可以实现感兴趣的节点可以加入的子网,即订阅。Bittorrent 增强提案 50描述了这种方法。
于 2018-05-23T16:42:49.337 回答