11 09 | 2011

Publier des fichiers avec BitTorrent

Written by Tanguy

Classified in : Homepage, Auto-hébergement, Debian-FR, Libre, April, Pirate-FR

Supposons que vous vouliez publier des fichiers volumineux à l'usage de plusieurs correspondants, par exemple un album de photos. Le protocole de distribution pair-à-pair BitTorrent est probablement la solution la plus appropriée pour cela.

La distribution de fichiers avec BitTorrent nécessite traditionnellement un traqueur, serveur indiquant aux clients les adresses d'autres utilisateurs disposant des fichiers demandés. Cela implique donc de mettre en place son propre traqueur ou de sous-traiter ce service à un prestataire tiers.

Le protocole BitTorrent a depuis été étendu pour permettre de publier des fichiers sans traqueur, en utilisant à la place les services coordonnés de l'ensemble des utilisateurs BitTorrent sous la forme d'une table de hachage distribuée : en pratique, des fichiers distribués sans traqueur sont en réalité traqués par un utilisateurs quelconque — qui n'est d'ailleurs pas forcément personnellement intéressé par ces fichiers.

La table de hachage distribuée permet donc de supprimer la dépendance à un serveur, au prix d'un contrôle inférieur et d'une sécurité moindre. Pour autant que j'ai pu l'essayer, cela fonctionne correctement.

1. Générer les méta-informations

La première étape pour distribuer des fichiers consiste à générer un fichier de méta-informations, couramment appelé torrent. Ce fichier regroupe des informations caractéristiques des fichiers à distribuer, ainsi que des informations annexes telle que l'adresse éventuelle d'un traqueur.

Vous devez donc utiliser un générateur de torrent ; n'en trouvant aucun qui prenne en charge les torrents sans traqueur, j'ai codé le mien : je ne l'ai pas encore empaqueté de façon sérieuse, mais il devrait être tout à fait utilisable.

Si vous avez plusieurs fichiers à distribuer, notez qu'il n'est pas nécessaire de les regrouper dans une archive puisque le protocole BitTorrent permet de distribuer des fichiers multiples en un seul torrent.

Pour un torrent avec traqueur, précisez l'adresse du traqueur qui servira ce torrent ; pour un torrent sans traqueur, indiquez plutôt l'adresse d'un ou plusieurs client BitTorrent fiables :

$ gentorrent --announce http://torrent.example.com:6969/announce -- \
        photos_anniversaire_2011
$ gentorrent --nodes muscadet.example.com:51413 -- \
        photos_anniversaire_2011

2. Servir les fichiers

Vous devez maintenant mettre en place le torrent et les fichiers correspondants sur au moins un client BitTorrent afin d'amorcer la distribution.

Pour cela, lancez un client BitTorrent si vous n'en avez pas déjà un qui tourne, placez les fichiers à distribuer dans son répertoire de téléchargement, puis fournissez-lui le fichier torrent : puisque les fichiers sont disponibles localement, il les vérifiera puis commencera à les servir.

3. Publier les informations de téléchargement

Il ne vous reste plus qu'à fournir à vos correspondants les informations leur permettant de télécharger les fichiers. Il s'agit traditionnellement du fichier torrent, que vous pouvez leur envoyer par courrier électronique, par messagerie instantanée ou publier sur votre site Web.

Une évolution récente du protocole BitTorrent permet même de se passer du fichier torrent : si vous avez utilisé mon générateur de torrent, vous aurez remarqué qu'il indique sur sa sortie standard un lien magnet. Ce lien seul peut remplacer le fichier torrent et suffit à démarrer le téléchargement sur n'importe quel client BitTorrent moderne : l'avantage est qu'il peut être directement collé dans un message, en revanche ce mode ajoute un temps de récupération des informations de l'ordre de quelques minutes. Notez toutefois que le fichier torrent demeure indispensable pour amorcer la distribution des fichiers sur le client BitTorrent initial.

Conclusion

BitTorrent est un protocole trop souvent associé à la distribution d'œuvres particulières telles que des systèmes d'exploitations ou des contrefaçons, et ignoré pour la distribution de documents plus personnels comme des albums photos ou des montages vidéo. Cet état est regrettable, parce qu'il s'agit d'une excellente alternative aux systèmes de distribution centralisés.

N'hésitez donc pas à utiliser ce système pour distribuer de tels fichiers. On objectera probablement que le téléchargement de photos par BitTorrent est trop compliqué pour l'utilisateur moyen puisqu'il implique d'installer un logiciel spécifique : je répondrai simplement que s'il a pu installer Adobe Reader pour lire des documents PDF, il peut bien installer Deluge pour télécharger des photos, le tout est juste de lui indiquer.

10 comments

monday 12 september 2011 à 08:23 o mann said : #1

