問題タブ [dht]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1296 参照

messaging - チャットおよび/またはメッセージのブロードキャスト用の P2P

つまり、基本的には、IRC のような、すべてのノードにテキスト メッセージを送信できる P2P ソフトウェアを書きたいと思っています。どのようなネットワークを使用することをお勧めしますか? 私は DHT Kademlia をいくつか調べましたが、実装するのは簡単に思えますが、私がやりたいことには役に立たないようです。たとえば、Skype はどのような種類のプロトコルを使用していますか?

編集: 言い忘れましたが、インスタント メッセージングである必要はありません。数分の遅延は許容範囲を超えています。現在の時刻に対応するデータを 5 分ごとまたはすべてのノードで継続的に取得しようとすることはできないと思いますか?

0 投票する
2 に答える
1271 参照

distributed - Consistent Hashing: 再ハッシュについてはどうですか?

ご存知かもしれませんが、コンシステント ハッシュは、DHT を扱う場合に優れたアイデアです。主なアイデアは、新しいノードが追加または削除されたときにあまり影響を受けないようにすることです。

元の論文から:

マシンが一連のキャッシュに追加または削除された場合、新しいキャッシュに移動する必要があると予想されるオブジェクトの割合は、キャッシュ間でバランスの取れた負荷を維持するために必要な最小値です。

解決策は素晴らしいですが、鍵の配布がうまくいかないという現象があります。これを解決するために、元のノードのレプリカがランダムに配布されます。そのソリューションは非常にうまく機能します。確認したい場合は、このチャートを見てください。

わかりました、うまくいくようです。しかし、誰も言及していないことを私は考えていました。

1 つのノードが追加 (または削除) されるとどうなりますか? さて、配置されたノードの「前」にあるすべてのキーを再ハッシュする必要があります。これらのキーは「すべて」のキーではないため、それは良いようです。しかし、たとえば 20 個のレプリカを配置することにした場合、20 個のノードで再ハッシュの手間がかかります。

レプリカが少ないと分散が悪化しますが、レプリカが多いと再ハッシュが必要な場合の負担が大きくなります。

この状況に適した解決策は何ですか? 何か不足していますか?

0 投票する
3 に答える
1525 参照

dht - DHT ノード ID 生成?

私はちょうどDHTの実装と理論の勉強を始めたばかりで、ノードの起動時とネットワークへの接続時にノードIDを生成する方法に固執しました。IDはいくつかのハッシュ範囲からのランダムハッシュだと読みましたが、それは一意のハッシュですか? ハッシュは、このノードが格納するデータに近いものを生成しますか? これで私を助けてください。

0 投票する
1 に答える
2264 参照

p2p - DHT プロトコルはどのように機能しますか? 私の考えは正しいですか?

特にファイル共有トレントの世界で、DHTプロトコルがどのように機能するかを理解しようとしています. 多くの記事を読みましたが、まだファイル名と値のハッシュ生成について混乱しています。

dht がどのように機能するかについての私の考えは次のとおりです。 p2p ネットワークに参加していて、いくつかのファイルを共有したいとしましょう。これらのファイルに対して、ハッシュマップ キーが生成され、これらの生成されたキーを担当するノードがアクセスされるまで、ネットワークを「移動」します。次に、これらのノードのそれぞれが、「x の IP アドレスを持つ男が、指定されたキーに関連するファイルを持っている」というレコードをリストに追加します。

ファイルを検索すると、このファイルのハッシュマップ キーが生成され、このキーを担当するノードが見つかるまでネットワークを移動します。次に、このノードは私と通信し、実際のデータをホストするノードの IP アドレスを送信します

上記の私の考えは正しいですか??

0 投票する
1 に答える
375 参照

bittorrent - Bittorrent で DHT 流出を防ぐにはどうすればよいですか?

