與 eD2K 並行的全新網路
ed3k 是 eMule Qt 自己的檔案分享網路。它保留了讓 eD2K 運作二十年的核心設計——以雜湊值識別檔案、以 Kademlia 網路尋找檔案、可選的伺服器與上傳佇列——並重新打造了已經老化的部分:傳輸格式、傳輸層,以及節點如何證明自己的身分。
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 或對稱 NAT。 |
| Kad buddy | 中繼 | 替你轉送連線請求的路由器。葉節點至少保有兩個。 |
| 已服務的 buddy | 已服務的 buddy | 你的路由器所中繼的葉節點。 |
| eD2K 伺服器 | 索引節點 | 為所有內容建立索引的普通 ed3k 節點。無需獨立的伺服器軟體或協定。 |
| 使用者雜湊值 + Kad ID | 節點 ID | 一個 ID 通用於所有用途,即節點自身簽章金鑰的雜湊值。 |
| Client ID | — | 不需要。其他節點會告訴你它們看到的你的位址。 |
| TCP 連接埠 + UDP 連接埠 | UDP 連接埠 | 一個連接埠通用於所有用途。號碼與你的 eD2K TCP 連接埠相同。 |
| 混淆(可選) | 連線:已混淆 | 永遠啟用,沒有明文模式。 |
| Kad 已索引 | 已索引 | 你的節點為網路儲存的記錄及其大小。 |
狀態列的顏色與 eD2K 相同:以路由器身分連線時為綠色,以葉節點身分連線時為橘色。
相較 eD2K 的主要改進
- 預設即加密。所有封包——Kad 與檔案傳輸皆然——都透過混淆的 QUIC 傳送。不會以明文傳送任何內容,流量也很難被辨識特徵。
- Low ID 不再是二等公民。可達性測試、中繼與 UDP 打洞都是核心協定的一部分,因此兩個位於防火牆後的節點永遠能互相傳輸。
- IPv4 與 IPv6 同處一個網路。兩者皆為一等公民,並分別檢查各自的可達性。
- 一個連接埠。只需轉發一個 UDP 連接埠,不必再轉發 TCP 與 UDP 兩個連接埠。
- 真正的身分。每個節點都有 Ed25519 金鑰,節點 ID 即該金鑰的雜湊值。沒有人能冒用其他節點的 ID。
- 錯誤資料立即發現。檔案以 BLAKE3 雜湊值識別,並以 256 KiB 區塊驗證,因此損毀的區塊在收到時就會被發現,也能知道是誰傳送的——而不是等到 9.28 MB 的分段稍後才驗證失敗。
- 更難遭受攻擊。Kad 位置與節點的 IP 位址綁定,並限制每個位址範圍的節點數量,以對抗偽造節點氾濫。關鍵字記錄由發布者簽章,可有效過濾垃圾內容。
- 任何人都能架設伺服器。索引節點只是多具備一項能力的節點。
- 更精簡的訊息。以 Protocol Buffers 搭配 zstd 壓縮,取代 eD2K 手工打包的標籤。
- 保有成長空間。擴充功能可加入檔案集、torrent、Usenet 貼文與檔案代管連結作為同一檔案的來源、聊天室等——且不會破壞舊版節點。
與 eD2K 並存,而非對立
分享的檔案同時帶有其 eD2K 雜湊值,因此 eMule 節點與 ed3k 節點可提供同一個下載。eMule Qt 使用你的 eD2K TCP 連接埠號碼作為 ed3k 連接埠,並由 ed3k 節點 ID 衍生出你的 eD2K 使用者雜湊值,因此每一筆 eD2K 來源記錄——無論來自伺服器、Kad 或來源交換——都已告知其他 eMule Qt 用戶端你支援 ed3k 以及如何找到你。傳統 eMule 用戶端則不會察覺任何差異。
.:啟用方式
ed3k 節點預設為啟用。你可以透過選項 → ed3k →「啟用 ed3k 節點」將其關閉或開啟。這個網路還很年輕:如果可以,請讓節點全天候執行——每個路由器都會讓所有人的速度更快。此協定為開放的公有領域GitHub 上的規格;目前仍為草案,可能會變動。