什么是分布式存储?Filecoin 的深入研究

分布式存储具有使我们文件更安全的潜力

2020年分布式存储以其独特的姿态涌入我们的视野之中,可是我们好像从来没有思考过,究竟什么是分布式存储?而我们为什么需要分布式存储?

实际上采用分布式存储可以说是“被迫”的,因为面对越发飞速发展的互联网、整个生态应用不断创新、用户数量不断庞大、数据阶梯式增长这些无疑不给现有的本地存储带来巨大的压力。因此,必须通过采用其他分布式存储系统去缓解相应的压力,所以分布式存储和分布式文件系统应运而生。

今天我们这篇文章将对于分布式存储进行介绍,并对Filecoin进行深入研究。


01
 定  义

分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。


02
分布式存储简介

现代计算处于高度集中的阶段,在过去的十年时间中,一些大型存储公司通过将传统计算机系统划分云存储产品获得了巨大的财富。这侧面反映了现代化网络中心化集中的现象——如果其中一个供应商发生问题时,便会衍生成重大的互联网事件。比如:2017年Amazon网络突然中断;2020年6月Github长时间中断;2020年10月Microsoft多周云服务出现问题等等。

而我们托管在这些服务上的内容也值得我们担心,它们被隐藏在经常断开的脆弱链接之后面,这对我们构建的计算机系统以及越来越依赖它们的社会具有深远的影响。集中式架构之所以成功,部分原因在于它们易于构建。为了阻止合并,开发人员需要组成的基础构建区块。分布式存储就是这样的基石,是分布式Web的前提。


03
分布式存储的基本特征

1.弹性

现代互联网非常脆弱。如今,Web内容隐藏在URL后面,每个URL在任何给定时刻都属于一台确定的服务器,一旦供应商出于原因中断网络连接,其指向的内容将不可访问。集中化会增加这种影响,造成单一节点故障并为审查提供方便。结果,在当今的互联网中,普遍存在着互联网链接失效的现象,就好像当一个链接断开或永久不可用,国家级审查和分布式拒绝服务攻击破坏可以访问任何文件。

在理想的分散系统中,运营商的损失不应阻止用户对先前存储和服务的内容的访问。通过将责任分散到网络的许多节点上,分散式系统还可以自然地抵抗审查制度和其他拒绝服务的尝试,因为没有集中的目标可以使攻击者大量获取资源。

集中存储系统易于受到审查的影响,一个典型的案例是当西班牙的17个自治社区之一的加泰罗尼亚,举行独立公投时,反对独立计划的西班牙政府封锁了拥有ISP级别投票信息的网站,通过切断这些关键的链接,政府有效地阻止了许多个人访问这些信息。

然而,许多网站也使用对等存储网络星际文件系统(IPFS)进行了镜像。任何运行IPFS节点的人都可以从网络上的其他节点下载经过审查的信息,并开始自己分享。IPFS的分散化本质与西班牙政府阻止访问这些文件的企图背道而驰——只要一个节点被封锁,另一个节点就可以轻易地取代它。通常,分布式存储系统使网络级阻塞变得更加困难。

2.效率

所有计算系统体系结构都有其优点和缺点,并且没有单一的解决方案适合所有可能的用例。不幸的是,现代网络对集中化的重视没有什么不同。如今,全球少数城市中的一些集中式数据中心存储的内容最多。例如,如果同一网络上的两个用户希望彼此发送消息,这些消息通常将发送到其中一个数据中心;如果100个用户在一个房间里用他们的设备观看同一段视频,他们每个人都会访问一个中央服务器并下载100份副本,而不是下载一份副本并在本地网络上共享它。

最简单的说法是:分布式存储使得共享文件变得更容易,而不需要在互联网上向特定的几个数据中心发送请求。取而代之的是,节点之间通过尽可能少的中间人建立连接。例如,连接到其他国家的节点仍然需要几次跳转,但是同一网络上的节点可以直接共享文件。分布式存储的最终目标是建立众多的节点,从而使每个人都可以通过本地对等的节点来获取信息。

分布式存储解决方案可以将基本的新效率引入此类活动。通过绕过数据中心,分布式系统可以使节点放置在比现代内容分发网络更接近终端用户的地方,甚至比现代内容交付网络都更靠近最终用户,从而大大加快了文件检索速度。通过本地网络进行点对点文件共享还可以节省带宽,特别是在对更广泛的互联网访问有限的地区。


04
分布式存储的理想特性

尽管弹性和效率是分布式存储的标志,但理想的存储系统可能还具有许多其他特征:

1.可访问

理想的分布式系统应该是可访问的。参与网络应该很容易,允许尽可能多的节点代表网络存储和分发文件。

如果您正在阅读本文并想知道:我可以是一个节点吗?答案是:视情况而定。借助Filecoin,任何相对精通技术的人都应该能够运行客户端节点以与网络进行交互。至于运行存储矿工节点,并不是所有人都能做的,因为您需要具有满足特定规格的硬件。

对于IPFS,节点的硬件要求较低,这意味着有可能有更多的用户通过运行节点,或许通过运行内置的Web浏览器,对网络做出贡献。云服务提供商使廉价,可靠的存储比以往任何时候都更容易使用。它们成功的一个主要方面是能够通过API通过代码配置和管理存储的能力。任何竞争性系统都应该能够提供相同级别的便利。

2.内容寻址

如前所述,URL体现了一些内在的设计折衷。它们描述的是数据的位置,而不是数据的内容。为了解释集中式系统是如何使查找数据变得困难的——假设您想下载一只毛茸茸的小猫的照片。考虑以下两个URL:

