Réseau ed3k

Un nouveau réseau à côté d’eD2K

ed3k est le réseau de partage de fichiers propre à eMule Qt. Il conserve ce qui a fait fonctionner eD2K pendant vingt ans — des fichiers identifiés par leur hash, un réseau Kademlia pour les retrouver, des serveurs optionnels et des files d’attente d’upload — et reconstruit les parties qui ont vieilli : le format des messages, le transport et la façon dont les pairs prouvent leur identité.

eMule Qt fait fonctionner les deux réseaux côte à côte. La boîte de dialogue Informations réseau et le volet Mes infos de la fenêtre Serveurs affichent une section Réseau ed3k juste sous les sections eD2K et Kad, pour pouvoir les comparer ligne par ligne.

Les sections Kad et Réseau ed3k de la boîte de dialogue Informations réseau, avec adresses, ID et hashes floutés

Les mêmes idées, de nouveaux noms

La plupart des lignes de la section ed3k ont un équivalent eD2K. Le plus important : ce qu’eD2K appelle High ID et Kad Ouvert s’appelle Routeur dans ed3k.

eD2K / Kad ed3k Signification
High ID / Kad Ouvert Routeur : Oui Les autres peuvent vous joindre directement. Un routeur conserve des enregistrements Kad et aide les nœuds derrière un pare-feu.
Low ID / Kad Pare-feu Routeur : Non (une feuille) Vous êtes derrière un NAT. Les pairs peuvent quand même vous joindre, via des relais et du hole punching.
Statut UDP Kad IPv4 / IPv6 Testé séparément pour chaque famille : Ouvert, NAT cone ou NAT symétrique.
Buddy Kad Relais Des routeurs qui vous transmettent les demandes de connexion. Une feuille en conserve au moins deux.
Buddies servis Buddies servis Les feuilles pour lesquelles votre routeur fait relais.
Serveur eD2K Nœud d’index Un nœud ed3k ordinaire qui indexe tout. Pas de logiciel serveur ni de protocole distinct.
Hash utilisateur + ID Kad ID de nœud Un seul ID pour tout, le hash de la clé de signature du nœud.
ID client — Inutile. Les pairs vous indiquent l’adresse à laquelle ils vous voient.
Port TCP + port UDP Port UDP Un seul port pour tout. Même numéro que votre port TCP eD2K.
Obfuscation (optionnelle) Connexions : Obfusquées Toujours activée. Il n’existe pas de mode en clair.
Kad Indexé Indexé Les enregistrements que votre nœud stocke pour le réseau, avec leur taille.

La ligne Statut est colorée comme celle d’eD2K : verte lorsque vous êtes connecté en tant que routeur, orange lorsque vous l’êtes en tant que feuille.

Principales améliorations par rapport à eD2K

  • Chiffré par conception. Chaque paquet circule via QUIC obfusqué, que ce soit pour Kad ou pour les transferts de fichiers. Rien n’est jamais envoyé en clair, et le trafic est difficile à identifier.
  • Le Low ID n’est plus de seconde classe. Les tests d’accessibilité, les relais et le UDP hole punching font partie du protocole de base : deux nœuds derrière un pare-feu peuvent toujours échanger entre eux.
  • IPv4 et IPv6 dans un seul réseau. Les deux sont gérés à égalité, et l’accessibilité est vérifiée séparément pour chacun.
  • Un seul port. Un unique port UDP au lieu d’un port TCP et d’un port UDP à rediriger.
  • De vraies identités. Chaque nœud possède une clé Ed25519, et son ID de nœud est le hash de cette clé. Personne ne peut usurper l’ID d’un autre nœud.
  • Les données corrompues sont détectées immédiatement. Les fichiers sont identifiés par un hash BLAKE3 et vérifiés par blocs de 256 KiB : un bloc corrompu est repéré dès son arrivée et son émetteur est connu — au lieu d’une partie de 9,28 Mo qui échoue plus tard.
  • Plus difficile à attaquer. Les positions Kad sont liées à l’adresse IP du nœud et le nombre de nœuds par plage d’adresses est limité, contre les inondations de faux nœuds. Les enregistrements de mots-clés sont signés par leur éditeur, ce qui permet un filtrage efficace du spam.
  • Tout le monde peut faire tourner un serveur. Un nœud d’index est simplement un nœud doté d’une capacité de plus.
  • Des messages plus légers. Protocol Buffers avec compression zstd remplacent les tags empaquetés à la main d’eD2K.
  • De la marge pour évoluer. Des extensions ajoutent des ensembles de fichiers, des torrents, des posts Usenet et des liens d’hébergeurs de fichiers comme sources d’un même fichier, des salons de discussion et plus encore — sans casser les anciens nœuds.

Compatible avec eD2K, pas contre lui

Un fichier partagé porte aussi son hash eD2K : les pairs eMule et les nœuds ed3k alimentent donc le même téléchargement. eMule Qt utilise le numéro de votre port TCP eD2K pour ed3k et dérive votre hash utilisateur eD2K de votre ID de nœud ed3k ; ainsi, chaque enregistrement de source eD2K — issu des serveurs, de Kad ou de l’échange de sources — indique déjà aux autres clients eMule Qt que vous parlez ed3k et où vous trouver. Les clients eMule classiques ne remarquent rien.

.:L’activer
Le nœud ed3k est activé par défaut. Options → ed3k → « Activer le nœud ed3k » permet de le désactiver ou de le réactiver. Le réseau est jeune : si possible, laissez un nœud tourner en continu — chaque routeur le rend plus rapide pour tout le monde. Le protocole est une spécification sur GitHub ouverte et du domaine public ; elle est encore à l’état de brouillon et peut changer.

 

Retour à toutes les fonctionnalités