IPFS星际文件系统如何颠覆云存储?

2020-12-29 16:08:22

IPFS(The InterPlanetary File System)星际文件系统是一种点到点的分布式文件系统

  IPFS(The InterPlanetary File System)星际文件系统是一种点到点的分布式文件系统,它连接的计算设备都拥有相同的文件管理模式。相对于云存储IPFS有以下几个优点:

  1. 便宜。IPFS存储空间不由服务商提供,而是接入网络的节点来提供,可以说是任何人都可以成为节点的一部分,所以非常便宜。

  2. 速度快。IPFS协议下,文件冗余存储在世界各地,类似于CDN一样。当用户发起下载请求时,附近的借点都会收到信息并传送文件给你,而你只接收最先到达的文件。而传统云服务依赖于中心服务器到你的主机的线路和带宽。

  3. 安全性高。目前没有任何云存储敢保证自己的服务器不会遭到黑客袭击并保证数据安全。但是IPFS协议下文件在上传的时候会在每个节点保留其记录,系统检测单到文件丢失的时候会自动恢复。且由于其分布性存储的特征,黑客无法同时攻击所有节点。

  4.隐私保护。对于加密文件的上传使用非对称加密的方式,即除非对方掌握了私钥,否则无法破解。


IPFS分布式云存储系统


  技术特征

  HTTP存在超中心化的问题,下面分析一下IPFS如何解决这些问题。

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

  举个例子:服务器上运行着一个文件helloworld.js,遵照HTTP协议浏览器首先会查找服务器的位置(IP地址),随后向服务器索要文件的路径。这种体系下文件的位置取决于服务器管理者,而用户只能寄希望于文件没有被移动,并且服务器没有关闭。

  IPFS则是不再关心中心服务器的位置,也不考虑文件的名字和路径,只关注文件中可能出现的内容。我把刚才的文件helloworld.js放到IPFS节点,它会得到一个新名字。QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU,是一个由文件内容计算出的加密哈希值。哈希值直接反映文件的内容,哪怕只修改1比特,哈希值也会完全不同。当IPFS被请求一个文件哈希时,它会使用一个分布式哈希表找到文件所在的节点,取回文件并验证文件数据。

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

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

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

  IPFS节点间的拷贝、存储和网站支援都很容易,只需要使用一条指令以及网站的哈希,例如:ipfs pin add -r QmcKi2ae3uGb1kBg1yBpsuwoVqfmcByNdMiZ2pukxyLWD8,剩下的IPFS会搞定。

  如果IPFS得以普及,节点数达到一定规模,即使每个节点只存放一点点内容,所累计的空间、带宽和可靠性也远超HTTP所能提供的。随之而来,分布式Web会变成地球上最快、最可靠、最大的数据仓库,人类知识也就再也不会湮灭,亚历山大图书馆永远不会倒塌。

  由于IPFS/IPNS的哈希值都是很长和难记的字符串,所以IPFS兼容了现存的域名系统(DNS),可以通过可读的链接访问IPFS/IPNS内容。使用方法是在nameserver上创建一个文本记录,插入网站的哈希值。

  接下来IPFS还打算支持Namecoin。Namecoin从理论上完全实现了分布式Web的去中心化,整体的运行中不再需要中心化的授权。支持了Namecoin的IPFS不再需要ICANN、中心服务器,不受政治干涉,也无需授权证书。这听起来难以置信,但却是今天可以实现的技术。


IPFS星际文件系统


  技术改进

  早期的分布式哈希表曾遭受过女巫攻击,但是已经有一些新的方案来实现,这就是基于区块链的改进技术。

  IPFS哈希只能用来表示不可变数据,因为一旦数据改变,哈希值也会改变。从某种意义上来说,这是保持数据持续性的好的设计。但是我们也需要一种方法来标记最新更新网站的哈希,这个方法我们称作IPNS。

  IPFS哈希是网站通过哈希公钥生成的,相对的IPNS使用私钥来标记IPFS哈希的引用。如果以前用过比特币你应该很熟悉这种模式,比特币地址就是一种公钥哈希。

  IPFS分布式存储结构,各项数值优于HTTP,且发布区块链项目Filecoin,能够为IPFS技术存储提供足够的微型存储空间(节点),IPFS,与Filecoin即形成紧密的共生关系,相辅相成。


最新推荐