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 是透明的