如果您创建一个使用分布式哈希表(DHT)的新应用程序,则需要引导p2p网络。我有一个想法,你可以加入现有的DHT(例如Bittorrent DHT)。
这可行吗?当然,我们采用相同的技术。将Chord与Kademlia结合使用显然是不可行的。
如果是,这会被视为寄生还是共生?寄生意味着它与某种原始用途发生冲突。共生,如果它们对两种应用都有好处,因为它们相互支持。
答案 0 :(得分:5)
一般来说:Kademlia和Chord只是抽象设计,而实现则提供不同的功能。 如果其功能集太窄,您将无法将应用程序逻辑映射到它上面。如果它的需求过于宽泛,那么在没有开源库的情况下重新实现可能会很麻烦。
对于bittorrent:bittorrent DHT提供20byte密钥 - >列出[IP,端口]查找作为其主要功能,其中IP由发送方IP确定,因此不能用于存储任意数据。有一些辅助功能,例如布隆过滤器统计信息,但它们可能对其他应用程序的用处更少。
它不提供通用键值存储,至少不作为核心规范的一部分。有一个extension proposal for that
尽管实现为未知消息类型提供了一些基本的前向兼容性,但是它们将它们视为节点查找请求,而不是仅仅忽略它们,如果您的应用程序提供一小部分节点,那么它们的用处有限,因为您不太可能遇到在查找过程中实现该功能的其他节点。
如果是,这会被认为是寄生性的还是共生的?
这在很大程度上取决于你是否是网络中的“好公民”。