IPFS是怎么工作的原理是什么?
IPFS 寻求创建一个永久的分布式网络。它通过使用内容寻址系统而不是 HTTP 的基于位置的系统来做到这一点。
HTTP 请求看起来像http://10.20.30.40/folder/file.txt
IPFS 请求看起来像/ipfs/QmT5NvUtoM5n/folder/file.txt
IPFS 不使用位置地址,而是使用内容本身的表示来寻址内容。这是使用文件上的加密哈希完成的,并将其用作地址。散列代表一个根对象,其他对象可以在它的路径中找到。您无需与服务器交谈,而是可以访问数据的这个“起点”。通过这种方式,系统可以利用物理接近度。如果与我非常亲近的人拥有我想要的东西,我会直接从他们那里获取,而不是连接到中央服务器。在前面的讲座示例中,课堂上的学生可以相互拉取数据,而无需与服务器建立自己的通信。使用HTTP,您询问某个位置的内容,而使用 IPFS,您询问某个文件的位置。 为了实现这一点,IPFS 从其他点对点系统中综合了一些成功的想法。

分布式哈希表
为了存储数据,IPFS 使用分布式哈希表或 DHT。一旦我们有了一个散列,我们就会询问拥有该散列中的内容的对等网络,然后我们直接从拥有我想要的数据的节点下载内容。数据使用类似于 BitTorrent 的机制在网络中的节点之间传输。在 IPFS 网络上寻找某些内容的用户会找到有权访问该内容的邻居。然后他们从这些邻居那里下载一小部分内容。在 DHT 和 BitTorrent 协议之上,IPFS 使用默克尔树。这是一种类似于 Git 用作版本控制系统和比特币区块链中使用的协议的数据结构。在 Git 中,它用于跟踪源代码的版本,而在 IPFS 中,它用于跟踪整个网络的内容。