基础篇中提到,IPFS本质上是解决了互联网过度冗余的问题。
但其的价值远不止于此。
如果说区块链将彻底改变互联网,那么IPFS就将彻底改变WEB万维网(或许不仅限于WEB)。
IPFS会从跟本上改变WEB内容的分发机制,使其完成去中心化。
我们现有的WEB网络(就是大家浏览的各大网站),都是基于HTTP协议的,它是一种中心化的网络(基于TCP协议)。无论内容分发如何分布式进行,无论有多少服务器分布在世界各地。中心化的本质仍然存在。
回到我们的主题,IPFS将相同的文件进行了hash计算,确定了其唯一的地址。这样一来,无论从任何设备,任意地点,其地址的唯一性都会指向相同的资源。(不同于URL,这种地址是原生的,由加密算法保证的,你无法改变,也无需改变它!)
我们通过浏览器打开的每个网页都是一组文件的合集,有文字、图片、声音、视频,还有一些代码什么的,加在一起就是你看到的样子。我们将这些文件放到IPFS进行唯一化,今后只要通过地址就可以打开它们,而且这些文件在IPFS中是可共享的。这样一来,你的邻居如果访问过相同的网站,你就可以从他那里直接获取,物理距离更近,打开速度更快。
IPFS和所有的区块链技术一样,都是基于P2P,形成了点对点传输网络。人们可以更容易的连接在一起,相互组成一个更大的网络。这种网络没有中心节点,你要的资源可能在你的邻居那里,也可能在地球另一端。
存储在IPFS中的资源,可能分散在世界各地,更可能由于查看的人气,集中在某个热点地区。热点资源会更容易获得,访问速度也更快。如果你整栋楼的邻居都有,他们可以拆碎了,每人给你一小块,你收到后再进行拼接。这样不但更快速(因为同时发给你一堆),而且还节省上传带宽(国内网络是ADSL,上传速度受限)。
有了IPFS,我们或不再需要中心化的WEB服务器,一切资源可以去中心化的发布。将网页,图片,脚本等等资源,提交到IPFS进行唯一化发布,得到了这些地址,便可以访问你的网站。 地址太长不好记,还可以生成一个短地址,就像现在的网站域名。
如果你是WEB开发者,或许会问,你说的这些资源都是静态的,如何实现动态页面?想想看,未来,我们真的还需要用PHP,RUBY来做动态页面吗?前端代码进行交互,异步读取&提交数据不行吗?动态的大部分任务不就是为了用户体验,为了快吗?
你会说,没了WEB服务器,你连用户登录都做不到。你心想,即使静态资源去中心化了,还是有一些功能需要数据库,需要中心化的方式处理复杂的业务逻辑。 说的没错。但是别忘了我们还有智能合约,如果你认为智能合约只是现在这个样子,恐怕就错了。
未来的智能合约(或许叫别的名字),处理速度会更快,业务处理能力会更强。
即使现在,没有中心化的服务器,人们不也实现了ICO众筹嘛!
其他的不过是时间问题...