首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

IPFS综合了许多最新最好的想法以及最成功的系统

在信息社会中,智能手机、平板电脑、笔记本电脑等多种终端设备已成为人们生活的一部分,为了使自己的电子产品能够及时同步,用户常常面临一个头疼的问题,即如何便捷地将文件、照片、文档、音乐、电子书等数据在手机、平板电脑、个人电脑等设备之间互相共享。在科技不断进步发展的过程中,涌现出各式各样的文件共享系统。

在构建全局分布式文件系统方面已经有许多尝试,且有些系统可以看到显著的效果。在学术尝试中,AFS已取得了成功且至今仍在使用,而其他一些系统却还未取得同样的成功。学术界之外,最成功的系统一直是对等文件共享的应用,其主要面向大型媒体(音频和视频)。最值得注意的是,Napster,KaZaA和BitTorrent[3]部署大型文件分发系统支持超过一亿用户同时使用。即使在今天,BitTorrent保持了大规模部署中数以千万计的节点生产日报[4]。相比于他们的学术文件系统而言,这些应用程序看到了更大数量的用户和文件分布。然而,应用程序并没有设计成基础性使用工具。虽然可成功的利用现有技术再开发,但目前还未出现一个可以提供全球性、低延迟性和分散式分布的通用文件系统。

到目前为止,HTTP是有史以来最成功的“文件分布式系统”部署。再加上浏览器,HTTP有巨大的技术和社会影响力。它已成为在互联网上传输文件的实际方式。然而, 在过去的十五年里,它未能利用许多杰出的文件分布技术发明。各行业之所以使用HTTP这么久是因为移动小文件是相对便宜的,即使对于小型组织也有大量的流量可以使用。但是,我们正面临一个新的挑战,数据分布的新时代具有如下特点:

(1) 托管和分发PB级数据集;

(2) 在大数据跨组织的计算;

(3) 大容量高清点播和实时媒体流;

(4) 版本控制和连接的大规模数据集;

(5) 防止重要文件意外失踪等。

其中许多可归结为“大量的数据,访问无处不在。” 通过追寻关键特性和带宽问题,我们已经放弃使用HTTP协议进行不同的数据分发。下一步是使用它们在Web本身的一部分。

IPFS是点对点协议(InterPlanetary File System,IPFS)的简称,它是一个面向全球、点对点的分布式版本文件系统,试图将所有具有相同文件系统的计算设备连接在一起。本文将介绍对IPFS的部分研究及其在新一类数据共享系统中的应用。

一、 IPFS技术背景

1.1 HTTP技术的缺陷

超文本传输协议(HTTP)已经在全球信息协议中一统山河,对信息的发布与传播设置了很多规范。没有HTTP的生活几乎无法想象,HTTP将发布信息的成本几乎降为零,这一创新粉碎了对信息至上而下的传播渠道管控,借助信息流动与更简单的信息发布方式,使人人都能发布与访问包括经济、政治、文化领域(音乐、创意、视频、新闻、游戏等)的信息,HTTP让我们的文化获得了整体提高。

可以这样说,HTTP是史上最伟大且最重要的发明之一。

尽管HTTP成就斐然,但是在传播与维护人类知识方面,它作为基础并非差强人意,而是几乎全无招架之力。HTTP传播信息的方式从根本上是有缺陷的,无论进行再多的性能调整,打破CASSL或采取其他措施都难以修复这一问题。HTTP/2(超文本传输协议第二版)是可喜的进步,不过它只能算针对一个有年头的技术所进行的保守更新。想要让网络获得更好的未来,我们不止需要一个HTTP的更新版,而是一个新的基础。就网络空间的管理模式而言,我们需要一个新的协议。

总体而言,HTTP具有以下几方面的缺点:

(1)HTTP是脆弱的,一台Web服务器一旦关机或无响应,连接就会中断,站点间的联系会被打破,访问的内容也随之消失不见。

(2)HTTP鼓励过度集中化,这样会导致大量的数据对大型、更集中管理的服务器产生进一步的依赖。由于冗余备份较多,他们在短时间内可用性(大多)更高。但仍没有解决长期的可用性问题,还触发了一系列全新的问题。

(3)HTTP效率低下,HTTP降低了发布信息的价格,但仍需要花钱,看起来低廉的成本加起来却数目惊人。将大量数据从中央数据中心传播出去,如果不是以规模经济的方式完成,花费可能相当高昂。

(4)HTTP对互联网主干过度依赖,内容的过度集中化将会使我们高度依赖互联网主干的数据中心功能。这样除了很容易被拦截审查之外,也存在着可靠性问题。即使有冗余备份,主干网有时也存在被毁坏或者路由表失控的问题,结果可能十分严重。

为解决以上问题,IPFS应运而生。

1.2 IPFS的解决方案

IPFS从根本上改变了查找方式,这是它最重要的特征。我们使用HTTP查找的是位置,而使用IPFS查找的是内容。

在HTTP服务器中,查找文件须遵照HTTP协议,浏览器首先会查找服务器的位置(IP地址),随后向服务器索要文件路径。这种体系下文件的位置取决于服务器管理者,而用户只能寄希望于文件没有被移动,并且服务器没有关闭。

IPFS的做法则是不再关心中心服务器的位置,也不考虑文件的名字和路径,只关注文件中可能出现的内容。我们将一个文件放在IPFS的节点,它会得到一个新名字QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU,这是一个由文件内容计算出的加密哈希值。哈希值直接反映文件的内容,哪怕只修改1比特,哈希值也会完全不同。

当IPFS被请求一个文件哈希时,它会使用一个分布式哈希表找到文件所在的节点,取回文件并验证文件数据。虽然早期的DHT设计曾出现过Sybil攻击的问题,不过现在已经有了新的解决办法。

