IPFS - 可快速索引的版本化点对点文件系统
IPFS星际文件系统是一种点对点的分布式文件系统, 旨在连接所有有相同的文件系统的计算机设备。在某些方面, IPFS类似于web, 但web 是中心化的,而IPFS是一个单一的Bittorrent 群集, 用git 仓库分布式存储。换句话说, IPFS 提供了高吞吐量的内容寻址块存储模型, 具有内容寻址的超链接。这形成了一个广义的Merkle DAG 数据结构,可以用这个数据结构构建版本文件系统,区块链,甚至是永久性网站。IPFS 结合了分布式哈希表, 带有激励机制的块交换和自我认证命名空间。IPFS没有单故障点, 节点不需要相互信任。
参考了4种技术
- 分布式哈希表(DHT)
- 块交换 - BitTorrent
- 版本控制系统- Git (Merkle DAG)
- 自我认证文件系统-SFS
第一种对IPFS有借鉴意义的技术是DHT
全称为分布式哈希表(Distributed Hash Table),是一种分布式存储方法。DHT的原理是:在不需要服务器的情况下,每一个客户端存储一小部分数据,并负责一定区域的检索,进而实现整个DHT网络的寻址和检索
交换层协议
IPFS吸取了BitTorrent的技术,并在其之上进行了再创新,自研了BitSwap模块。使用BitSwap进行数据的分发和交换,用户上传分享数据会增加信用分,分享得越多信用分越高;用户下载数据会降低信用分,当信用分低于一定值时,将会被其他节点忽略
第三种对IPFS有重大影响的项目是Git (Merkle DAG)
我们在进行大文件传输或修改的时候总会遇到存储或传输压力大的问题,而Git在版本迭代方面非常出色。Git存储时会把文件拆成若干个部分,并计算各个部分的哈希值,利用这些构建起与文件对应的有向无环图(DAG),DAG的根节点也就是该文件的哈希值。这样的好处十分明显:如果需要修改文件,那么只需要修改少数图中节点即可;需要分享文件,等价于分享这个图;需要传输全部的文件,按照图中的哈希值下载合并即可
文件系统
具有自验证功能的分布式文件系统(Self-certifying File System,SFS),它将所有的文件保存在同一个目录下,所有的文件都可以在相对路径中找到,其SFS路径名是其原路径与公钥的哈希。这样的设计包含身份的隐式验证功能,这就是为什么SFS被称为自验证文件系统了
往期精彩回顾:
-
区块链知识系列
-
密码学系列
-
零知识证明系列
-
共识系列
-
公链调研系列
-
比特币系列
-
以太坊系列
-
EOS系列
-
Filecoin系列
-
联盟链系列
-
Fabric系列
-
智能合约系列
-
Token系列
|