問題タブ [libtorrent-rasterbar]
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.
c++ - Libtorrent:Download-接続先のマシンが積極的に拒否したため、接続できませんでした
パラメータ付きの小さなテキストファイルにトレントファイルを作成しました。
client.exe abc.txt -o abc.torrent -t http://MyIpv4:9090/ -l
torrent を作成するためのコードはlibtorrent-tutorial-make_torrentと同じで、クライアントの起動中にlt::settings_pack::broadcast_lsd
以下のように true に設定しました
トレント コードをダウンロードします。
このコードは公開 torrent で機能しています。トレント Web サイトの 1 つから有効なトレント ファイルからファイルをダウンロードしてテストしました。
別のマシンの同じwifiネットワークで、以下のようにマグネットURIを渡してこのトレントをダウンロードしようとしています
ダウンロード用ログ
この質問から、LAN ではローカル ピア検出オプションをオンにし、NAT-PMP/UPnP を有効にする必要がある場合があること を知りました。
私が試したこと:
lt::settings_pack::broadcast_lsd
に設定true
- [コントロール パネル] -> [ネットワークと共有] -> [詳細設定] -> [パブリック フォルダーの共有] = [はい] で Windows ネットワーク検出を有効にします。
- クライアント マシンのファイアウォールを完全にオフにしました
- ポート 9090 の TCP および UDP のインバウンド規則を追加
- http の代わりに udp を使用して torrent を作成する場合: 他のマシンからダウンロード コードを実行する
An address incompatible with the requested protocol was used.
と、ルーターの設定にアクセスできないため、ルーターの設定をいじることができません。
同じネットワーク上で 2 つのピアを実行し、この問題なしで受信メッセージを送信できます。
このエラーを克服する方法はありますか?
bittorrent - 小さなデータに Bittorrent DHT を活用する方法はありますか
プールされたデータセットを同期する必要がある一連のほぼ接続されたノードがある状況があります。それらは 200 ~ 1500K のファイルであり、環境に応じて 30 分から 6 時間の間で不定期に更新されます。現在、ノードの数は数百にのぼりますが、理想的には、それはさらに増えるでしょう。
現在、ノードのクラスター間で一連のファイルを同期させるために libtorrent を使用しています。私は数時間ごとにダンプを行い、前の torrent に基づいて新しい torrent を作成します。次に、BEP 38 の戦略を使用して関連付けます。情報ハッシュは、他のノードがポーリングして取得する DHT の既知のエントリにポストされます。
これを行うためのより良い方法があるかどうか疑問に思っています。私が BitTorrent を好きな理由は、もともとファームウェアの更新のためでした。素晴らしい接続性以外のノードについて心配する必要はありません.DHTを使用すると、適度にうまく自己組み立てできます. その後、これらのプールされたファイルを同期するように拡張されました。
announce_peer
現在、各ノードが新しいレコードごとに実行できるようにする拡張機能を作成できるかどうかを確認しようとしています。理論的には、利害関係者はそれを聞くことができます。これにより、次の 2 つの大きな問題が生じます。
- 関心のあるノードに新しいデータがあることを知らせるにはどうすればよいですか?
- 数分ごとに新しい情報ハッシュを追加する 1000 以上のノードがある場合、DHT はどうなりますか?
四角いペグを丸い穴に打ち込もうとしているような気がすることは認めますが、一度に実行するプロトコルはできるだけ少なくしたいと考えています。
python - DHT に頻繁にアナウンスすることで、仲間をすばやく獲得できますか?
BitTorrent プロトコルは初めてなので、優しくしてください。
私が理解していることから、トレントは 15 分ごとに DHT にアナウンスすることになっています。デフォルトでは、これがlibtorrentの機能です。しかし、最初の発表の後、ピアを獲得できなかった場合はどうなりますか? libtorrent がピアのリストを取得する次の機会を得るまで、15 分待たなければなりませんか?
待つ必要がないように、次を使用して 3 秒ごとに DHT にアナウンスするように libtorrent を構成しました。
この方法で、10 秒以内にピアのリストを取得することに成功しました。これはピアをすばやく取得するための適切な方法ですか? そうでない場合、DHT からピアをすばやく取得する適切な方法は何ですか? これは虐待ですか?