最全解析:一文入门IPFS

IPFS星际大陆 发布在 海盗号 37552

翻译编辑:星际大陆

编者注:原标题为《IPFS入门最全解析》

在我之前的文章中,我们讨论了共享经济的未来以及可能对塑造共享经济至关重要的令人振奋的创新。提到的关键技术之一是星际文件系统(IPFS)。这是一个点对点(p2p)文件共享系统,旨在从根本上改变信息在全球及全球范围内分发的方式。IPFS由通信协议和分布式系统中的多项创新组成,这些创新相结合产生了无与伦比的文件系统。因此,要了解IPFS试图达到的全部广度和深度,重要的是要了解使之成为可能的技术突破。

 

通信协议和分布式系统

对于两个人交换信息,他们需要通用的规则集来定义信息的传输方式和时间。这些规则被广泛称为通信协议,但是这很繁琐,因此我们将其简称为语言。如果您去过一个不说母语的国家,您可能会遇到通信协议的失败(或缺乏)。计算机就是这种情况。它们无法相互通信,并作为孤立的计算设备存在,直到1980年代初发明了第一批用于计算的通信协议。

“协议要传达什么编程语言就是计算”

在计算机中,通信协议通常存在于多层的捆绑包(称为协议套件)中。例如,Internet协议套件由4个层组成,每个层负责特定的功能。除了通信协议之外,要理解的重要关系是计算机之间互连的基本结构。这就是所谓的系统架构。存在几种,但是与我们相关的两种类型是客户端-服务器网络对等网络

互联网由依赖于Internet协议套件的客户端-服务器关系主导。其中,超文本传输协议(HTTP)是通信的基础。

数据存储在集中式服务器中,并通过基于位置的寻址进行访问。这使分发,管理,保护数据以及扩展服务器和客户端的容量变得更加容易。但是,在安全性,隐私性和效率方面存在许多弱点:对服务器的控制转换为对数据的控制。这意味着在服务器的控制下任何一方都可以访问,更改和删除您的数据;这可能是对服务器具有合法权限的实体,也可能是恶意黑客。在基于位置的寻址中,通过数据的位置而不是其内容来标识数据。这种限制意味着即使必须在更近的位置获得相同的数据,也必须一直走到特定位置才能访问一条数据。也无法判断数据是否已更改,

但是客户端服务器模型和HTTP在其大部分历史中已经相当可靠地为互联网服务。这是因为HTTP Web对于在文本和图像之类的小文件中移动非常有效。在网络的前二十年中,平均网页的大小仅从〜2 KB增加到了〜2 MB。

资源

HTTP非常适合加载网站,但它并不是为传输大量数据(例如音频和视频文件)而设计的。这些限制可能使替代文件共享系统(如Napster(音乐)和BitTorrent(电影以及几乎所有东西))的出现和主流成功。

快进到2018年,点播高清视频流和大数据正变得无处不在;我们将继续生产/消费越来越多的数据,并开发越来越强大的计算机来处理它们。云计算的重大进步帮助维持了这一过渡,但是用于分发所有这些数据的基本基础架构基本上保持不变。

 

星际文件系统

IPFS尝试通过新颖的p2p文件共享系统解决客户端-服务器模型和HTTP Web的缺陷。该系统是几种新的和现有的创新的综合。IPFS是由Protocol Labs创建的一个开放源代码项目,Protocol Labs是一家针对网络协议和以前的Y Combinator启动的研发实验室。Protocol Labs还开发了互补系统,例如IPLD和Filecoin,将在下面进行解释。全球数百名开发人员为IPFS的发展做出了贡献,因此其编排一直是一项艰巨的任务。以下是主要组成部分:

分布式哈希表

阿散列表是一种数据结构,其存储信息作为键/值对。在分布式哈希表(DHT)中,数据分布在计算机网络中,并进行有效协调以实现节点之间的有效访问和查找。

DHT的主要优势在于分散性,容错性和可伸缩性。节点不需要中央协调,即使节点发生故障或离开网络,系统也可以可靠地运行,DHT可以扩展以容纳数百万个节点。这些功能共同构成的系统通常比客户端-服务器结构更具弹性。

大宗交易