IPFS是通用的基础架构,基本没有存储上的限制。大文件会被切分成小的分块,下载时可以从多个服务器同时获取。IPFS的网络是不固定的、细粒度的、分布式的网络,可以很好地适应内容分发网络(CDM)的要求。这样的设计可以很好地共享各类数据,包括图像、视频流、分布式数据库、整个操作系统、模块链,还有最重要的——静态网站。

IPFS文件可以抽象成特殊的IPFS目录,从而标注一个可读的文件名(透明的映射到IPFS哈希),在访问时会像HTTP一样获取一个目录索引。在IPFS上建立网站的流程和过去一样,而且把网站加入到IPFS节点只需要一条指令:ipfs add -r yoursitedirectory。网页间的连接不再需要人去维护,IPFS自带的查找可以解决问题。

IPFS不会要求每一个节点都存储所有的内容,节点的所有者可以自由选择想要维持的数据。这就像书签一样,在备份了自己的网站之外,自愿为其他关注的内容提供服务,不同的是这个书签不会像之前那样最终失效。

IPFS节点间的拷贝、存储和网站支援都很容易,如果IPFS得以普及,且节点数达到一定规模,即使每个节点只存放一点点内容,所累计的空间、带宽和可靠性也远超HTTP所能提供的。随即,分布式Web会变成地球上最快、最可靠、最大的数据仓库。

二、 IPFS设计

IPFS是一个综合了先前的P2P系统,包括DHTs、比特流、Git和SFS成功思想的分布式文件系统。IPFS的贡献是简化、进化,以及连接成熟的技术到一个单一的综合系统,其功能大于各部分的总和。IPFS提出了一个用以编写和部署应用程序的新平台,并进行版本控制以及分发大量数据的新系统。IPFS甚至可能进化网络本身。

IPFS是对等网络,没有节点拥有特权。IPFS节点仓库在本地存储IPFS对象。节点之间相互连接并传输对象。这些对象代表文件和其他数据结构。所述IPFS协议分为一堆子协议并各自负责不同的功能:

(1)特性:管理节点的身份生成和验证。

(2)网络:对连接到的其他节点进行管理,使用各种底层网络协议,并且是可配置的。

(3)路由:维护信息来定位特定的节点和对象。响应本地和远程查询。默认为一个DHT,但是可交换的。

(4)交换:可以使用一种新的分组交换协议(比特交换)来管理有效的块分布。建模为一个需求,弱化数据复制的刺激。可交换的贸易策略。

(5)对象:内容寻址的Merkle DAG不可变对象链接。用于表示任意的数据结构,例如文件层次结构和通信系统。

(6)文件:灵感来自Git版本控制文件系统的层次结构。

(7)命名:一个自认证的可变名称系统。

这些子系统并不是独立的,他们整合并利用了混合属性,在这些功能的协作下,构建了自上而下的协议栈。

三、 系统设计与分析

结合IPFS的设计理念,我们可以在其基础上实现分布式数据共享系统的进一步开发。分布式数据共享系统对我们而言并不陌生,其使用的技术多种多样,这一类分布式文件系统如HDFS、FastDFS等,并没有在我们的实际生活中得到广泛推广。在这里不能够说本系统能够取代他们,只是对分布式数据共享系统的一点设想与看法。

3.1 系统设计

首先,本系统将以IPFS技术作为其设计核心,因此,本系统具备IPFS技术的所有优点,并可以拥有IPFS的所有功能。允许安装此系统的所有设备都将作为网络节点,用户可选择将自己的数据通过哈希加密后保存于任何节点中(只要能够登录此节点),并且可以随时取回本地,即便本地数据丢失,用户仍可凭借其哈希值从任何保存过此数据的节点中将其找到。

其次,IPFS哈希只能用来表示不可变数据,因为一旦数据改变,哈希值也会改变。但从某种意义上来说,这是保持数据持续性的较好的设计。却也需要一种方法来标记最新更新的哈希,这个方法被称作IPNS。由于本系统采用了哈希加密,相比传统的加密方式其安全性更高。

本系统可分为PC端和Android端,二者没有客户端与服务器端之分。当设备打开此程序时,用户指定的文件或文件夹即可被任意经过授权的节点发现并进行访问。

3.2 结果分析

由于本系统采用IPFS技术作为其设计核心,所以与其他数据共享系统有很大的不同。首先,由于IPFS技术拟用来替代HTTP技术,故其在网络中的安全性以及传输协议都与HTTP技术有很大的不同,本系统所使用的协议是比特交换协议。其次,本系统采用内容寻址方式,所有内容都是由其多哈希校验和唯一标识,包括链接。

由于本系统采用了IPFS技术,使得使用者加入到了全球性IPFS节点的行列中来,每一台安装了此系统的电脑都可以作为网络中的一个节点,它不会要求每一个节点都存储所有内容,节点的所有者可以自由选择想要维持的数据。比如两个人在各自的节点中放入了相同的数据,其中一人在自己的数据丢失后仍可借助另一人的节点取到丢失的数据。

四、 结 语

IPFS背后的想法是对几十年来在学术界和开源产品中成功的分布式系统的研究。IPFS综合了许多最新最好的想法以及最成功的系统。除了比特交换,这是一种新的协议,IPFS的主要贡献是系统的耦合和设计的合成。

确实,本系统是在其基础上建立的一种新的应用,尽管对于IPFS技术的运用还不是十分广泛,但总的来说这也是一次对新生技术的尝试。并且,作者认为本系统还不是终结,经过进一步的设计与研究,一定会得出一种新的更加优化的系统。尽管对IPFS技术的了解还不全面,但该技术对于数据共享系统的新尝试具有极大的指导意义。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180907A1X8TU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券