Bittorent トラッカーでサービスを提供したい小さなネットワークがあります。ただし、このネットワークで共有される情報が、分散ハッシュ テーブルで誤って流出して、未知のピアが蓄積されないようにすることが重要です。トラッカーのすべての通常機能を自由に使用できますが、特定のコントロール (つまり、DHT) を無効にして、群れ内の他のユーザーを外部接続に公開するように接続するクライアントを強制する方法がわかりません。

そのような制御はプロトコル仕様に存在しますか? そうでない場合、それを実装するには何が必要ですか?

0 投票する
1 に答える
931 参照

hashtable - p2p シミュレーションと分散ハッシュ テーブル

単一のマシン内でのシミュレーションを通じて、p2p アーキテクチャを学習しています。そのために、名前付きパイプを使用できると言われました。シミュレーションの設計段階にいます。ここに私が前進する予定の方法があります:

  1. p2p 'ネットワーク' に参加できるピア プログラムを作成します。ネットワークは、そのようなピアの集まりです。ピアは、マシンのプロセス ID によって識別されます。

  2. ピアが作成されると、つまりネットワークに参加すると、「マスター ノード」またはトラッカーへのブートストラップを通じてピアの到着がアナウンスされます。ピアが到着をアナウンスすると、マスターノードはピア (プロセス ID) のリストを更新し、ネットワークで利用可能なピアのリストを新しいピアに返します。

  3. ネットワークに入ると、ピアはネットワークからファイルをダウンロードしたり、自分が持っているファイルの着信要求にファイルをアップロードしたりできます。ピアがネットワーク経由で受信したファイルは、自動的にアップロードできるようになります。

  4. ファイルをダウンロードするために、ピアはロケーション アルゴリズムを呼び出し、現在のピアがダウンロードしようとしているファイルがあるピアを特定します。

ご覧のとおり、設計に対する私の理解にはギャップがあります。私の素朴なアプローチから、#2 と #3 は別のステップに見えます。しかし、私はそれらが何らかの形で関連しているに違いないと感じています。Chord や CAN のような分散ハッシュ テーブルとアルゴリズムがどのように機能するかについて、私の理解が不足していると思います。シミュレーションを実際に実装するのに役立つこれらの散在するアイデアをまとめるための助けが必要です。

まず、私の最初の質問は、ロケーション アルゴリズムをどこでどのように開始するかということです。または、上記の手順で作成された分散ハッシュ テーブルはどこにありますか?

0 投票する
5 に答える
13556 参照

java - 学習目的のためのJavaでのシンプルなオープンソースDHTの実装

Javaでの分散ハッシュテーブルの単純なオープンソース実装の推奨事項を探しています。特別な機能はなく、学習目的のためだけであり、本番機能は必要ありません。セットアップは簡単で(たとえば、n-JVMを備えた1台の物理マシン)、できればいくつかの例、チュートリアル、または開始ガイドを使用して十分に文書化する必要があります。

調査により、FreePastryOpenChordの候補が得られましたが、単純に私の基準を満たしているとは完全には確信していません。

これらまたは他の実装の経験はありますか?推奨事項?

ありがとう&アディオス

0 投票する
2 に答える
1171 参照

p2p - 既存の DHT の Hello World

私は、分散ハッシュ テーブル (DHT) がどのように機能するかについての理論に精通しています。既存の DHT (Kademlia や Mainline DHT など) にデータを格納するプログラムを作成することはできますか? これを行うための最も簡単な方法を示す単純な「Hello World」タイプのプログラムはありますか?

0 投票する
5 に答える
6845 参照

c++ - DHTのC++実装

C /C++でのKademliaDHTのオープンソース実装を探しています。軽量でクロスプラットフォーム(win / linux / mac)である必要があります。

DHTに情報を投稿して取得できる必要があります。

0 投票する
3 に答える
3723 参照

metadata - メタデータまたはトレント ファイルからトレント タイトルを取得する

DHT から読み込んだメタデータや、TPB などのサーバーからダウンロードしたファイルから torrent タイトルを抽出することはできますか? 任意の api、lib 任意の言語で実行できます