流行的文件共享系统Bittorrent能够依靠创新的数据交换协议成功地协调数百万个节点之间的数据传输,但仅限于torrent生态系统。IPFS实现了该协议的通用版本,称为BitSwap,它可作为任何类型的数据的市场。这个市场是Filecoin的基础:Filecoin:基于IPFS构建的p2p存储市场。

默克尔DAG

merkle DAG是Merkle树和有向无环图(DAG)的混合。默克尔树可确保在p2p网络上交换的数据块是正确,未损坏和未更改的。通过使用密码哈希函数组织数据块来完成此验证。这只是一个接受输入并计算与该输入相对应的唯一字母数字字符串(哈希)的函数。容易检查输入是否会导致给定的哈希,但是很难从哈希中猜测输入。

各个数据块称为“叶子节点”,这些数据经过散列形成“非叶子节点”。然后可以将这些非叶节点进行组合和哈希处理,直到所有数据块都可以由单个根哈希表示。这是一种更简单的概念化方法:

DAG是一种对没有周期的信息的拓扑序列进行建模的方法。DAG的一个简单示例是家谱。Merkle DAG基本上是一种数据结构,其中散列用于引用DAG中的数据块和对象。这创建了几个有用的功能:IPFS上的所有内容都可以唯一标识,因为每个数据块都有唯一的哈希。再加上数据是防篡改的,因为对其进行更改会改变哈希值,如下所示:

资料来源:ethereum.org

IPFS的中心宗旨是在通用merkle DAG上对所有数据进行建模。很难夸大此安全功能的重要性。要与客户端服务器系统进行比较,请参阅此人如何在7分钟内入侵了40个网站。

版本控制系统

Merkle DAG结构的另一个强大功能是,它允许您构建分布式版本控制系统(VCS)。最受欢迎的示例是Github,它使开发人员可以轻松地同时在项目上进行协作。Github上的文件使用merkle DAG存储和版本控制。它允许用户独立地复制和编辑文件的多个版本,存储这些版本,然后将编辑内容与原始文件合并。

IPFS对数据对象使用类似的模型:只要可以访问与原始数据相对应的对象以及任何新版本,就可以检索整个文件历史记录。假设数据块存储在整个网络的本地并且可以无限期地缓存,这意味着IPFS对象可以永久存储。

此外,IPFS不依赖对Internet协议的访问。数据可以分布在覆盖网络中,覆盖网络只是建立在另一个网络上的网络。这些功能非常引人注目,因为它们是抗审查网络中的核心元素。它可能是促进言论自由以对抗全球互联网审查风行的有用工具,但我们也应该认识到不良行为者有可能滥用权力。

自认证文件系统

IPFS的最后一个基本组成部分是自认证文件系统(SFS)。它是一种分布式文件系统,不需要特殊权限即可进行数据交换。这是“自我认证”,因为提供给客户端的数据通过文件名(由服务器签名)进行认证。结果?您可以通过本地存储的透明性来安全地访问远程内容。

IPFS在此概念的基础上创建了行星际名称空间(IPNS)。它是一个使用公用密钥加密技术对网络用户发布的对象进行自我认证的SFS 。前面我们提到,IPFS上的所有对象都可以唯一标识,但这也扩展到了节点。网络上的每个节点都有一组公用密钥,专用密钥和一个节点ID,该ID是其公用密钥的哈希。因此,节点可以使用其私钥对发布的任何数据对象进行“签名”,并且可以使用发送者的公钥来验证此数据的真实性。

 

以下是IPFS关键组件的快速回顾:

  • 使用分布式哈希表,节点无需中央协调即可存储和共享数据
  • IPNS允许使用公共密钥加密技术对交换的数据立即进行预身份验证和验证。
  • Merkle DAG可实现唯一标识,防篡改和永久存储的数据
  • 您可以通过版本控制系统访问已编辑数据的过去版本

简单的概念框架

那么,为什么所有这些都很重要?

IPFS提供高吞吐量,低延迟,数据分发。它也是分散和安全的。这打开了几个有趣且令人兴奋的用例。它可用于将内容传送到网站,使用自动版本控制和备份在全球存储文件,促进安全的文件共享和加密的通信。

以下是一些基于IPFS构建的有趣项目:

阿卡莎,下一代社交网络

Balance3,一个三项记账平台

BlockFreight,一个开放的全球货运网络

Digix,一个用于标记实物黄金的平台

Infura,DApp 的基础架构提供商

Livepeer,一个去中心化的实时视频流媒体平台

Origin,共享经济的点对点市场

UPORT,自主权识别系统

这些应用程序的多样性证明了IPFS在几种不同用例中的多功能性。它也被用作公共区块链和其他p2p应用程序的补充文件系统。在撰写本文时,在以太坊智能合约中存储一千字节的数据可能要花费数美元。这是一个主要的制约因素,目前正在启动的新的去中心化应用程序(DApps)大量增长。IPFS可与智能合约和区块链数据互操作,因此可以为以太坊生态系统增加可靠的低成本存储容量。使以太坊区块链数据可以在IPFS上本地访问的尝试是一种称为IPLD(行星际链接数据)的单独协议。

挑战性

尽管IPFS表现出色,但仍有一些问题尚待完全解决。首先,IPNS上的内容寻址目前还不是很友好。您的典型IPNS链接如下所示:

ipfs.io/ipns/QmeQe5FTgMs8PNspzTQ3LRz1iMhdq9K34TQnsCP2jqt8wV/

可以使用域名系统(DNS)将这些链接简化为更简单的名称,但这会为内容分发引入外部故障点。但是,仍可以通过原始IPNS地址访问该内容。一些用户还报告说IPNS解析域名的速度可能很慢,最多可能会延迟几秒钟。目前尚不清楚此问题的根源是什么。

更新 :2018年3月26日,IPNS发布了具有实验功能的升级,以加快发布/解决速度。详情请点击这里

在IPFS上,节点很少有动力维护网络上的数据的长期备份。节点可以选择清除缓存的数据以节省空间,这意味着从理论上讲,如果没有剩余的节点托管数据,文件最终会随着时间的推移而“消失”。在当前的采用水平上,这不是一个大问题,但从长远来看,备份大量数据需要强大的经济动力。

仓储市场

Filecoin是一个单独的协议,旨在为IPFS上的文件存储增加经济激励,并促进与企业云存储(如Amazon S3等)相竞争的分布式存储市场。IPFS + FileCoin取代了采用固定价格的集中式基础架构,而是将其存储在本地提供商的全球网络上,这些提供商可以自由地根据供需确定价格。Filecoin 代替了工作证明共识算法(如比特币),而是使用存储证明来确保安全性和可靠性。这样,任何人都可以加入网络,在其计算设备上提供未使用的硬盘空间,并获得Filecoin令牌的奖励,用于数据存储和检索服务。

该网络是在以太坊上开发的,因此智能合约集成可以在存储市场中产生诸如托管,保险等高级功能。从理论上讲,这种经济模型应该建立一个竞争激烈的自由市场,其成本可能低于大型提供商。但是FileCoin尚未启动,因此观察这些概念如何在现实中发挥作用将很有趣。

入门

IPFS是一项非常雄心勃勃的工作,显然,有关系统功能的精确机制要比本指南中描述的复杂得多。我们将这些细节留给密码学家和计算机科学家使用。您不一定非要使用 IPFS 即可成为专家,因此,如果任何优点或用例对您似乎有用或有吸引力,请下载IPFS并在此处开始使用。如果您有GB或TB的未使用存储空间,并且想充分利用该空闲容量,则可以在网络启动时注册成为Filecoin早期的矿工。如果您有兴趣成为早期的存储用户,也可以注册。

使用IPFS非常引人注目,并且了解使之成为可能的技术向导更加令人兴奋。如果成功,IPFS及其补充协议可以为下一代Web提供弹性基础架构。承诺提供分布式,安全和透明的网络。

 

资料来源

1、来吧,道格拉斯。计算机网络和互联网。皮尔逊(Pearson),2015年。goo.gl/ AbM8st

2、IPFS白皮书(草案3)http://goo.gl/zwKD9J

3、Filecoin白皮书https://goo.gl/RrxcvX

本文链接:https://www.8btc.com/media/572061
转载请注明文章出处

评论(1)
登录 账号发表你的看法,还没有账号?立即免费 注册