https://example1.com/cat.jpeg

https://example2.com/cat.jpeg

这些URL都引用了一个名为cat.jpeg的文件,但不能保证这两个文件相同。如果example1.com离线,则无法确定example2.com是否满足您的需求-cat.jpeg可能完全不同。事实上,它甚至可能是一张狗的照片!URL和它引用的内容之间没有固有的关系。

因此,你没有办法问今天的互联网,“有人有这个文件吗?”因为除了它的位置之外,你对文件一无所知。

当您使用URL共享文件时,可能会出现问题。服务器可能会从该URL开始提供不同的文件,或者有人会执行中间人攻击并修改文件(奇怪的是,这种攻击并不少见)。很难确认访问URL的每个人都收到了他们想要的文件。

相比之下,内容寻址基于内容标识符(CIDs)查找文件,CIDs作为文件的数字指纹。用这种方式寻址文件解决了位置寻址的问题。当客户端需要一个文件时,他们向网络中的节点询问具有特定CID的文件,而不是向一个服务器询问URL。客户端下载文件后,便会自己对其进行指纹识别。

回顾我们前面的例子,就好像所有网站都对输入cat.jpeg时要交付的文件有共同的理解。因此,虽然不能保证任何节点都具有特定的cat.jpeg,但这些节点将检查该文件的指纹以尝试找到匹配项。

尽管像指纹识别这样的步骤需要比普通人要多的技术知识,但Filecoin和IPFS客户可以轻松地使此过程自动化。这样一来,客户就可以保证他们已收到所需的文件-在此系统中,查找数据的备用提供者很简单。

主要要点:CIDs意味着您可以找到集中式系统中可能丢失的内容,CIDs还可以防止中间人攻击或服务器在特定URL处突然更改文件。

3.独立性

无信任系统允许双方进行合作,而不需要了解对方或寻求第三方。她认为,系统的激励促使参与者朝着网络运行所必需的行为前进。

4.可验证

理想的存储系统应该能够轻松地持续证明节点正在存储它们所承诺的精确数据。这种类型的可审核性是实现不信任的关键。如果您总是能够确定数据被正确地存储,那么您就不太需要信任提供存储的一方。

5.开放性

最后,理想的分布式存储系统是开放的:它的代码是开放源代码的,并且是可审计的。此外,存储系统不应该是单块的。相反,它应该公开一个任何人都可以实现和构建的开放协议,而不是鼓励锁定。


05
Filecoin如何体现这些特征

Filecoin项目是一个分布式存储系统,旨在满足这些特性。在2014年的描述中,Filecoin协议最初是作为一个激励层开发的星际文件系统(IPFS),一个对等存储网络。与IPFS一样,Filecoin是一种开放协议,它基于其较早版本的属性,利用相同的底层对等和内容寻址功能。

Filecoin节点网络为文件的检索和存储提供了一个分散的存储市场。这个网络是由一个新的区块链支持的,它记录了网络参与者所做的承诺。用户使用区块链的加密货币FIL在网络上进行交易。

1.检索市场

在检索市场上,被称为检索矿工的节点竞争将文件尽快提供给客户端。检索矿工通过少量的FIL费用获得奖励。这使得位于关键位置的节点有了加入网络的动机,并促进了文件的快速分发。它还鼓励建立一个稳健的网络来复制和保存急需的文件。

2.存储市场

在Filecoin的存储市场中,被称为存储矿工的节点被授权在各种特性上竞争,比如价格和位置,为客户提供指定时间内的文件托管合同。存储矿工在接受合同前,必须先进行抵押FIL;如果存储矿工未能履行其对客户的义务,则此功能可用于自动向客户偿还费用。

当存储矿工和他们的客户达成协议时,客户将他们的数据传输给存储矿工。存储矿工将其数据添加到一个扇区,扇区是Filecoin中存储的基本单位。然后矿工执行计算密集型操作(称为封装),以创建该扇区数据的唯一副本。 

如果客户希望存储其数据的多个唯一副本,那么封装过程将确保每个副本都具有惟一的指纹,而获取该指纹所需的计算量将防止节点从基础数据重新生成指纹,从而避免作弊。数据最终用于向Filecoin区块链发布复制证明。

在存储交易期间,需要定期要求存储矿工向区块链提交时空证明。矿工使用随机性(由区块链本身提供),密封扇区和发布到区块链的复制证明来获得这些证明。这些证据为客户端提供了一个强有力的概率论证,即存储矿工拥有完整,唯一的数据副本。这是一个非常有力的保证-甚至是现代云存储提供商也无法提供其客户。

客户通过支付FIL作为交易费来奖励Filecoin存储矿工。还为存储矿工提供了为区块链挖掘区块的机会,这既需要FIL奖励,也可以向希望在开采块中包含消息的其他人收取交易费用。Filecoin的证明系统意味着矿工需要一些额外的硬件,但对于技术熟练的个人来说,要求仍然很低。作为客户端参与网络的硬件要求是适当的,Filecoin节点还公开了一个用于与网络进行编程交互的API,允许第三方服务在核心网络功能之上构建。


06
 结  论

分布式存储提供了一种与传统的集中式存储相对应的强有力的选择。它为开发人员提供了探索设计计算空间的机会,从而强调了内容存储和交付的稳定性和效率。Filecoin表明,通过分布式存储可以不仅可以让数据更加安全;也可以让Web3.0网络为更多人使用。

——End——



声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。

点击阅读全文

相关阅读