p2pwatch¶
p2pwatch surveille le réseau eMule en continu pour retrouver des médias perdus. Sa première mission : la version française de Keroro mission Titar, diffusée sur Teletoon en 2008 et aujourd'hui quasiment introuvable.
Ces épisodes n'ont pas disparu. Ils réapparaissent par intermittence, le temps qu'un détenteur reste connecté, puis s'évanouissent. Une recherche manuelle tombe presque toujours au mauvais moment. Un nœud qui tourne jour et nuit, non : il cherche sans relâche, note tout ce qu'il croise, et vous prévient dès qu'un épisode manquant apparaît.
Le catalogue enregistre des fichiers et, là où un protocole en publie un, l'identifiant pseudonyme de la source qui les partageait, pour qu'un chercheur puisse reconnaître un partageur récurrent et contacter un archiviste possible. Il ne stocke jamais l'adresse réseau d'un pair (IP, port, pays), et ne relie jamais des identifiants d'un réseau à l'autre. Le détail est dans Légalité et vie privée.
Par où commencer¶
-
Monter un nœud, de zéro à un catalogue qui se remplit.
-
Le piloter au quotidien, le sauvegarder, le régler.
-
Réparer quelque chose qui ne marche pas.
-
Savoir ce que vous risquez et ce que le nœud stocke.
-
Comprendre un mot croisé en chemin.
Comptez une quinzaine de minutes pour l'installation, une fois Docker en place. Installer Docker est de loin l'étape la plus longue ; le reste tient en une commande et un mot de passe à choisir.
Un nœud, c'est deux conteneurs. p2pwatch cherche, catalogue et sert le catalogue web.
ed2k fait tourner amuled, le client eMule, et amuleapi, son interface web, qu'amuled démarre
lui-même. Vous n'avez normalement pas à le savoir, mais cela compte dès que vous lisez les journaux
ou redémarrez une pièce, et les pages le rappellent là où ça se voit.
Partager un catalogue entre chercheurs¶
Chaque chercheur fait tourner son propre nœud. Il n'y a pas de serveur central, et c'est volontaire. Les nœuds ne se connaissent pas et ne se synchronisent jamais : le partage se fait à la main, en s'échangeant des fichiers de catalogue.
Votre catalogue est un simple fichier, data/catalog.db dans votre dossier de travail. Pour le
partager, copiez-le (nœud arrêté) et envoyez-le par le canal que vous voulez. Pour intégrer celui
d'un autre chercheur, fusionnez-le au vôtre avec l'outil merge, décrit dans
Faire tourner un nœud.
La fusion est sûre : chaque fichier est identifié par son empreinte de contenu, donc deux chercheurs qui ont vu le même fichier écrivent la même ligne. Refusionner deux fois le même catalogue ne change rien, l'ordre des fusions non plus, et rien n'est écrasé sans que vous le demandiez.
Un catalogue partagé contient aussi l'historique des sources de vos téléchargements : les user hashes et les noms que des tiers annoncent sur le réseau, quand vous les avez vus et combien d'octets votre nœud en avait reçus. Ce sont des pseudonymes, jamais des adresses. La fusion réunit ces historiques comme les fichiers.
Le cycle habituel : vous cataloguez quelques semaines, vous échangez votre catalog.db, vous
fusionnez ce que vous recevez, et vous remplacez votre catalogue par le catalogue fusionné.
Ce qui n'existe pas¶
Pas de mécanisme pour découvrir les autres chercheurs, pas d'alerte quand un autre nœud trouve un fichier que vous cherchez, pas de synchronisation automatique, pas de serveur central. Cela viendra peut-être si le projet réunit du monde ; pour l'instant, l'échange à la main suffit largement.
Contribuer au code¶
Le code est en Python, en architecture hexagonale, avec des tests stricts. Voyez
Architecture du code pour comprendre comment le crawler fonctionne,
et Lancer les tests pour les suites de tests et leurs prérequis. Les
conventions du projet, les specs et l'historique des décisions vivent dans le dépôt, sous
.claude/CLAUDE.md et
agents/.