Новая сеть рядом с eD2K
ed3k — собственная файлообменная сеть eMule Qt. Она сохраняет то, что двадцать лет работало в eD2K: файлы, известные по хэшу, сеть Kademlia для их поиска, необязательные серверы и очереди загрузки — и заново строит то, что устарело: формат сообщений, транспорт и способ, которым узлы подтверждают свою личность.
eMule Qt работает с обеими сетями одновременно. Диалог Информация о сети и панель Моя информация в окне «Серверы» показывают раздел Сеть ed3k прямо под разделами eD2K и Kad, так что их можно сравнивать строка за строкой.

Те же идеи, новые названия
У большинства строк раздела ed3k есть аналог в eD2K. Самое важное: то, что в eD2K называется High ID, а в Kad — Open, в ed3k называется Router.
| eD2K / Kad | ed3k | Что это значит |
|---|---|---|
| High ID / Kad Open | Router: Yes | Другие могут подключаться к вам напрямую. Роутер хранит записи Kad и помогает узлам за файрволом. |
| Low ID / Kad Firewalled | Router: No (leaf) | Вы за NAT. Другие узлы всё равно достигают вас через ретрансляторы и пробивание NAT. |
| Статус Kad UDP | IPv4 / IPv6 | Проверяется отдельно для каждого семейства: Open, Cone NAT или Symmetric NAT. |
| Kad buddy | Relays | Роутеры, которые передают вам запросы на соединение. У leaf-узла их не меньше двух. |
| Buddies served | Buddies served | Leaf-узлы, для которых ваш роутер работает ретранслятором. |
| Сервер eD2K | Index node | Обычный узел ed3k, индексирующий всё. Отдельного серверного ПО и протокола нет. |
| User hash + Kad ID | Node ID | Один ID на всё — хэш собственного ключа подписи узла. |
| Client ID | — | Не нужен. Другие узлы сообщают вам адрес, по которому они вас видят. |
| TCP-порт + UDP-порт | UDP-порт | Один порт на всё. Тот же номер, что и у вашего TCP-порта eD2K. |
| Обфускация (необязательно) | Connections: Obfuscated | Всегда включена. Открытого режима нет. |
| Kad Indexed | Indexed | Записи, которые ваш узел хранит для сети, и их размер. |
Строка Статус раскрашена как в eD2K: зелёный, когда вы подключены как роутер, оранжевый — как leaf.
Главные улучшения по сравнению с eD2K
- Шифрование по умолчанию. Каждый пакет идёт через обфусцированный QUIC — и Kad, и передача файлов. Ничего не отправляется открытым текстом, а трафик трудно распознать.
- Low ID больше не второй сорт. Проверки доступности, ретрансляторы и UDP hole punching входят в базовый протокол, поэтому два узла за файрволом всегда могут обмениваться файлами.
- IPv4 и IPv6 в одной сети. Оба равноправны, а доступность проверяется для каждого отдельно.
- Один порт. Один UDP-порт вместо проброса TCP- и UDP-портов.
- Настоящая идентификация. У каждого узла есть ключ Ed25519, а его node ID — хэш этого ключа. Захватить чужой ID невозможно.
- Повреждённые данные ловятся сразу. Файлы идентифицируются по хэшу BLAKE3 и проверяются блоками по 256 КиБ, поэтому повреждённый блок обнаруживается при получении, а его отправитель известен — вместо того чтобы часть в 9,28 МБ оказывалась испорченной позже.
- Сложнее атаковать. Позиции в Kad привязаны к IP-адресу узла, а число узлов на диапазон адресов ограничено — это защищает от потока фальшивых узлов. Записи ключевых слов подписываются издателем, что позволяет эффективно фильтровать спам.
- Сервер может запустить любой. Index node — это просто узел с ещё одной возможностью.
- Компактнее сообщения. Protocol Buffers со сжатием zstd заменяют вручную упакованные теги eD2K.
- Есть куда расти. Расширения добавляют наборы файлов, торренты, посты Usenet и ссылки файлообменников как источники того же файла, чат-комнаты и многое другое — без нарушения работы старых узлов.
Работает вместе с eD2K, а не против него
Раздаваемый файл несёт и свой хэш eD2K, поэтому пиры eMule и узлы ed3k обслуживают одну и ту же загрузку. eMule Qt использует номер вашего TCP-порта eD2K для ed3k и выводит ваш user hash eD2K из node ID в ed3k, поэтому каждая запись об источнике eD2K — с серверов, из Kad или при обмене источниками — уже сообщает другим клиентам eMule Qt, что вы работаете с ed3k и где вас найти. Классические клиенты eMule ничего не замечают.