Skip to content

分散式雜湊表 (DHT)

IPFS 節點如何找到彼此並發現誰擁有您要尋找的內容。

什麼是 DHT?

分散式雜湊表是一種去中心化的查找系統。把它想像成一本沒有人完整持有的電話簿 — 每個參與者持有幾頁,並且知道向誰詢問他們沒有的頁面。

在 IPFS 中,DHT 將 CID 對映到擁有相應內容的節點的網路位址。當您透過 CID 請求檔案時,DHT 幫助您找到哪些節點可以提供它。

在 IPFS 中的運作方式

IPFS 使用 Kademlia DHT 的變體。每個節點維護一個鄰近節點(按節點 ID 之間的 XOR 距離計算)的路由表。當節點想要查找內容時:

  1. 計算 CID 與已知節點 ID 之間的 XOR 距離
  2. 詢問最近的已知節點:「誰擁有這個 CID?」
  3. 這些節點要麼擁有內容,要麼指向更近的節點
  4. 搜尋逐漸收斂 — 每一跳都更接近擁有檔案的節點
  5. 從提供內容的節點直接擷取內容

TIP

這個查找通常只需要幾跳 — 即使在數百萬節點的網路中,檔案也可以在 20-30 步內被定位。

提供者記錄

當節點固定內容時,它會向 DHT 發佈一個提供者記錄,宣佈:「我擁有 CID X,我的位址是 Y。」 這些記錄在約 24 小時後過期,必須定期重新整理。這就是為什麼活躍的固定很重要 — 沒有它,提供者記錄會過期,內容會變得無法發現。

為什麼您不需要考慮 DHT

IPFS.NINJA 為您處理所有 DHT 互動。當您上傳檔案時:

  • 我們的叢集固定檔案並自動發佈提供者記錄
  • 提供者記錄持續重新整理 — 您的內容保持可發現
  • 我們的閘道在提供請求時透過 DHT 解析 CID
  • 您只需使用 CID 和閘道 URL — DHT 是透明的