是否有一组最佳实践解决方案来自组装一组对等节点?

我有一个节点网络,具有以下属性: 全局集包含N个节点。 每个节点能够发现X个邻居,其中X <&lt;&lt; N. 发现邻居是单向操作(即,邻居不一定知道它已被发现并且可能不会发现原始节点)。 我需要完成的是这些节点自组装一个有效的网络拓扑,这样所有节点都可以用最少的跳数进行通信(我对实用的最小值感兴趣,而不是理论上优化的最小值,如果它需要解决方案的话带来额外的复杂性)。这已经是一个普遍解决的问题吗?也就是说,是否有标准的最佳实践解决方案? 如果我手动组装节点,我可能会创建一个层次结构,其中一些节点充当其他节点组之间的网关。但是,我不确定最好的方法是让这些节点自组装;组/层次结构拓扑不是必需的,它只是一个直观的例子。 请注意,一旦拓扑到位,我就不会寻找有效的消息路由算法(尽管我当然希望拓扑尽可能高效,并且每个节点尽可能靠近X通信通道使用)。     
已邀请:
听起来你正在寻找分布式哈希表。尽管名称如此,但它们不仅可用于存储 - 它们可用作通用路由网格,其中O(log n)预期跳数可在任意两个节点之间路由消息。 虽然基础知识保持不变,但至少有几种不同的方法可以实现它们;你可能想要结帐Kademlia和Chord作为例子。 Kademlia实现起来更简单,但侧重于数据存储和检索;和弦更复杂但更通用。     

要回复问题请先登录注册