【翻译】Introduction of IPFS 概述IPFS

什么是IPFS?

欢迎!如果你是第一次听说“IPFS”,那你可来对地方了。这篇文章为你提供快速而又全面的IPFS概述,包括IPFS是什么?它如何工作?以及如何使用它?

IPFS是一个分布式系统,它用于储存和访问各类文件,网站,应用以及数据。

这句话是什么意思?举个栗子,假设你希望查询“土豚”这个动物的相关资料(去查一下就能知道这家伙的有趣之处,它可以在5分钟内挖出1米深的隧道),那么你也许会先访问维基百科上“土豚”词条的页面:

https://en.wikipedia.org/wiki/aardvark

当你在浏览器输入上述URL后,计算机会开始请求“土豚”的百科页面。计算机将访问维基百科用作服务器的电脑,这些电脑可能和你在一个国家内,也有可能在地球的另一边。

如果你通过IPFS来访问“土豚”的百科页面,那么你的计算机将会请求以下页面:

Ipfs.io/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/aardvark.html

IPFS系统知道如何通过文件的内容而非“地址”来寻找“土豚”的信息(以下简称“内容寻址”)。在IPFS-ified版本中,“土豚”的百科页面内容将通过URL中间的一串字符串来表现,访问此字符串即可获取相关页面,而不是向维基百科服务器中的部分电脑请求某一页面的内容。通过IPFS,你的计算机可以向全世界的其他计算机发出某一特定内容的“请求”,具有该内容的计算机会向你共享相关内容和页面,即:你可以从任何拥有“土豚”内容的人那里获得信息,而不是只从维基百科获取信息。

除此之外,当你使用IPFS系统时,你不仅仅只从其他人处下载文件,你的计算机在下载文件时也在协助此内容在网络流动。当你同城的朋友或陌生人也需要和你一样的内容时,他们可以通过IPFS系统从你这获取到相关文件。

IPFS不仅使网页的内容寻址成为可能,还能令任何计算机可储存的文件都能通过IPFS进行交换,不论这些文件是文档、电子邮件、MP3还是数据库。

 

所以为啥要这样做?

能够不经某一具体组织的管理,从许多地方下载所需要的文件,具有以下优势:

  • 网站离线带来的危害更少。如果某人攻击了维基百科的服务器,或者他们的工程师不小心犯了错导致服务器起火了,服务器将不得不关机停止访问。如果通过IPFS,你仍然可以从其他地方获维基百科的内容
  • 组织审查内容的难度更高。由于IPFS网络中的文件来自世界各地,所以组织或个体对内容的管制将会很难。2017年土耳其禁止人民访问维基百科,同年西班牙禁止国民访问加泰罗尼亚独立的网站,如果通过IPFS技术,上述封禁行为将有被阻止的可能。
  • 不论你的网络延迟多少都能快速的访问网络。如果你可以从附近的人那里获取文件,而不是从数百里外的服务器获取,那么你获取文件的速度可以显著提升(如果你有足够的资金和技术,CDN——内容分发网络或者多个数据中心也能做到如此效果,但IPFS的宗旨是令每一个人都有实现此效果的能力)。这个特点尤其适用于那些社区内局域网发达而广域网连接贫弱的地方。

上述最后一点也是IPFS命名的由来:星际文件系统(Inter-Planetary File System)!我们正在努力构建一个可以跨越行星(传输内容)的系统,这个目标虽然过于理想,但也让我们持续思考和工作,而且我们在追求上述目标时所创造的东西在邻里之间相当的好用。

 

IPFS上的链接永不改变

之前到“土豚”页面的链接还记得么?他看起来有点不一般:

Ipfs.io/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/aardvark.html

/ipfs之后的一堆字母为“内容标识符”,这也是IPFS能从数个地方获取内容的方法。

传统的URLs(统一资源定位符)和文件路径就像下面这样:

根据文件所在位置来标识文件(位置寻址)——即(定位)文件所在计算机的地址以及所在硬盘的位置。如果单一文件储存在复数个地方,比如储存在城镇中你邻居电脑和你朋友电脑里,位置寻址可能无法正常工作。

