IPFS——它能取代HTTP协议?

  • 2017-07-14
  • 85
  • 0
  • 0

互联网是人类历史上最重要、最具影响力的发明,在互联网诞生之前,谁也不知道它能给世界带来如此巨大的改变。足不出户,我们可以接受来自全世界的讯息,即使是在移动行走的状态,也可以用我们的掌上“器官”随时与其他人通讯。

但你有没有想过,互联网是怎么运行的,使得互联网上信息自由流通呢?

Tim Berners-Lee的NeXT电脑是世界上第一台Web服务器,但机器上有一个贴纸:“这台机器是服务器,不要关闭”。

互联网就是由数以万计的服务器分布在全世界的各个角落,世界最大的芯片制造厂商 Intel 有大约10万台服务器,Facebook有3万台,美国最大的电话公司 AT&T 也有2万台,而 Google有超过100万台服务器!这个数字还是非常恐怖的。

我们当前的互联网就是由这些巨头公司的服务器所构成的,这些服务器一直在机房运转着,如果关闭服务器,你将无法访问上面托管的内容。

懂点计算机网络原理的人都知道,互联网的数据交互模式使用的是 B/S 和 C/S 模式,即 客户-服务器,以及 浏览器-服务器 模式。

网络数据是存储在各大服务器上,即使这样的服务器全世界非常多,多达千万甚至上亿个,但对于文件数据仍然是非常中心化的,因为你建的网站也只会放在一家公司的服务器上,你所产生的用户数据,也都是存在中心化的公司服务器上的。

一台服务器可能要每天应对百万次来自各个客户端和浏览器的访问,如果遭遇类似美国安全局这样的机构的审查,只需要控制这些服务器提供商,就可以轻易掌握用户数据。同样,黑客只需要发动对服务器的攻击,也有可能让普通用户无法访问服务器,DDOS攻击就是利用多台计算机对服务器进行大量的服务请求,占据服务器资源,导致正常用户也无法访问网站,出现我发经常看到502的情况。


现有的web协议——HTTP协议实际上已经存在很多问题。我这里引用官网https://ipfs.io/的介绍:

  • HTTP效率低下,服务器成本昂贵

使用HTTP协议从一台计算机服务器上一次只能下载一个文件,而不是同时从多台计算机中获取文件。通过P2P方式的视频传输可以节省带宽成本的60%。

  • 历史文件被删除

网页的平均使用寿命为100天,大量的网站文件不能得以长期保存。有些重要的文件因操作不当,也有可能永远在互联网消失。

  • 中心化的网络限制了机会

互联网一直是人类进步的催化器,但中心化的网络容易被控制,是对互联网良性发展的的威胁。

  • 网络应用太依赖骨干网

 为保证数据的可靠性,我们开发的应用程序太依赖大型的中心服务器,并通过大量的备份来保证数据的安全。

HTTP协议已经用了20年的历史,从HTTP 1.0 到现在的HTTP5,网页的展示越来越美观丰富,但它背后的Browser/Server 模式是从来没变的。

如果你关注区块链的话,也许听说过IPFS——星际文件系统。IPFS就是用来解决或者弥补HTTP的一系列弊端。

星际文件系统(InterPlanetary File System,缩写IPFS)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。它是一个开放源代码项目,自2014年开始由Protocol Labs (协议实验室)在开源社区的帮助下发展。其最初由Juan Benet设计。

IPFS是点对点的超媒体协议,可以让网络更快、更安全、更开放。它是一个面向全球的、点对点的分布式版本文件系统,试图将所有具有相同文件系统的计算设备连接在一起。

IPFS可以从本质上改变网络数据的分发机制

来看看IPFS的工作原理:

  • 每个文件及其中的所有块都被赋予一个称为加密散列的唯一指纹。

  • IPFS通过网络删除重复具有相同哈希值的文件,通过计算是可以判断哪些文件是冗余重复的。并跟踪每个文件的版本历史记录。

  • 每个网络节点只存储它感兴趣的内容,以及一些索引信息,有助于弄清楚谁在存储什么。

  • 查找文件时,你通过文件的哈希值就可以在网络查找到储存改文件的节点,找到想要的文件。

  • 使用称为IPNS(去中心化命名系统),每个文件都可以被协作命名为易读的名字。通过搜索,就能很容易地找到想要查看的文件。
    从IPFS的介绍可以看出, IPFS设想的是让所有的网络终端节点不仅仅只充当 Browser或Client的角色,其实人人都可以作为这个网络的运营者,人人都可以是服务器

    对比HTTP,IPFS具有这样的一些特性:

 – 基于内容寻址,而非基于域名寻址。文件(内容)具有存在的唯一性,一个文件加入了IPFS的网络,将基于计算对内容赋予一个唯一加密的哈希值。这将改变我们使用域名访问网络的习惯。

