eD2K と並ぶ新しいネットワーク
ed3k は eMule Qt 独自のファイル共有ネットワークです。ハッシュでファイルを識別し、Kademlia ネットワークで検索し、任意のサーバーとアップロードキューを備えるという、eD2K が 20 年間支えてきた仕組みはそのままに、古くなった部分である通信フォーマット、トランスポート、ピア同士の身元証明の方法を作り直しました。
eMule Qt は両方のネットワークを並行して動作させます。ネットワーク情報ダイアログと、サーバーウィンドウのマイ情報ペインには、eD2K と Kad のセクションのすぐ下に ed3k ネットワークセクションが表示されるので、項目ごとに比較できます。

考え方は同じ、名前は新しく
ed3k セクションの項目の多くには eD2K の対応項目があります。最も重要なのは、eD2K で High ID、Kad でオープンと呼ばれる状態が、ed3k ではルーターになる点です。
| eD2K / Kad | ed3k | 意味 |
|---|---|---|
| High ID / Kad オープン | ルーター: はい | 他のノードから直接接続できます。ルーターは Kad レコードを保持し、ファイアウォール内のノードを支援します。 |
| Low ID / Kad ファイアウォール | ルーター: いいえ(リーフ) | NAT の内側にいる状態です。リレーとホールパンチングを介して、他のピアから接続できます。 |
| Kad UDP ステータス | IPv4 / IPv6 | それぞれのアドレスファミリーを個別にテストします: オープン、Cone NAT、Symmetric NAT。 |
| Kad バディ | リレー | 接続要求をあなたに中継するルーターです。リーフは少なくとも 2 つ保持します。 |
| 提供中のバディ | 提供中のバディ | あなたのルーターが中継しているリーフです。 |
| eD2K サーバー | インデックスノード | すべてをインデックス化する通常の ed3k ノードです。専用のサーバーソフトやプロトコルは不要です。 |
| ユーザーハッシュ + Kad ID | ノード ID | すべてに使う単一の ID で、ノード自身の署名鍵のハッシュです。 |
| クライアント ID | — | 不要です。ピアが、見えているあなたのアドレスを教えてくれます。 |
| TCP ポート + UDP ポート | UDP ポート | すべてを 1 つのポートで処理します。番号は eD2K の TCP ポートと同じです。 |
| 難読化(任意) | 接続: 難読化済み | 常にオンです。平文モードはありません。 |
| Kad インデックス済み | インデックス済み | あなたのノードがネットワークのために保存しているレコードと、そのサイズです。 |
ステータス行は eD2K と同様に色分けされます。ルーターとして接続中は緑、リーフとして接続中はオレンジです。
eD2K からの主な改善点
- 設計段階から暗号化。Kad もファイル転送も、すべてのパケットが難読化された QUIC 上を流れます。平文で送信されることは一切なく、トラフィックの特定も困難です。
- Low ID はもう二級扱いではありません。到達性テスト、リレー、UDP ホールパンチングがコアプロトコルに含まれているため、ファイアウォール内のノード同士でも常に転送できます。
- IPv4 と IPv6 を 1 つのネットワークに。どちらも第一級の扱いで、到達性はそれぞれ個別にチェックされます。
- ポートは 1 つ。TCP と UDP の 2 つのポートを転送する代わりに、UDP ポート 1 つで済みます。
- 本物の ID。各ノードは Ed25519 鍵を持ち、ノード ID はその鍵のハッシュです。他のノードの ID を乗っ取ることはできません。
- 不正データを即座に検出。ファイルは BLAKE3 ハッシュで識別され、256 KiB ブロックごとに検証されます。そのため、破損ブロックは受信時に発見され、送信元も特定できます。9.28 MB のパートが後から失敗することはありません。
- 攻撃に強い設計。Kad の位置はノードの IP アドレスに紐付けられ、アドレス範囲ごとのノード数も制限されるため、偽ノードの大量投入に対抗できます。キーワードレコードは公開者が署名するので、効率的なスパムフィルタリングが可能です。
- 誰でもサーバーを運用可能。インデックスノードは、機能が 1 つ多いだけの通常のノードです。
- よりスリムなメッセージ。eD2K の手作業でパックされたタグの代わりに、zstd 圧縮付きの Protocol Buffers を使用します。
- 拡張の余地。拡張機能により、ファイルセット、torrent、Usenet の投稿、ファイルホスターのリンクを同一ファイルのソースとして扱えるほか、チャットルームなども追加できます。古いノードとの互換性も損ないません。
eD2K と競合せず、共存
共有ファイルには eD2K ハッシュも付与されるため、eMule のピアと ed3k ノードが同じダウンロードに提供できます。eMule Qt は ed3k に eD2K の TCP ポート番号を使い、eD2K のユーザーハッシュを ed3k のノード ID から導出します。そのため、サーバー、Kad、ソース交換のいずれから得た eD2K ソースレコードでも、他の eMule Qt クライアントはあなたが ed3k に対応していること、そしてその接続先をすでに把握できます。従来の eMule クライアントは何も気づきません。