4

分散ハッシュ テーブル (DHT) を使用する新しいアプリケーションを作成する場合は、p2p ネットワークをブートストラップする必要があります。既存の DHT (Bittorrent DHT など) に参加できるという考えがありました。

これは実現可能ですか?もちろん、同じ技術を前提としています。Chord と Kademlia を組み合わせることは明らかに不可能です。

はいの場合、これは寄生または共生と見なされますか? なんとなく本来の用途に抵触するという意味の寄生。相互にサポートするため、両方のアプリケーションに適している場合は共生。

4

1 に答える 1

5

一般に、Kademlia と Chord は単なる抽象的な設計であり、実装によってさまざまな機能が提供されます。機能セットが狭すぎると、アプリケーション ロジックをマップできなくなります。ニーズに対して広すぎる場合、オープンソースのライブラリが利用できない場合、再実装するのは面倒かもしれません。

bittorrent の場合: bittorrent DHT は 20 バイトのキー -> List[IP,Port] ルックアップを主な機能として提供します。IP は送信者 IP によって決定されるため、任意のデータを保存するために使用することはできません。これらのリストに対するブルーム フィルター統計のようないくつかの二次機能がありますが、おそらく他のアプリケーションではあまり役に立ちません。

少なくともコア仕様の一部としては、一般的なキー値ストレージを提供しません。そのための拡張提案があります

実装では、未知のメッセージ タイプに対していくつかの基本的な前方互換性を提供しますが、他のノードに遭遇する可能性は低いため、アプリケーションがノードのごく一部を提供する場合、それらを単に無視するのではなく、ノード ルックアップ リクエストのように処理することで有用性が制限されます。ルックアップ中にその機能を実装します。

はいの場合、これは寄生または共生と見なされますか?

それは、あなたがネットワーク内で「善良な市民」であるかどうかに大きく依存します。

  • 実装は、一般的に使用される拡張機能を含め、仕様に従っていますか?
  • 一般的なユースケースは、それが引き起こすトラフィックに関して、他のノードと比較して桁違いの範囲内にとどまっていますか?
  • アプリケーションのライフサイクルは、ターゲット DHT の予想される解約率を超えないように十分に長いですか?
于 2014-11-20T10:19:50.803 に答える