应用程序可以在同一个DHT中共存吗?

时间:2014-11-11 22:45:52

标签: p2p bittorrent dht chord kademlia

如果您创建一个使用分布式哈希表(DHT)的新应用程序,则需要引导p2p网络。我有一个想法,你可以加入现有的DHT(例如Bittorrent DHT)。

这可行吗?当然,我们采用相同的技术。将Chord与Kademlia结合使用显然是不可行的。

如果是,这会被视为寄生还是共生?寄生意味着它与某种原始用途发生冲突。共生,如果它们对两种应用都有好处,因为它们相互支持。

1 个答案:

答案 0 :(得分:5)

一般来说:Kademlia和Chord只是抽象设计,而实现则提供不同的功能。 如果其功能集太窄,您将无法将应用程序逻辑映射到它上面。如果它的需求过于宽泛,那么在没有开源库的情况下重新实现可能会很麻烦。

对于bittorrent:bittorrent DHT提供20byte密钥 - >列出[IP,端口]查找作为其主要功能,其中IP由发送方IP确定,因此不能用于存储任意数据。有一些辅助功能,例如布隆过滤器统计信息,但它们可能对其他应用程序的用处更少。

它不提供通用键值存储,至少不作为核心规范的一部分。有一个extension proposal for that

尽管实现为未知消息类型提供了一些基本的前向兼容性,但是它们将它们视为节点查找请求,而不是仅仅忽略它们,如果您的应用程序提供一小部分节点,那么它们的用处有限,因为您不太可能遇到在查找过程中实现该功能的其他节点。

  

如果是,这会被认为是寄生性的还是共生的?

这在很大程度上取决于你是否是网络中的“好公民”。

  • 您的实施是否遵循规范,包括常用的扩展程序?
  • 当涉及到流量时,您的一般用例与其他节点相比是否保持在一个数量级内?
  • 应用程序生命周期是否足够长,不能超出目标DHT的预期流失率?