1989年,互联网之父Tim Berners-Lee在CERN工作时写了一份关于建立一个互联网上的超文本系统的报告。这个系统起初被称为Mesh,随后在1990年实施期间被更名为万维网(World Wide Web)。它在现有的TCP和IP协议上建立,其中包含了直到今天仍在使用的网络通信协议:HTTP协议。
经过将近30年的发展与变革,当年那个基础的HTTP协议已经从一个早期的协议逐步进化成在实验环境下交换文件的协议,再进化到携带图片,高分辨率视频和3D的现代复杂互联网的协议。
这么一个全世界几十亿人都在使用的稳定协议,到底是谁那么大口气说要取代它呢?理由又是什么呢?从今天起的几篇文章,我们就来好好的给大家讲讲这个新的分布式网络协议IPFS。
什么是IPFS
2014年,Internet Archive发布了对分布式Web方案,新的Web将会变得速度更快,安全性更高,更可靠,并且更加持久。而IPFS就是这么一个在他们支持下的典型开源项目代表。
IPFS是点对点协议Inter Planetary File System(星际文件系统)的简称,它是一个面向全球的、点对点分布式版本文件系统,试图将所有具有相同系统的计算设备连接在一起。它利用区块链协议和网络基础设施的优势来存储不可更改的数据,移除网络上重复的文件,以及搜索网络中的文件。
我知道看了上面的官方解释你还是不理解什么是IPFS。不要着急,既然它要取代HTTP协议,我们就先来看看HTTP协议具有哪些缺点吧。
HTTP的缺陷
HTTP堪称史上最伟大的发明之一,是全世界统一的全局信息格式协议,也为信息的分发和显示提供了规范。但是,随着信息时代的爆炸式发展,互联网上的信息被人类越来越多的制造出来。HTTP协议在可分布性和可持续性方面的缺失,使它很难成为承载人类知识总和的永久载体。
熟悉的图片?即使没有读过HTTP协议的具体内容,大多数人也了解404错误意味着什么(表明网页不在服务器的制定位置)。出现这种错误的原因很简单,服务器崩溃没有备份,域名所有者变更等等等等。。。数以万计的网站在不同时期因为不同原因在逐渐消失,许多有用的信息就这样人间蒸发。(可能就是因为小网站的管理员不小心踢了电源)
趋于中心化的HTTP
其实,上面的问题早在十几年前人们就发现了。解决了吗?为了避免数据不断的被侵蚀,人们开始依赖于使用管理更完善的大型中心服务器,并通过制作大量冗余备份来获得可靠性。短期来看,效果还是可以接受的,各个大型公司拥有非常复杂严密的数据保护工作,甚至在南极北极建立防灾备用数据中心。
然而,这种为了解决第一个矛盾的方式产生了更多的矛盾,中心化以及大量数据冗余。由于对大型中心服务器的依赖,整个互联网世界越来越趋于中心化。造成的后果就是,类似美国国家安全局这样的机构只需要截取中心服务器的通信信息,就可以得到大部分用户的数据。对于政府或者黑客来说,只需要在边境路由上设置内容审查,就可以阻断访问中心服务器的连接。与此同时,网络通信遭遇DDoS攻击的风险也大大增加。
数据冗余以及低效率
江南style的视频已经有超过2,344,327,696次观看(截至2015年9月),姑且认为视频的大小都是117MB,那么仅视频文件就产生了274.3PB的网络流量。假设每1GB的成本(包括网络带宽和服务器存储)是1美分,则总共的花费将是2,742,860美元。
实际情况下花费可能还要高,因为网络带宽的价格是0.12美元起,亚洲用户则是0.2美元左右。对于谷歌这样的大公司来说钱可能不是太大的问题,不过对于一些中小小公司这就是个天文数字。我在Neocities做的工作有相当一部分是针对昂贵的带宽,通过一些技术手段减少基础设施运作的成本。
虽然HTTP降低了发布信息的成本,但它仍然需要大量金钱来运转,而且花费越来越多。在没有达到一定规模的情况下,集中由数据中心向外传播信息是非常昂贵的。若是我们能把同一ISP网络下的个人电脑都变成CDN内容提供者,从而取代数据中心,像江南style这样很火的视频就可以在ISP网络内部传播,就不需要接入到internet主干网,从而可以降低大量成本。IPFS就具备这样的功能。
IPFS是怎么改进现状的
IPFS会从根本上改变WEB内容的分发机制,使其完成去中心化。我们现有的WEB网络(就是大家浏览的各大网站),都是基于HTTP协议的,它是一种中心化的网络(基于TCP协议)。无论内容分发如何分布式进行,无论有多少服务器分布在世界各地。中心化的本质仍然存在。
回到我们的主题,IPFS将相同的文件进行了hash计算,确定了其唯一的地址。这样一来,无论从任何设备,任意地点,其地址的唯一性都会指向相同的资源。(不同于URL,这种地址是原生的,由加密算法保证的,你无法改变,也无需改变它!)
我们通过浏览器打开的每个网页都是一组文件的合集,有文字、图片、声音、视频,还有一些代码什么的,加在一起就是你看到的样子。我们将这些文件放到IPFS进行唯一化,今后只要通过地址就可以打开它们,而且这些文件在IPFS中是可共享的。这样一来,你的邻居如果访问过相同的网站,你就可以从他那里直接获取,物理距离更近,打开速度更快。
IPFS和所有的区块链技术一样,都是基于P2P,形成了点对点传输网络。人们可以更容易的连接在一起,相互组成一个更大的网络。这种网络没有中心节点,你要的资源可能在你的邻居那里,也可能在地球另一端。存储在IPFS中的资源,可能分散在世界各地,更可能由于查看的人气,集中在某个热点地区。热点资源会更容易获得,访问速度也更快。
如果你整栋楼的邻居都有,他们可以拆碎了,每人给你一小块,你收到后再进行拼接。这样不但更快速(因为同时发给你一堆),而且还节省上传带宽(国内网络是ADSL,上传速度受限)。
有了IPFS,我们或不再需要中心化的WEB服务器,一切资源可以去中心化的发布。将网页,图片,脚本等等资源,提交到IPFS进行唯一化发布,得到了这些地址,便可以访问你的网站。地址太长不好记,还可以生成一个短地址,就像现在的网站域名。如果你是WEB开发者,或许会问,你说的这些资源都是静态的,如何实现动态页面?想想看,未来,我们真的还需要用PHP,RUBY来做动态页面吗?前端代码进行交互,异步读取&提交数据不行吗?动态的大部分任务不就是为了用户体验,为了快吗?
你会说,没了WEB服务器,你连用户登录都做不到。你心想,即使静态资源去中心化了,还是有一些功能需要数据库,需要中心化的方式处理复杂的业务逻辑。说的没错。但是别忘了我们还有智能合约,如果你认为智能合约只是现在这个样子,恐怕就错了。未来的智能合约(或许叫别的名字),处理速度会更快,业务处理能力会更强。
网友评论