問題タブ [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 投票する
1 に答える
1305 参照

p2p - BitTorrent の代わりに分散ハッシュ テーブルを使用する場所は?

BitTorrent (最も重要な研究プロジェクトはTribler )と比較して、 DHTの分野に関する最近の研究が不足しているため、 DHT の使用法について疑問に思うようになりました。

BitTorrent と分散ハッシュ テーブルはどちらも、データストアのようなキーと値を使用して、ピア間でコンテンツを分散する方法を提供します。BitTorrent を使用するよりも DHT の方が適しているユースケースは何ですか?

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

java - DHTでのノード障害のシミュレーション

私は現在、無料のペストリーDHTを使用していくつかのパフォーマンステストを行っています。Freepastryは、Javaで実行されるオープンソースのDHTです。

目標は、特定の数のノードがダウンしたときのDHTへの影響を監視することです。私の問題は、ノードを削除する最善の方法がわからないことです。現在、各ノードは私のマシンの異なるポートで実行されています。Pastry APIのdestroy()メソッドを使用してこれらのノードを破棄していますhttp://www.freepastry.org/FreePastry/javadoc21a3/rice/pastry/PastryNode.html#destroy()

これがノード障害のシミュレーションでは非現実的である可能性があり、tcpkillを使用するなどの別の方法でノードを強制終了する必要があるかどうかが心配です。

Mac OS Xユキヒョウを実行していますが、何か提案を聞きたいですか?

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

p2p - DHTのエントリを更新する方法

私はデータが(理論的には)DHTにどのように保存されているかを知っています。ただし、キーに関連付けられたデータを更新する方法についてはわかりません。これは可能ですか?また、競合はDHTでどのように処理されますか。

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

networking - BitTorrent メインライン DHT が使用する信頼性の低い RPC プロトコルにエラー メッセージが必要なのは何ですか?

Mainline DHTは BitTorrent で使用される DHT であり、KRPC と呼ばれる UDP を介した RPC プロトコルを実装しています。KRPC には、ここで概説されているエラー メッセージのサポートが含まれています。

なぜこれが必要なのですか?これは信頼性の低いプロトコルであるため、これらのメッセージが受信されるという保証はありません。

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

p2p - ペストリーP2Pネットワークのノードでのルーティングテーブルの作成

この質問は、Pastryに基づくp2pネットワークのノードでのルーティングテーブルの作成に関するものです。

単一のJVMでルーティングテーブルを作成するこのスキームをシミュレートしようとしています。最初のノードの結合点から、これらのルーティングテーブルがどのように作成されるのか理解できないようです。それぞれ160ビットのnodeIdがSHA-1ハッシュとして生成され、これらのノード間の近接性を判断する関数を持つN個の独立したノードがあります。最初のノードがリングを開始してそれに参加するとします。プロトコルは、このノードはこの時点でルーティングテーブルを設定する必要があると言っています。しかし、この時点でリング内に他のノードはありません。それでは、どのようにしてルーティングテーブルの作成を開始するのでしょうか。

2番目のノードがリングに参加する場合、Joinメッセージ(そのnodeIDを含む)を1番目のノードに送信します。このメッセージは、リングにすでに存在する、この2番目のノードで使用可能な最も近いネイバーにホップで渡されます。これらのホップは、この新しい2番目のノードのルーティングテーブルエントリの作成に貢献します。繰り返しますが、十分な数のノードがない場合、これらすべてのエントリはどのように作成されますか?

私はこれらの答えを得るためにFreePastryの実装を調べ始めたばかりですが、現時点ではあまり明白ではないようです。誰かがここでいくつかのポインタを提供できれば、それも大きな助けになるでしょう。

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

bittorrent - netcat を使用して router.utorrent.com DHT ノードに ping を実行します。

私はrouter.utorrent.com、DHTサービスを軌道に乗せる可能性があるため、からの応答を得ようとしています. たとえば、次のようなマグネット リンクがあるとします。

ハッシュは次のとおりです。

次に、ターミナルで次のように入力しました。

このドキュメントに基づいていますが、応答がありません。Wireshark を試して、パケットが戻ってくるかどうかを確認しましたが、それでも何もありませんでした。μTorrent が私に話しかけないのはなぜですか?

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

ruby - ruby で torrent "swarm" または DHT に接続する

DHT と「群れ」がまったく同じかどうかさえわからないので、BitTorrent、DHT、および「群れ」がどのように機能するかについての基本的な理解が不足している可能性があります。

ただし、ピア、ピアの数、およびトレントに関するいくつかの統計を、そのマグネット リンク (およびハッシュ) から見つけようとしています。

これを達成するためにいくつかのライブラリを探しましたが、それらは時代遅れであるか無関係であるか、単にベンコードしているようです。

接続して情報を要求するにはどうすればよいですか? 簡単な説明は楽しいでしょう。

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

networking - Kademlia ルーティング テーブルと距離メトリック

今日、Kademlia について読んだのは初めてで、正しく理解できていないと思う点がいくつかあります。

ノードとキーの間の距離は、それらの値の xor です。

したがって、キー x とノード y がある場合、それらの間の距離は x xor y です。

しかし、私が知っているノードをバケット化し、プレフィックスの長さで並べ替えるポイントは何ですか? 私に最も近いノードを見つけるために、ノードIDのxorと直接接続されているようには見えませんか?

値のリクエストを受け取ると、自分に最も近いバケットのノードを検索します。これは、自分と最大の共有プレフィックスを持つノード、つまり 160 個のバケットの最初のいくつかのバケットですか?

または代わりに、すべてのバケットで知っているすべてのノードをチェックし、探しているキーとそれらのノード ID の間の xor を計算し、キー ID を使用した xor の結果に基づいて上位 k 件の一致にリクエストを送信します。 ?

申し訳ありませんが、私はDHTに少し慣れていないため、オンラインでの説明が少し明確ではありません.

0 投票する
4 に答える
11915 参照

search-engine - 「DHT検索エンジン」はどのように機能しますか?

と呼ばれるBtdigg.orgに興味があり"DHT search engine"ます。この記事によると、コンテンツは保存されておらず、データベースさえありません。次に、それはどのように機能しますか?他の通常の検索エンジンのように、メタ情報を収集してデータベースに保存する必要はありませんか? ユーザーがクエリを送信した後、DHT ネットワークをスキャンし、「リアルタイム」で結果を返しますか? これは可能ですか?

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

bittorrent - トレントマグネットリンクから最初のピアを取得するにはどうすればよいですか?

私はトレントマグネットテクノロジーを理解しようとしてきましたが、マグネットリンクを開いたときに最初のピアに接続する方法がわからないようです。

以下のようなマグネットリンクを取得すると、最初のピアは含まれず、BitTorrent Info Hash(btih)とファイル名のみが含まれます。

BitTorrent&Magnetsによると:それらはどのように機能しますか?(MakeUseOf)

trトラッカー( )を指定していないマグネットリンクをクリックすると、DHTを使用して最初のピアが検出されます。ピアを取得すると、ピア交換も開始されます。

ウィキペディアのDHTの記事では、ピアを見つける方法は指定されていませんが、Kademliaの記事(BitTorrent DHTのベースとなっている)では、次のように述べています。

ネットに参加したいノードは、最初にブートストラッププロセスを経る必要があります。このフェーズでは、参加ノードは、すでにKademliaネットワークに参加している別のノード(ブートストラップノード(ユーザーまたは保存されたリストから取得))のIPアドレスとポートを知っている必要があります。

しかし、どこからそのノードを知っているのでしょうか?マグネットリンクにアドレスなどが表示されません。分散型(トラッカーレス)なので、事前にノードを知っているとは思いません。それとも、DHTは実際には分散化されていませんか?