Créer un client BitTorrent en Go à partir de zéro
(blog.jse.li)Explication pas à pas de la création d’un client basé sur un tracker (hors DHT, liens magnet, etc.)
-
Analyse des fichiers
.torrent -
Découverte des pairs
-
Analyse de la réponse du tracker
-
Échange de payloads avec les pairs (
concurrency,pipelining, etc.)
4 commentaires
J’utilise des torrents, mais je me demandais aussi comment on les crée ; merci pour ces bonnes informations.
Je me demandais s’il existe encore aujourd’hui des usages de torrent autres qu’illégaux, alors j’ai fait une recherche.
Murder, l’open source que Twitter utilisait pour le déploiement de serveurs, n’est désormais plus maintenu.
https://github.com/lg/murder
Blizzard utilisait le protocole torrent pour distribuer de gros clients, mais cela aussi a été abandonné après 2015.
https://us.battle.net/forums/en/bnet/topic/16283439122
Au mieux, il reste son utilisation par Internet Archive pour le téléchargement de fichiers.
https://help.archive.org/hc/en-us/…
Cela peut parfois être utile même pour récupérer des distributions Linux de niche.
Un assez grand nombre d’OS basés sur Linux proposent une option de téléchargement via torrent,
et lorsqu’il devient plus tard impossible de les télécharger directement, par exemple parce que le développement de l’OS a été arrêté,
on peut alors les obtenir via d’autres utilisateurs qui les ont déjà téléchargés et continuent de les partager en seed.
Il existe aussi plusieurs clients BitTorrent complets et bibliothèques en Go, en plus de celui-ci.
https://github.com/cenkalti/rain
https://github.com/anacrolix/torrent