分布式存储就像分布式应用一样有两种技术解释,一种是将数据分散存储在多台独立的设备上,总体上实现了技术架构上的分布式,但所属权仍然是集中式的,而在
区块链应用领域则表示的是以IPFS 为代表的新一代分布式存储技术,与传统的存储技术不同,新一代的分布式存储不光改变了存储的方式,还改变了系统架构与网络传输协议,让分布式存储真正实现了可以分布存储在不同所有方之间,同时还实现了对于数据的隐私保护与安全。
那么,什么是IPFS?
IPFS,全称 Inter Planetary File System,中文名为星际文件系统,IPFS 希望通过点对点传输网络构建一个完全分布式的互联网,类似于 BitTorrent,但是又有所发展和不同。在目前的互联中,如果你想从网上下载一张照片,你需要告诉电脑去哪里找这张照片,也就是照片所在的 IP 地址或域名——这就叫 " 地址寻址 "。但如果这个地址不存在了,也就是说服务器关闭了,你就无法获取那张照片了。不过很可能有人之前已经下载过那张照片,并且在他的电脑中仍然保存着备份,可你的电脑却无法从那个人那里获得该备份。为了解决这个问题,IPFS 把“地址寻址”改为“内容寻址”。这样一来,你不用再告诉电脑去哪里寻找资源,而只需告诉它你想要什么资源。从“地址寻址”到“内容寻址”是 IPFS 与现有存储技术与互联网协议最重要的区别。除此之外,IPFS 也是一种复合的技术,其中比较重要的有4种:BitTorrent、DHT、Git 和 SFS。
(1)DHT,全称为分布式哈希表(Distributed Hash Table),是一种分布式存储方法。DHT的原理是在不需要服务器的情况下,每一个客户端存储一小部分数据,并负责一定区域的检索,进而实现整个DHT网络的寻址和检索。同时所有信息均以哈希表条目的形式加以存储在Kademlia 网络(点对点协议中的一种算法,当我们在网络中搜索某些值,即通常搜索存储文件散列或关键词的节点的时候,Kademlia算法需要知道与这些值相关的键,然后分步在网络中开始搜索。)这些信息被分散地存储在各个节点上,从而以全网构成一张巨大的分布式哈希表。可以形象地把这张哈希大表看成一本字典:只要知道了信息索引的key,便可以通过 Kademlia 协议来查询与其对应的 value 信息,而不管这个 value 信息究竟是存储在哪一个节点之上。正是这一特性确保了IPFS成为没有中心调度节点的分布式系统。
(2)BitTorrent, ipfs借鉴的首先是消极上传者的惩罚措施,在 BitTorrent 的客户端上传数据会奖励积分,而长期不上传的消极节点会被扣分,如果分数低于一定限度,那么网络会拒绝再为他们提供服务;其次是文件可用性检查,BitTorrent优先把稀缺的文件分享出去,各个客户端之间相互补充,这样种子不容易失效,传输效率也提高了。
(3)Git,在进行大文件传输或修改的时候总会遇到存储或传输压力大的问题,而Git在版本迭代方面非常出色。Git存储时会把文件拆成若干个部分,并计算各个部分的哈希值,利用这些构建起与文件对应的有向无环图(DAG),DAG的根节点也就是该文件的哈希值。这样的好处十分明显:如果需要修改文件,那么只需要修改少数图中节点即可;需要分享文件,等价于分享这个图;需要传输全部的文件,按照图中的哈希值下载合并即可。
(4)Self-certifying FileSystem(SFS),它将所有的文件保存在同一个目录下,所有的文件都可以在相对路径中找到,其SFS路径名是其原路径与公钥的哈希。这样的设计包含身份的隐式验证功能,因此SFS被称为自验证文件系统。
版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。