背景
随着互联网越来越智能化,更多的页面共享公共资源;构建Web应用程序不在像编码,而更像是将乐高积木放在一起。使用像WordPress和Drupal这样的软件,人们不需要接触一行代码即可开始构建自己的网站。云计算存储(例如亚马逊Web服务、谷歌Firebase提供的云计算存储)使我们可以在不必考虑基础架构,或可扩展性的情况下提供内容。因此,在线创建内容比以往任何时候都更容易访问。但目前的模式有几个迫在眉睫的问题,包括:有效分配(数据冗余)和容错(数据可用性)。
在旧的互联网时代,网络内容存储在我们工作场所的私人服务器上,甚至存储在自己的家中。如果失去网络地址连接,意味我们的网站将无法使用。如果希望无论遇到任何问题都能够获得我们存储的内容,则必须得在离我们较远的位置管理后备服务器。今天,AWS和谷歌Firebase等服务已经做到了这一点。我们将内容上传到供应商,他们负责管理正确的资源分配,以保持我们网站的正常运行。
不过,这些公司依赖于半集中式数据中心,因此有一个处理瓶颈;因为这些服务器只能处理有限的存储和带宽。另外也有政治上的担忧,因为这些公司可能对于,在经济方面的数据审查感到生气。行星际文件系统(Inter-PlanetaryFileSystem,简称IPFS)正试图通过点对点协议解决这些问题,以便在网络上提供数据。
IPFS结合了两个非常重要的协议,分别是:BitTorrent点对点文件共享和Git版本控制。这两种协议已被证明是非常强大的,目前已在全球范围内使用。
BitTorrent:点对点文件共享
虽然,BitTorrent作为共享文件材料的媒介,收到了相当多的耻辱。但是,协议本身被设计为一种有效的点对点文件共享方法。在BitTorrent中,文件被分解为易于共享的小块(小的片段)。每个部分都有一个唯一的标识符,称为哈希。哈希是根据文件的内容计算出来的,只有两个相同的文件可以共享相同的哈希。通过这种方式,如果一个数据被破坏或被篡改-只需检查你收到的数据哈希,是否与你请求的哈希相同即可。这为该条信息提供了唯一的全局标识符。当你想要下载torrent时,只需要收集所需数据的哈希值,通常来自名为BitTorrent跟踪器的可信实体。然后,将这些哈希广播到BitTorrent网络,拥有与该哈希对应数据的对象将发送给你。然后,可以验证所接收的数据是否与哈希相匹配,将所有的片段放在一起,然后VoíLa!你将获得所需的文件。
BitTorrent之所以如此高效,是因为不必等待某个中央文件服务器,用于接收想要的数据。网络中的节点可以存储一些文件,如果一个对等节点花费太长时间来提供所需的数据,则可以切换到具有相同数据的另一个对等节点。与其从单个位置下载一个大文件,并担心连接中断,不如在许多不同的来源下载它们。此外,由于相同文件的哈希值相同,因此不需要多次存储相同的数据。
Git:版本控制软件
版本控制软件允许在编辑文件时“及时返回”。这是通过提交对文件的更改来完成的。可以打开文本文档,进行一些更改,然后提交这些更改。或者可以创建一些新文件,删除一些不需要的文件,然后在提交之前编辑一些文件。Git永远不会忘记这些提交,所以随时可以返回之前的提交。可以把看作是,能够在整个文件目录上按Ctl+Z。
版本控制的目录称为存储库。实现版本控制最简单的方式,是在每次提交时保存存储库的状态。这将能够以非常的速度创建庞大的存储库!Git更智能,它只记录对文件的更改。然后,通过从存储库的初始创建返回这些更改,逐步地重建文件。
为了更技术化,Git为每个节点创建了一个带Merkle哈希的有向无环图。在提交某个文件时,文件的哈希值唯一地标识了如何“遍历”图形,以便像提交时那样重新构建文件。
IPFS:整个互联网的分布式全球存储库
IPFS项目试图从互联网的当前状态,通过连接共享大型文件的集中式实体,转移到新的互联网;实现成群的对等节点共享小片段的全局索引数据。
在当前模型中,你可以在浏览器中键入一个可读网络地址。然后将该地址转换为IP地址,该IP地址是分配给你要连接到的Internet上,计算机的唯一地址。然后,与该计算机建立连接,并请求任何所需的数据。在新模式中,不需要输入要连接的计算机地址,而是提供数据本身的地址。然后任何与你相关,并拥有该数据的人都可以提供。如果你的同伴没有数据,他们可以将请求重新广播给其它对等节点,依此类推。
互联网不是一个粗略的树形结构,而是通过大型中继路由单个分支,形成的一个强大集群网络。这并不是说在新网络中不能形成这样的结构,而是IPFS协议允许更一般的网络拓扑(用更简单的方式把网络中的计算机设备连接起来),以及整体更高的容错性。
如果你是一个技术意识很强的人,可以自己下载运行IPFS的测试版本。如果你不太专业,预计IPFS将在未来的互联网中发挥重要作用,了解基础知识会让你在当今瞬息万变的世界中领先一步。(更多交流,可weixin添加ipfsxiaomishu,进入IPFS社群)
本文由BenLittle发表于国外博客,经由Filecoin.cn中国社区翻译整理。
转载请注明:http://www.0431gb208.com/sjslczl/2150.html