– 提供文件的历史版本控制器(如git),并且让多节点使用保存不同版本的文件。

  • IPFS的网络上运行着一条区块链,即用来存储互联网文件的哈希值表,每次有网络访问,即要在链上查询该内容(文件)的地址。 

  • 通过使用代币(FileCoin)的激励作用,让各节点有动力去存储数据。 Filecoin 是一个由加密货币驱动的存储网络。矿工通过为网络提供开放的硬盘空间获得Filecoin,而用户则用 Filecoin 来支付在去中心化网络中储存加密文件的费用。

    比如我想观看一部叫ABC的视频 

1, 加入IPFS网络,在网络中搜索叫ABC的文件,(通过IPNS——去中心化的文件命名系统)

2, IPFS网络迅速索引区块链上的哈希值,反馈出搜索结果。

3, 你支付一点FileCoin代币, 获取ABC文件缓存到本地,ABC文件不是从云或者服务器上下载下来的,而是由这个网络的参与者贡献的,它可能是离你最近的一个网络节点。这样的好处就是不仅不需要中间服务器,而且网络效率最快。 

4, 如果ABC文件恰好你周边好几个人都有,那IPFS网络会把这个文件拆成一小片一小片,节省了这些节点的储存成本,也让你用最具效率的方式下载到该视频。

5, 这个视频文件缓存在自己电脑里,不仅自己观看,同时也为其他人提供资源。 

6, 另外也可以自己发布新内容到这个网络上,并且有机会获得FileCoin代币,因为你也为网络做了贡献。 

通过这样的方式,实现了整个网络的文件利用达到最优效率 

如果你对IPFS感兴趣,又懂点编程的话,可以亲自试一下,IPFS已经有了Alpha版。

https://ipfs.io/docs/getting-started/


那说到这里,IPFS跟SC(Sia Coin)有什么不同?这个问题应该比较好回答了。 

  • SC是一条做去中心化的存储的公链,通过代币购买存储空间,将文件备份在互联网的多个节点上,提高文件的安全性。 

  • IPFS是一个底层的互联网协议,跟HTTP一样做的是信息交换的事,实现的方法不同,IPFS实现的是互联网上各个节点的文件读取、分享、交换。

是不是有满满的颠覆的感觉!

IPFS 的设计思维非常有意思,它从互联网的最底层——数据,也就是文件,来思考问题,颠覆式创新经常是从第一性原理出发,找出事物的本质,从而重新设计该系统的架构。

区块链技术的出现让分布式网络的设计成为了可能。区块链并不是万能的,反而区块链是一种低效且昂贵的存储数据的方式。IPFS的精妙之处是它把分布式账本可以被放置于IPFS之上,这个分布式账本只是记录了网络里各个文件的哈希值。

 “如果你把它(分布式账本)加到IPFS里,然后通过哈希算法把它录入区块里,那么你就可以通过IPFS直接在网上浏览交易以及文件。IPFS协议与区块链技术结合是个“完美的婚姻”。” ——Benet(IPFS创始人)

IPFS协议让网络的自由和独立精神充分发挥,并且成本低廉。 无论如何,去中心化的网络与中心化的网络并存无疑会是一种趋势。

至于IPFS能否替代HTTP,个人认为,少用“代替“一词….

参考官网介绍: 链接:http://ipfs.io/ 
参考老虎,大硕文章;https://mp.weixin.qq.com/s/gGW_E1QpwSYDX0d7G-jErQ
参考大硕的知乎文章:https://zhuanlan.zhihu.com/p/27827410

我是苏江,长期分享区块链思考,欢迎加我微信与我交流:su466120534

评论

还没有任何评论,你来说两句吧

发表评论