問題タブ [kademlia]

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 投票する
1 に答える
480 参照

bittorrent - この奇妙なDHT応答が何を意味するのか、誰かが解明できますか?

時々、他のノードからこの奇妙な応答を受け取ります。トランザクション ID は、リクエストのトランザクション ID とリモート IP に一致するため、ノードがこれに応答したと考える傾向がありますが、応答と要求が混在しているように見えます

何よりも悪いのは、それが不正であるということです。7:nodes.v を見てください。これは、nodes.v をディクショナリに追加したことを意味します。5:ノードのはずです。だから、私は迷っています。それは何ですか?

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

java - 実装中Kademlia プロトコルの STORE RPC

PeerSim で Kademlia プロトコルを使用してピアツーピア ネットワーク シミュレーションを実行したいと考えています。Peersim (Java) 用の kademlia モジュールがありますが、これは STORE プロシージャの実装を省略しています。そのためのモジュールをゼロから書くのは難しいと思います。したがって、この機能を現在のモジュールに追加する方がよいのですが、その方法がわかりません。

Kademlia に STORE RPC を追加する方法を教えていただければ幸いです。

これは peersim の kademlia モジュールです

前もって感謝します

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

p2p - 非常に不均衡な Kademlia ルーティング テーブル

Kademlia の論文では、セクション 2.4 の最後の段落で、非常に不均衡なツリーを適切に処理するには...

Kademlia ノードは、ノード自体の ID が存在しないバケットを分割する必要がある場合でも、少なくとも k ノードのサイズのサブツリーにすべての有効な連絡先を保持します。

ただし、論文の前のセクションでは、k-bucket に既に k 個の要素がある場合、その k-bucket にさらに追加するには、最も古いノードを削除する (最初に ping を実行して、生きているかどうかを確認する) か、キャッシュする必要があると述べているようです。その k-bucket でスロットが使用可能になるまで追加します。

この論文は、この 2 点で矛盾しているように思われます。

k-bucket を分割する必要がある条件とその理由は何ですか? 「すべての有効な連絡先」をルーティング テーブルに保持することは、ルーティング テーブルが非常に急速に大きくなるため、実用的ではないようです。この例では、001 で始まる多くのノードと 000 で始まる 1 つのノードを持つツリーについて説明しています。160 ビットのアドレス空間では、000 のルーティング テーブルに 2^157 ノードを格納する可能性があるのではないでしょうか??

引用されたブロックの文言も非常に紛らわしいです...

「サブツリーで」 -- ルーティング テーブルのどのサブツリーで?

「少なくともkノードのサイズ」-サブツリーのサイズを決定するためにどのメトリックを使用していますか? この場合のノードは、kademlia ノードまたは k-buckets などを指しますか?

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

bittorrent - DHTアナウンスの送信先は?

別の DHT 対応の torrent クライアントを作成しているときに、DHT に関するアナウンスに関する質問に遭遇しました。少なくとも 1 つのノードがその情報ハッシュを持つピアのリストで応答するまで、検索された情報ハッシュに近いノードに get_peers を送信する必要があることは明らかです。

私が理解しているように、情報ハッシュを知っているピアの重複リストで応答する複数のノードを見つけることができます。問題は、ピアのリストを返したすべてのノードに自分の存在をアナウンスするか、1 つだけを選択するかです。このアカウントの推奨事項は何ですか?

たぶん私は間違っていて、動作が多少異なり、私の仮定が間違っていて、同じ情報ハッシュのピアのリストを持つ複数のノードを持つことはできませんか?

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

bittorrent - KRPC クエリ メッセージ dict 謎のプレフィックス

トレント クライアントの DHT 実装は、メッセージ ディクショナリの前に 4 バイト余分にある KRPC dict メッセージを頻繁に受信します。以下に例を示します。

それに続くのは、ベンコードされた dict、d、内容、そしてe仕様による です。

4バイトに続く辞書には常にyofが含まれているように見えるqので、おそらくクエリです。

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

hashtable - 分散ハッシュ テーブルに DHT ライブラリ dht-example.c を使用する方法

BitTorrent DHT ライブラリを C プログラム内から分散ハッシュ テーブルとして使用したいと考えています。したがって、私はそれを自分のマシンにダウンロードしてコンパイルしました-完璧に動作しました。これで、出力する実行可能な dht-example ができました。

この例で何ができますか? DHT で遊ぶ方法: 分散マシンを接続し、データを入力するか、そこからハッシュ テーブルを読み取るか?

どうもありがとう

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

networking - Kademlia プロトコルは、接続されたグラフを形成するピアをどのように保証しますか?

ノード: DHT ネットワーク上のクライアント。
ピア: 特定のリソースをダウンロードしようとするクライアント。

DHT ネットワークが接続されたグラフであると仮定しますが、他のすべてのノードにアクセスできるノードはありません (DHT ネットワークがオーバーレイするインターネットが完全に接続されているという一般的な信念に反する消費)。

DHT ネットワークにオーバーレイするピア ネットワークは、接続されたグラフのままですか? なんで?