Resumen
¿Cómo puede un nuevo cliente unirse a un enjambre sin un rastreador o el conocimiento de al menos un miembro del enjambre con el que intercambiar pares?
No puedes Es imposible.*
* (A menos que un nodo en su red de área local ya sea un nodo en el DHT. En este caso, podría usar un mecanismo de transmisión, como Avahi, para "descubrir" este par y arrancar de ellos. Pero cómo ¿Se reinician ellos mismos? Eventualmente, se encontrará con una situación en la que necesita conectarse a Internet público. Y el Internet público es solo de unidifusión, no de multidifusión, por lo que está obligado a usar listas predeterminadas de pares).
Referencias
Bittorrent DHT se implementa a través de un protocolo conocido como Kademlia , que es un caso especial del concepto teórico de una tabla hash distribuida .
Exposición
Con el protocolo Kademlia, cuando te unes a la red, pasas por un procedimiento de arranque , que requiere que sepas, de antemano , la dirección IP y el puerto de al menos un nodo que ya participa en la red DHT. El rastreador al que se conecta, por ejemplo, puede ser un nodo DHT. Una vez que esté conectado a un nodo DHT, procederá a descargar información del DHT, que le proporciona información de conectividad para más nodos, y luego navegará esa estructura de "gráfico" para obtener conexiones a más y más nodos, que pueden proporcionar ambos conectividad a otros nodos y datos de carga útil (fragmentos de la descarga).
Creo que su pregunta real en negrita, la de cómo unirse a una red DHT de Kademlia sin conocer a ningún otro miembro, se basa en una suposición falsa.
La respuesta simple a su pregunta en negrita es que no . Si no conoce CUALQUIER información sobre siquiera un host que pueda contener metadatos DHT, está atascado, ni siquiera puede comenzar. Quiero decir, claro, podrías intentar por fuerza bruta descubrir una IP en Internet pública con un puerto abierto que transmita información DHT. Pero lo más probable es que su cliente BT esté codificado con alguna IP estática específica o DNS que se resuelva en un nodo DHT estable, que solo proporciona los metadatos DHT.
Básicamente, el DHT solo está tan descentralizado como el mecanismo de unión, y debido a que el mecanismo de unión es bastante frágil (¡no hay forma de "transmitir" por todo Internet! Por lo que debe unidifusión a un host preasignado individual para obtener el DHT datos), Kademlia DHT no está realmente descentralizada. No en el sentido más estricto de la palabra.
Imagine este escenario: alguien que quiere que se detenga P2P sale y prepara un ataque contra todos los nodos DHT estables de uso común que se utilizan para el arranque. Una vez que han organizado su ataque, lo lanzan a todos los nodos a la vez. zas ; Todos los nodos DHT de arranque están inactivos de una sola vez. ¿Ahora que? Estás atascado con la conexión a rastreadores centralizados para descargar listas tradicionales de pares de esos. Bueno, si también atacan a los rastreadores, entonces eres muy, muyhasta un arroyo En otras palabras, Kademlia y toda la red BT están limitadas por las limitaciones de Internet, ya que existe un número finito (y relativamente pequeño) de computadoras que tendrías que atacar con éxito o desconectar para evitar> 90% de usuarios que se conectan a la red.
Una vez que los nodos de arranque "pseudo-centralizados" desaparecen, los nodos interiores del DHT, que no son de arranque porque nadie en el exterior del DHT sabe acerca de los nodos interiores , son inútiles; no pueden traer nuevos nodos al DHT. Entonces, a medida que cada nodo interior se desconecta del DHT con el tiempo, ya sea debido a que las personas apagan sus computadoras, reinician las actualizaciones, etc., la red colapsaría.
Por supuesto, para evitar esto, alguien podría implementar un cliente BitTorrent parcheado con una nueva lista de nodos DHT estables predeterminados o direcciones DNS, y anunciar en voz alta a la comunidad P2P para usar esta nueva lista. Pero esto se convertiría en una situación de "golpe-a-lunar" en la que el agresor (el devorador de nodos) descargaría progresivamente estas listas por sí mismo y apuntaría a los nuevos y valientes nodos de arranque, y luego los desconectaría también.