分布式哈希表(Distributed Hash Table)

1,734 阅读1分钟

IPFS从根本上讲是一个 Distributed Hash Table (DHT)

  1. DHT用于记录并描述 CIDs 与上传数据的用户(IP)之间的映射关系。
  2. 因为在IPFS网络中不存在存储中心节点,所以DHT是分布式存储的。
  3. 如同信息是被IPFS网络中所有节点分布式存储一样,IPFS世界中每个节点都会存储DHT的部分子集。

当我们讲一个用户把某个信息上传到IPFS网络中,其实所表达的含义是:

告知IPFS网络某个信息的CID被添加到了DHT中;

DHT中增加了一个映射关系: 新增信息的CID 和该用户的IP地址;

当某个用户需要下载数据时,需要根据相应的CID(内容ID)在DHT中找到对应的IP地址、然后执行下载。

IPFS网络的速度和可靠性优势源于:可以有不同用户上传同样的数据,这意味着在DHT中可以存在同样数据的不同IP地址映射。

因而:

  1. IPFS网络数据下载时可以就近选择下载,这无疑极大提高数据下载速度。
  2. 即使在DHT中存在数据映射关系的用户机器处于关机状态,并不会导致数据无法获取,甚至当某个节点用户决定放弃继续在本地存储DHT中记录的CID对应的数据时,其他节点用户可以立即替代该节点用户负责存储数据。这无疑提高了数据获取的可靠程度。