一般に、Kademlia と Chord は単なる抽象的な設計であり、実装によってさまざまな機能が提供されます。機能セットが狭すぎると、アプリケーション ロジックをマップできなくなります。ニーズに対して広すぎる場合、オープンソースのライブラリが利用できない場合、再実装するのは面倒かもしれません。
bittorrent の場合: bittorrent DHT は 20 バイトのキー -> List[IP,Port] ルックアップを主な機能として提供します。IP は送信者 IP によって決定されるため、任意のデータを保存するために使用することはできません。これらのリストに対するブルーム フィルター統計のようないくつかの二次機能がありますが、おそらく他のアプリケーションではあまり役に立ちません。
少なくともコア仕様の一部としては、一般的なキー値ストレージを提供しません。そのための拡張提案があります
実装では、未知のメッセージ タイプに対していくつかの基本的な前方互換性を提供しますが、他のノードに遭遇する可能性は低いため、アプリケーションがノードのごく一部を提供する場合、それらを単に無視するのではなく、ノード ルックアップ リクエストのように処理することで有用性が制限されます。ルックアップ中にその機能を実装します。
はいの場合、これは寄生または共生と見なされますか?
それは、あなたがネットワーク内で「善良な市民」であるかどうかに大きく依存します。
- 実装は、一般的に使用される拡張機能を含め、仕様に従っていますか?
- 一般的なユースケースは、それが引き起こすトラフィックに関して、他のノードと比較して桁違いの範囲内にとどまっていますか?
- アプリケーションのライフサイクルは、ターゲット DHT の予想される解約率を超えないように十分に長いですか?