IPFS通过一个文件的内容来标识文件,而非基于位置寻址。之前链接的内容标识符是特定地址所有内容的加密哈希。这个哈希来源于唯一的内容,尽管他看起来很短(相对于原始内容——“土豚”的维基百科页面而言,字节数要短的多)。加密哈希还能让你验证所得到的内容是否是你想要的——恶意节点不能提供与哈希相匹配的内容。(如果您不了解“哈希”的概念,可以查阅“哈希概念指南”

        为什么我们要说“内容”而不是“文件”或“网页”?因为一个内容标识符可以指向许多不同类型的数据,例如一个小文件,一个大文件或者元数据(元数据是指“和数据有关的数据”,例如你会在访问特定图片的日期、地址或者文件大小时用到它)。因此,单个IPFS地址能反映元数据、一个文件的分片、一整个文件、目录、网页或者其他的内容。想知道更多有关内容可以访问“IPFS是怎样工作的”相关文档

由于IPFS中的文件地址是由文件内容本身来形成的,因此在IPFS中的“链接“无法被更改,比如:

  • 如果某一网页的文本已被改变,那么该网页的新版本将得到一个全新的不同于之前网页的地址(哈希)
  • 一个地址的内容无法移动到另一个地址。在如今的互联网中,公司可以将他们网页的内容重组并移动到其他页面,如将 http://mycompany.com/what_we_do 移动到 http://mycompany.com/services 。在IPFS中,你所拥有的旧有链接仍可以指向之前的内容。

当然,人们总想更新与改变某些内容,并且不希望每次都要为改变的内容发送新的链接。虽然在IPFS中上述内容可以做到,但解释起来则会跨越本指南所应当涉及的范围,您可以查看 IPNS 和 MFS(Mutable FileSystem可变文件系统)的概念文档,来了解如何在分布式系统中依据内容寻址来改变内容。

需要注意的是,IPFS在上述情况下都是具有可参与性与可协作性的,即如果没有人使用IPFS来令某个地址标识的内容供他人访问,那么也将无人能接收到这个内容。另一方面,只要有人对某个内容感兴趣,并将其分享在IPFS网络上,不论分享者是否是该内容的原作者,分享的内容都无法从IPFS中删除。

 

所有的一切,都是为了使用性(Possession)与参与性

虽然IPFS使用了很多复杂的技术,但其基本理念是“改变人和计算机网络之间的通信方式“。如今的万维网由 访问权 和 所有权 构成,即如果他人授予你访问的权限,你可以从他人处获得文件。IPFS则基于 使用性 和 参与性 ,令大多数用户拥有彼此的文件并参与到文件的分享和储存当中。

这意味着,IPFS的良好运转依赖于人们的积极参与。如果你通过自己的电脑在IPFS中分享文件,然后将自己的电脑关闭,其他用户也将不能从你这获取分享的文件。但如果你或者其他用户可以确保这些文件的副本储存在了多个已启动并运行着IPFS的电脑上,那么这些文件对需要文件的用户而言将更加的“可靠“,这在某种程度上是自动运行的:默认情况下,你的电脑在通过IPFS下载文件后,将会于限定时间内和他人共享你所下载的文件。你也可以通过将文件”固定“(Pinning),来使某个内容能长久的被访问和下载。被”固定“的文件将保存到你的计算机当中,同时也让你能在IPFS网络中对其进行操作(分享或下载等),直到你决定对其”解固(Unpin)“。(在“固定”概念文档中你能了解到更多)

现如今, 如果你想保证能在互联网上长期共享你的文件,你也许会使用Dropbox等付费文件共享服务。一部分用户已经与IPFS上提供类似的服务,名叫 Pinning service。不过由于IPFS已经内置了这类分享功能,你可以选择同你的朋友合作或机构间合作(比如图书馆和博物馆会进行合作)来共享彼此的文件。我们希望IPFS能成为一个底层工具,允许丰富的社区、业务还有合作组织共同组建一个比目前互联网更可靠,更健壮、更公平的分布式网络

下一步:

对IPFS感兴趣吗?你可以了解下“如何使用它”

 

源网页:Introduction of IPFS

翻译者:CyanGlacier