Pour servir des fichiers « privés » je pense qu'il vaut mieux mettre lees fichiers dans une archive avec un mot de passe ce qui évite que n'importe qui puisse récupérer les fichiers si, par hasard, une personne tierce arrive à obtenir le fichier .torrent ou bien tombe sur le lien magnet.
Merci pour la démarche, je pense faire également ceci car j'ai constaté que certains n'avaient pas peur de télécharger 600Mo de photos hébergés derrière une connexion ADSL (malgré mes avertissements) (j'avais mis une archive à diposition en même temps qu'un gallerie photos).

monday 12 september 2011 à 09:34 Bobby said : #2

Pour ce genre de partage, une appli comme RetroShare (http://retroshare.sourceforge.net/) est probablement bien mieux. Il suffit d'échanger vos clés, et c'est parti...

monday 12 september 2011 à 12:02 Vincent said : #3

Je suis en train de faire usage du traqueur Freetorrent qui n'accepte que des oeuvres sous licences libres ( http://www.freetorrent.fr/ ).

Le P2P c'est l'essence même d'internet.

monday 12 september 2011 à 12:06 Vincent said : #4

Mince, j'aurais du te poser la question :

- Est-ce que l'usage d'un Magnet Link remplace totalement le .torrent ? SI je le partage à trois personnes, et que mon PC s'éteinds, c'est le même magnet link que les autres auront pour ce fichier ?

- ESt-ce qu'un torrent peut être distribué des deux manières ? C'est a dire que je lui met un traqueur, mais s'il meurt il restera toujours le magnet link ?

monday 12 september 2011 à 14:01 freddec said : #5

Salut

Merci pour cette astuce.
Etant moi même photographe (disons amateur expert), cette idée me séduit bien.

En revanche:
Une petite anomalie s'est glissée dans ton billet:
[quote]Vous devez donc utiliser un générateur de torrent ; n'en trouvant aucun qui prenne en charge les torrents sans traqueur, j'ai codé le mien [/quote]
"Le mien" pointe vers le billet lui même (http://tanguy.ortolo.eu/blog/article26/article16/nouveau-gentorrent) au lieu de ton sources, donc on tourne en rond ;-)

Voila voila

monday 12 september 2011 à 16:17 o mann said : #6

@Vincent : par les tables de hachages distribués on pourra toujours télécharger même si ça prendra plus de temps de trouver une personne qui a le fichier.

Et puis sinon freetorrent.fr c'est sympa mais (je ne sais pas si c'est la faute au site ou aux utilisateurs) la plupart des fichiers ont PEX et DHT désactivés :( (pas d'échange de pair ni de table de haschage distribué) je trouve ça dommage. Avec le truc de Tanguy on n'est plus du tout restreint à un tracker et ça change beaucoup

monday 12 september 2011 à 17:38 Guyou said : #7

Utiliser DHT pour des fichiers "privés" semble un peu extrème.

A une époque, j'utilisais un client Torrent en Java qui faisait tout, du sol au plafond, en passant par le tracker. Pour moi, ça parait bien mieux d'avoir un tracker privé pour partager des données privées.

monday 12 september 2011 à 21:26 Tanguy said : #8

@o mann, @Guyou : Je considérais plutôt le cas de données qu'on n'a pas spécialement envie de rendre facilement accessible au monde entier, mais qu'on n'a pas non plus de raison de vouloir restreindre à tout prix. S'agissant de photos privées, le simple droit d'auteur, voire le droit à l'image, suffisent à autoriser par contrat tacite l'usage par des amis, et à interdire l'usage par des inconnus, tout en sachant que des inconnus motivés pour enfreindre votre volonté pourront de toute façon le faire quoi que vous fassiez.

@Vincent : Un torrent distribué à l'aide la DHT devrait rester disponible tant qu'il en reste au moins un client, indépendamment de l'usage d'un fichier torrent ou d'un lien magnet. En revanche un lien magnet ne peut pas totalement remplacer complètement un fichier torrent : il donne un moyen de récupérer ce fichier torrent à l'aide de la DHT, il doit donc avoir été généré et fourni au moins au client initial. Autrement dit, le lien magnet n'est pas utilisable pour le premier client, mais seulement pour les suivants.

@freddec : Mon lien pointe vers l'article dans lequel je présente mon générateur de torrent. Ça me semble plus pertinent que de donner un lien vers mon dépôt Git, en attendant que je rédige une page dédiée à ce logiciel.

@o mann : Effectivement, utiliser des torrents privés, c'est à dire déconseiller l'usage de la DHT et du PEX pour la diffusion de contenus libres, c'est insensé.

tuesday 13 september 2011 à 20:44 François said : #9

"j'ai codé le mien" Le lien pointe vers le présent article...

wednesday 14 september 2011 à 08:50 Tanguy said : #10

@François : Exact, au temps pour moi. C'est corrigé.

Write a comment

What is the last letter of the word ukzul? : 

Archives