bittorrent - utorrent - ¿Cómo obtener el primer par desde un enlace torrent-magnet?
zbigz (1)
He estado tratando de entender la tecnología torrent-magnet, pero parece que no puedo entender cómo te conectas con el primer par cuando abres un enlace magnet.
Cuando obtiene un enlace imán como el que se muestra a continuación, no contiene un par inicial, solo el hash de información de BitTorrent (btih) y el nombre del archivo.
magnet:?xt=urn:btih:bbb6db69965af769f664b6636e7914f8735141b3&dn=ubuntu-12.04-desktop-i386.iso
Según BitTorrent & Magnets: ¿Cómo funcionan? (Hacer uso de)
Si hace clic en un enlace magnético que no especifica un rastreador (
tr
), el primer par se encontrará utilizando DHT . Una vez que tienes un compañero, el intercambio de amigos se inicia también.
El artículo de DHT en Wikipedia no especifica cómo encontrar un igual, pero en el artículo de Kademlia (en el que se basa BitTorrent DHT), dice
Un nodo que quiera unirse a la red debe pasar primero por un proceso de arranque. En esta fase, el nodo que se une debe conocer la dirección IP y el puerto de otro nodo, un nodo de inicio (obtenido del usuario o de una lista almacenada), que ya está participando en la red Kademlia.
¿Pero de dónde sabe ese nodo? No veo una dirección ni nada presente en el enlace magnético. Como está descentralizado (sin rastreador), no esperaría que conozca el nodo de antemano. ¿O es el DHT en realidad no descentralizado?
En su mayor parte, cuando inicia un cliente de bittorrent, arranque de:
- Los nodos de su última sesión, que se guardaron en el disco.
- otros compañeros que tienes en cualquiera de los enjambres en los que estás
Hay algunos nodos bootstrap conocidos que los clientes pueden usar si no tienen otros medios para encontrarlos. Esencialmente, el único caso en que esto sucede es cuando instalas un cliente por primera vez, y el primer torrent que descargas es un enlace magnet sin un rastreador.
A continuación, puede golpear router.utorrent.com:6881. Creo que la transmisión, azureus y bitcomet ejecutan enrutadores similares, y posiblemente otros clientes también.
Por "enrutador", me refiero a un nodo que parece comportarse como cualquier otro nodo en el DHT, pero probablemente tiene un mecanismo diferente para determinar qué nodos repartir, y probablemente está optimizado específicamente para el caso de uso de solo introducir nodos dht a El uno al otro.
ACTUALIZACIÓN: puede ejecutar su propia máquina de arranque DHT, here''s el código fuente.