IPFS
什么是IPFS
IPFS – 即星际文件系统(InterPlanetary File System),是以太坊的去中心化存储和文件引用系统,也是一个基于内容寻址的点对点的超媒体传输协议
为什么会出现IPFS
因为IPFS的的诞生可以完美的解决现有的HTTP存在的问题
HTTP存在如下问题:
- 中心化存储,中心服务器一旦受到攻击,数据就可能被泄露
- 容易被攻击,防范攻击的成本高
- 数据存储成本高
- 中心化服务器被集中访问时,会产生阻塞
- 等等
IPFS的优势:
- 下载速度快。与 HTTP 相比,IPFS 将中心化的传输方式变为分布式的多点传输。IPFS 使用了 BitTorrent 协议作为数据传输的方式,使得 IPFS 系统在数据传输速度上大幅度提高
- 优化全球存储。IPFS 采用为数据块内容建立哈希去重的方式存储数据,数据的存储成本将会显著下降
- 更加安全。IPFS、Fiecoin的分布式特性与加密算法使得数据存储更安全
- 数据的可持续保存。IPFS提供了一种使互联网数据可以被可持续保存的存储方式,并提供数据历史版本Git 的回溯功能
技术支持
DHT 分布式哈希表
DHT是一种分布式存储方法。DHT 的原理是:在不需要服务器的情况下,每一个客户端存储一小部分数据,并负责一定区域的检索,进而实现整个 DHT 网络的寻址和检索。新版 BitComet 允许同时连接 DHT 网络和 Tracker, 可以在无 Tracker 的情况下进行下载。
Kademlia
在 Kademlia 网络中,所有信息均以哈希表条目的形式加以存储,这些信息被分散地存储在各个节点上,从而以全网构成一张巨大的分布式哈希表。我们可以形象地把这张哈希大表看成一本字典:只要知道了信息索引的 key,便可以通过 Kademlia 协议来查询与其对应的 value 信息, 而不管这个 value 信息究竟是存储在哪一个节点之上。正是这一特性确保了 IPFS 成为没有中心调度节点的分布式系统。
Git
我们在进行大文件传输或修改的时候总会遇到存储或传输压力大的问题,而 Git 在版本迭代方面非常出色。Git 存储时会把文件拆成若干个部分,并计算各个部分的哈希值,利用这些构建起与文件对应的有向无环图(DAG),DAG 的根节点也就是该文件的哈希值。这样的好处十分明显:如果需要修改文件,那么只需要修改少数图中节点即可;需要分享文件,等价于分享这个图;需要传输全部的文件,按照图中的哈希值下载合并即可。
SFS 分布式文件系统
它将所有的文件保存在同一个目录下,所有的文件都可以在相对路径中找到,其 SFS 路径名是其原路径与公钥的哈希。
IPFS和区块链的区别
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式
IPFS是以太坊的去中心化存储和文件引用系统,也是一个基于内容寻址的点对点的超媒体传输协议
- 从描述上来看,IPFS跟区块链有很多相似点,但IPFS并不是一个区块链项目,IPFS旨在取代HTTP,它是一种协议和网络,设计用于共享和存储媒体的点对点方法
- 受限于各方面原因,区块链技术不适合存储大量数据。IPFS由需要可公开访问的数据库的区块链应用程序使用,IPFS将大量数据存储在不同的节点上,它使用区块链的通证经济(其激励层Filecoin)来保持这些节点在线。
- 在区块链上输入数据后,它无法更新或删除。在IPFS中,如果一个节点选择删除存储的数据,该数据只有在没有其他节点选择继续托管时才会从网络中删除。同时,IPFS支持版本控制,使得用户能够管理和追踪文件的不同版本。