IPFS从根本上讲是一个 Distributed Hash Table (DHT) 。
DHT用于记录并描述CIDs与上传数据的用户(IP)之间的映射关系。- 因为在
IPFS网络中不存在存储中心节点,所以DHT是分布式存储的。 - 如同信息是被
IPFS网络中所有节点分布式存储一样,IPFS世界中每个节点都会存储DHT的部分子集。
当我们讲一个用户把某个信息上传到IPFS网络中,其实所表达的含义是:
告知
IPFS网络某个信息的CID被添加到了DHT中;
DHT中增加了一个映射关系: 新增信息的CID和该用户的IP地址;
当某个用户需要下载数据时,需要根据相应的CID(内容ID)在DHT中找到对应的IP地址、然后执行下载。
IPFS网络的速度和可靠性优势源于:可以有不同用户上传同样的数据,这意味着在DHT中可以存在同样数据的不同IP地址映射。
因而:
IPFS网络数据下载时可以就近选择下载,这无疑极大提高数据下载速度。- 即使在
DHT中存在数据映射关系的用户机器处于关机状态,并不会导致数据无法获取,甚至当某个节点用户决定放弃继续在本地存储DHT中记录的CID对应的数据时,其他节点用户可以立即替代该节点用户负责存储数据。这无疑提高了数据获取的可靠程度。