星际文件系统是一个点对点协议,它试图以分布式的方式连接设备来存储和共享文件。IPFS 的设计目的是解决 HTTP 问题,并将internet转移到永久 web。内容是永久存储的,没有一个实体控制或拥有所有数据的 web。
由于 IPFS 的点对点设计,用户将更快地接收请求的数据,因为它将路由到拥有该数据副本的最近的用户。设想一个任何用户都可以同时是客户端和主机的网络。在这样的网络中,带宽的使用效率要高得多。
将文件上传到 IPFS 后,将返回一个不可变的哈希值,它标识文件的内容。哈希以密码方式保证惟一地表示该内容。另一方面,任何人都可以为 IPFS 提供存储。跨存储提供程序复制和分块数据。为了实现这一点,IPFS 结合了过去几年中计算机科学的一些伟大思想。
要了解事物是如何工作的,首先,需要进行基本理解:
HTTP 是 IP 地址,IPFS 是内容地址。
换句话说,在 IPFS 网络中,内容的哈希充当指向文件的指针,而不是文件的地址。因此,相同的内容将具有相似的哈希值。
在网络上放置一个路由层,以查找其他节点和存储的数据。DHTs(例如,在 MIT 提出的 Chord)是创建这种路由机制的最常用方法。DHT 是存储在网络分布式节点上的数据的类字典接口。当一个节点声明一个可供下载的块时,IPFS 使用它自己的对等 ID 在 DHT 中存储一条记录,因此实际上可以很容易地找到现在位于网络中独立节点中的 bucket。
在这些节点之间交换数据的主要协议是 Bitswamp,灵感来自流行的 BitTorrent 协议。一旦节点彼此找到并连接起来,Bitswamp 就负责内容的传输。它提供了最佳的机会,通过下载桶为不同的伙伴在同一时间下载大文件更快。
受 git 协议的启发,IPFS 使用 Merkle DAG 为网络周围的内容提供一个结构。它只是用一个逻辑结构连接一系列的内容(例如,文件和文件夹)以有向无环图的形式放在一起。
到目前为止,所有组件都关心内容寻址的数据,这些数据是不可变的。它意味着改变一个对象会导致它的哈希/地址的改变,事实上,这会使它变成一个不同的对象。命名层(IPNS)不仅提供人类可读的内容名称,而且还能够处理指向这些名称的可变指针。IPNS 基于 SFS,其中名称只是公钥的散列。记录由私钥(拥有私钥的人控制名称)签名,并通过路由系统分发。
Filecoin 通过加密货币激励 IPFS。与 SiaCoin 等项目类似,NOIA 和 Storj 也在努力实现这一运动。早期的适配器开始在这些解决方案的基础上构建应用程序,至少在测试阶段,正如理论中所宣称的,用例似乎不计其数。
End
非常感谢您对 IPFS&Filecoin 项目的持续支持。我们很高兴继续与您一起,为人类信息建立一个强大的,去中心化和高效的基础。
FilCloud 帮你迅速了解 IPFS 领域的热点技术和应用
公众号:filcloud