一句话概括:
IPFS(The InterPlanetary File System)星际文件存储系统是一种点到点的分布式文件系统,它连接的计算设备都拥有相同的文件管理模式。从某种意义上来说这个概念跟Web的最初理念很类似,但是实际上IPFS更像是互相转发Git目标的单个Bittorrent用户群。IPFS具备成为internet子系统的素质,通过合理配置可以完备甚至替代HTTP。
技术特征:
HTTP存在超中心化的问题,下面分析一下IPFS如何解决这些问题。IPFS从根本上改变了查找的方式,这是它最重要的特征。使用HTTP查找的是位置,而使用IPFS我们查找的是内容。
举个例子:服务器上运行着一个文件http://www.chainstack.io/code/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哈希只能用来表示不可变数据,因为一旦数据改变,哈希值也会改变。从某种意义上来说,这是保持数据持续性的好的设计。但是我们也需要一种方法来标记最新更新网站的哈希,这个方法我们称作IPNS。
IPFS哈希是网站通过哈希公钥生成的,相对的IPNS使用私钥来标记IPFS哈希的引用。如果以前用过比特币你应该很熟悉这种模式,比特币地址就是一种公钥哈希。
应用进展:
IPFS在实现上加装了HTTP网关,使得现有的浏览器也可以访问IPFS。所以无需等待,现在就可以开始使用IPFS作为存储、分布和搭建网站的设施。
媒体链,一种最新的元数据协议,数码创建者可以将信息附在他们的创新工作中,在比特币区块链上的数据盖上时间戳,然后存储在InterPlanetary文件系统中(IPFS),IPFS是一个具有区块链技术特征的分布式数据系统。
另外IPFS在认识到比特币网络和以太坊网络开发社区之间的重大差距后,IPFS决定迁移至以太坊网络。IPFS开发团队认为以太坊网络统一和多功能的开发社区对网络来说是一项了不起的资产,最终也会在更广的范围内影响IPFS协议。目前已经有很多的创业公司基于IPFS进行业务创新。
商业模式:
目前IPFS的使用是免费。
如果你希望高效的学习以太坊DApp开发,可以访问汇智网提供的最热门在线互动教程:
其他更多内容也可以访问这个以太坊博客。