問題タブ [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.
bittorrent - この奇妙なDHT応答が何を意味するのか、誰かが解明できますか?
時々、他のノードからこの奇妙な応答を受け取ります。トランザクション ID は、リクエストのトランザクション ID とリモート IP に一致するため、ノードがこれに応答したと考える傾向がありますが、応答と要求が混在しているように見えます
何よりも悪いのは、それが不正であるということです。7:nodes.v を見てください。これは、nodes.v をディクショナリに追加したことを意味します。5:ノードのはずです。だから、私は迷っています。それは何ですか?
java - 実装中Kademlia プロトコルの STORE RPC
PeerSim で Kademlia プロトコルを使用してピアツーピア ネットワーク シミュレーションを実行したいと考えています。Peersim (Java) 用の kademlia モジュールがありますが、これは STORE プロシージャの実装を省略しています。そのためのモジュールをゼロから書くのは難しいと思います。したがって、この機能を現在のモジュールに追加する方がよいのですが、その方法がわかりません。
Kademlia に STORE RPC を追加する方法を教えていただければ幸いです。
これは peersim の kademlia モジュールです。
前もって感謝します
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 などを指しますか?
bittorrent - DHTアナウンスの送信先は?
別の DHT 対応の torrent クライアントを作成しているときに、DHT に関するアナウンスに関する質問に遭遇しました。少なくとも 1 つのノードがその情報ハッシュを持つピアのリストで応答するまで、検索された情報ハッシュに近いノードに get_peers を送信する必要があることは明らかです。
私が理解しているように、情報ハッシュを知っているピアの重複リストで応答する複数のノードを見つけることができます。問題は、ピアのリストを返したすべてのノードに自分の存在をアナウンスするか、1 つだけを選択するかです。このアカウントの推奨事項は何ですか?
たぶん私は間違っていて、動作が多少異なり、私の仮定が間違っていて、同じ情報ハッシュのピアのリストを持つ複数のノードを持つことはできませんか?
bittorrent - KRPC クエリ メッセージ dict 謎のプレフィックス
トレント クライアントの DHT 実装は、メッセージ ディクショナリの前に 4 バイト余分にある KRPC dict メッセージを頻繁に受信します。以下に例を示します。
それに続くのは、ベンコードされた dict、d
、内容、そしてe
仕様による です。
4バイトに続く辞書には常にy
ofが含まれているように見えるq
ので、おそらくクエリです。
hashtable - 分散ハッシュ テーブルに DHT ライブラリ dht-example.c を使用する方法
BitTorrent DHT ライブラリを C プログラム内から分散ハッシュ テーブルとして使用したいと考えています。したがって、私はそれを自分のマシンにダウンロードしてコンパイルしました-完璧に動作しました。これで、出力する実行可能な dht-example ができました。
この例で何ができますか? DHT で遊ぶ方法: 分散マシンを接続し、データを入力するか、そこからハッシュ テーブルを読み取るか?
どうもありがとう
networking - Kademlia プロトコルは、接続されたグラフを形成するピアをどのように保証しますか?
ノード: DHT ネットワーク上のクライアント。
ピア: 特定のリソースをダウンロードしようとするクライアント。
DHT ネットワークが接続されたグラフであると仮定しますが、他のすべてのノードにアクセスできるノードはありません (DHT ネットワークがオーバーレイするインターネットが完全に接続されているという一般的な信念に反する消費)。
DHT ネットワークにオーバーレイするピア ネットワークは、接続されたグラフのままですか? なんで?