IPFS有什么能耐?解决最让人头疼的问题…

这是玛雅矿机的第177篇文章

在当今的信息社会中,智能手机、平板电脑、笔记本电脑等多种终端设备俨然已经成为人们生活的一部分,但是如何才能使自己的电子产品能够及时同步呢?这个问题常常让我们感到头疼。这里同步指的是,如何便捷地将文件、照片、文档、音乐、电子书等数据在手机、平板电脑、个人电脑等设备之间互相共享。伴随科技的不断进步和发展,也涌现出了各式各样的文件共享系统。

然而,在构建全局分布式文件系统这方面已经有了许多尝试,并且有些系统可以看到显著的效果。在学术尝试中,AFS已取得了成功并沿用至今,而其他一些系统仍处于尝试阶段。跳出学术界的局限,最成功的系统一直是对等文件共享的应用,其主要面向大型媒体(音频/视频)。值得注意的一点是:Napster,KaZaA和BitTorrent部署大型文件分发系统支持超过一亿用户同时使用。

即使在今天,BitTorrent还保持了大规模部署中数以千万计的节点生产日报。与他们的学术文件系统相较之,这些应用程序能够看到了更大数量的用户和文件分布。虽然,应用程序并没有设计成基础性使用工具。即使可成功的利用现有技术再开发,目前还未出现一个可以提供全球性、低延迟性和分散式分布的通用文件系统。

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

托管和分发PB级数据集

在大数据跨组织的计算

大容量高清点播和实时媒体流

版本控制和连接的大规模数据集

防止重要文件意外失踪等

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

IPFS是一个面向全球、点对点的分布式版本文件系统,试图将所有具有相同文件系统的计算设备连接在一起,下文我们将详细了解下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是一个综合了先前的P2P系统,包括DHTs、比特流、Git和SFS成功思想的分布式文件系统。它的贡献是简化、进化、连接成熟的技术到一个单一的综合系统,其功能大于各部分的总和。

IPFS提出了一个用以编写和部署应用程序的新平台,且进行了版本控制以及分发大量数据的新系统,甚至可能将网络本身进行进化处理。

IPFS是对等网络,没有节点拥有特权。IPFS节点仓库在本地存储IPFS对象,节点之间相互连接并传输对象。这些对象代表文件和其他数据结构。

其中,无数的子协议各负责不同的功能:

特性-管理节点的身份生成和验证;

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

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

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

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

文件-灵感来自Git版本控制文件系统的层次结构;

命名-一个自认证的可变名称系统。

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

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

本系统虽然是在其基础上建立的一种新的应用,对于IPFS技术的运用也还不是十分广泛,可总之,这已经是一次对新生技术的勇敢尝试。这是一个很好的开端,经过进一步的设计与研究,相信会得出一种新的更加优化的系统。在未来,对IPFS技术的全面了解之后,该技术对于数据共享系统的新尝试也将具有极大的先导性价值。

玛雅云算力已经重磅上线!玛雅云算力采用玛雅矿机D1、玛雅1号比特云算力、玛雅2号比特云算力等市场领先的矿机与超强算力,同时使用自建专业的托管矿场,每笔订单清晰可见,绝对透明放心的用户承诺和最佳的性价比,让用户没有后顾之忧的享受更低的投入、更便捷的操作和更高的收益回报!

玛雅云算力在公众号的首页菜单就可一键进入官网哦,感兴趣的朋友请持续关注“玛雅矿机”公众号,更多相关资讯尽在其中!

扫描二维码,进入公众号咨询

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180917A1WWZK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券