piratas-ar / piratesbey

herramientas para backupear y mostrar torrents
8 stars 4 forks source link

Scrapear la DHT #6

Open fauno opened 9 years ago

fauno commented 9 years ago

Aparentemente se podrían indexar todos los torrents al monitorear los announce_peer. Cuando se anuncia un par, se anuncia el infohash del torrent. Si piratesbey monitorea todos los announce_peer, puede tener acceso a todos los torrents nuevos, obtener los metadatos de la misma DHT e indexar sus contenidos, sin descargar los datos reales.

azimut commented 9 years ago

hay mas informacion sobre esto? por lo que pude ver el infohash es un sha1 hash. Como se recuperaria la descripcion del torrent?

Solo encontre esto donde usan algo de vuzedht, pero no especifican que: https://github.com/ntoll/p4p2p/blob/master/papers/dht-woot10.pdf?raw=true

seykron commented 9 years ago

Empecé este proyecto, el crawler ya funka, falta terminar de implementar la extensión UT_METADATA de bittorrent, y estoy en eso:

https://github.com/seykron/bittorrent-dht-index

Hay dos formas de "buscar" infohashes:

  1. Esperando los announce_peer de la DHT, pero el volumen de infohashes que recibís es marginal.
  2. Encontrar una lista de millones de infohashes como la que hay en https://zoink.ch/sync/

Después simplemente hay que buscar peers en la DHT y usar el protocolo de bittorrent para pedir la metadata a través de la extensión UT_METADATA.

La documentación del crawler explica con más detalle el algoritmo que usa para crawlear.

El objetivo de bittorrent-dht-index es construir colaborativamente un índice distribuído de metadata. Por ahora, el único "data source" que está implementado es el crawler de la DHT, pero con el índice distribuído cualquiera que se una a la red podría agregar nueva metadata.

Respecto a la infraestructura del índice distribuído, después de evaluar varias opciones y charlar con otras piratas vamos a usar Cassandra sobre una VPN, porque resuelve todo para que los nodos se unan o se vayan de la red distribuída (en piratesbey usamos Elastic Search porque está pensado para hacer búsquedas, pero es bastante limitado para distribuir datos).

Si querés darnos una mano sería genial, muchas estamos en el IRC.