Wie funktioniert ein DHT in einem Bittorrent-Client get „Bootstrap“?
-
19-09-2019 - |
Frage
Wenn ich einen Torrent haben w / o alle trackers drin, und ich einen bittorent Client gerade begonnen, damit ich noch keine Peers haben ... wie kann ich wissen, die erste mit anderen in der DHT? Es scheint, als würde ich zumindest einen Knoten in der DHT wissen müssen, um loszulegen ....
Lösung
Wenn ein BitTorrent-Client eine Verbindung zu DHT, es ist ein erster Platz, dass es geht Gleichaltrigen zu finden. Mit dem originalen BitTorrent-Client, gab es eine URL zu bitorrent.com, die Dinge Einstieg helfen würde. Ich habe versucht, suchen die Referenz, aber ich konnte ihn nicht finden. Sobald Sie Verbindungen mit anderen Kunden hergestellt haben, dann können Sie eine announce
auf dem DHT-Netzwerk tun Peers für den Strom zu finden, die Sie suchen.
Hier ist ein Link auf die BitTorrent specs das diskutieren DHT.
Ein tracker torrent Wörterbuch tut hat eine „Ansage“ Taste nicht. Stattdessen wird ein tracker torrent hat einen „Knoten“ an. Dieser Schlüssel sollte auf die K eingestellt werden am nächsten Knoten in der torrent Erzeugen von Routing-Tabelle des Clients. Alternativ könnte der Schlüssel zu setzen ein bekannter guter Knoten, wie beispielsweise ein betrieben von der Person, den Strom erzeugen. Bitte nicht automatisch hinzufügen "Router.bittorrent.com" zu torrent Dateien oder fügen Sie automatisch diesen Knoten Kunden Routing-Tabellen.
Andere Tipps
Die Hauptstrecke DHT Bootstrap-Knoten sind router.utorrent.com
und ein CNAME es, router.bittorrent.com
. Port 6881
.
die Grafik am Ende der DHT Überwachung Projekt Website zeigt
- dht.transmissionbt.com
- router.utorrent.com
- router.bittorrent.com
als Bootstrapping Peers
In Bittorrent, haben Sie drei Möglichkeiten:
- Torrent-Datei: einige Torrent-Dateien können
nodes
für Sie Link in das DHT mit einbetten (in der Tat, es empfohlen wird, wenn eine Torrent-Datei machen) - zu: Einige Torrent-Clients hart Code ein paar Bootstrap-Knoten (wie die von stk erwähnt ist). Diese werden in der Regel laufen die von Unternehmen und Organisationen mit langer Laufzeit-Server.
- PEX / Peer Conversations . Sie in der Regel für DHT-Knoten von den Menschen fragen, können Sie andere Torrents herunterladen möchten (., Wenn Ihre Kunden Barraum Sprache verstehen, dh einige Versionen sind nicht kompatibel)
Transmission
verwendet ein fest codierten Bootstrap-Knoten für dht, wenn es keine andere Weg Peers zu erhalten:
bootstrap_from_name( "dht.transmissionbt.com", 6881, bootstrap_af(session) );
ich denke, jedes Torrent-Client ihren eigenen Bootstrap-Knoten verwendet.
Ein Client kann über andere DHT-fähige Kollegen durch sie die Interaktionen mit ihnen lernen. Ein Peer-Unterstützung für DHT ist in seiner Handshake ausgeschrieben. Sobald ein Client entdeckt mindestens einen guten, gut angebundenen DHT Peer, kann es die DHT navigieren immer näher DHT Gleichaltrigen zu finden. Sie wird diesen Peers, die so genannten Knoten in DHT-sprechen, zwischen Neustart der Software erinnern und pflegen / aktualisiert die Liste kontinuierlich, während er ausgeführt wird. Im schlimmsten Fall, in dem ein Kunde kennt keine guten DHT-fähigen Kollegen, es erfordert, dass Sie ein Tracker-basiertes Torrent zum Download, so dass es hoffentlich ein paar guten DHT-fähigen Kollegen es etwa durch den Tracker lernt Kontakt aufnehmen kann.
Update: Denn es von DHT Gleichaltrigen erste Liste ist, wie @Seppo weist darauf hin, kann ein Torrent-Client ein oder mehr hartcodierte DNS-Namen verwenden, um die Adressen für namhafte Kollegen zu finden, und es kann auch eine hartcodierte Liste von Peers ist als ein endgültiger Rückfall als auch. Eine Einschränkung von DNS, ist es jedoch keine Port-Informationen vorgesehen ist, um ein Standardport 6881 allgemein davon ausgegangen wird, während andere Mittel unterstützen Peers auf verschiedene Ports arbeiten.
Für die Aufzeichnung Deluge auch verwendet fest codierten Bootstrap-Knoten :
self.session.add_dht_router("router.bittorrent.com", 6881)
self.session.add_dht_router("router.utorrent.com", 6881)
self.session.add_dht_router("router.bitcomet.com", 6881)