Http大家都很熟悉了,但是在这里还是要科普一下,方便小小白学习。
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。一句话,目前绝大多数的互联网数据传输全靠这个协议支撑。知道它的重要性了吧?
那么它是怎么运行的呢?举个栗子,你想在淘宝买件衣服,首先要输入网址(你要访问的数据都是存储在各大服务器上的!全世界有几千万个这样的服务器吧!当然啦,这些数据都是中心化的)发出请求,服务器接受到请求后,给予响应,就与客户端建立连接,数据传回客户端,你就看到想买的东西了,服务器与客户端断开连接。你一看,不满意,又点了一下另外一个网店,于是计算机就重复一次上面的过程。你每一次操作电脑就会重复一次上面的过程,直到网购结束。
问题来了,这种互联网模式有很多弊端,简单列举一下:
1.数据的利用:你访问的网站的数据,你访问网页产生的数据,都在中心化的服务器上,那么,这些数据谁能看,谁能用,什么时候看,什么时候用,怎么用,几乎都是服务器端说了算。假如CIA控制了机房…… 数据的生产者很难有话语权。数据的交易更是寡头之间的贸易,和互联网数据生产者几乎无关。
2.安全性差。如果服务器遭到恶意攻击,要么数据被盗,要么网站不能访问(经常看到的502情况)。为了防止数据丢失,服务器不得不穷尽一切办法进行防御并有多个备份。
3.效率低下。使用HTTP协议从一台计算机服务器上一次只能下载一个文件,而不是同时从多台计算机中获取文件。假如你需要的资源存放的服务器在欧洲,那么亚洲的客户端访问就要翻越半个地球来传输数据。
简单总结,中心化的网络限制了互联网的发展。
下面让我们看看IPFS是怎么解决这些弊端的。
星际文件系统IPFS(InterPlanetary File System,缩写IPFS)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。它是一个开放源代码项目,自2014年开始由Protocol Labs (协议实验室)在开源社区的帮助下发展。其最初由Juan Benet设计。
IPFS是点对点的超媒体协议,可以让网络更快、更安全、更开放。它是一个面向全球的、点对点的分布式版本文件系统,试图将所有具有相同文件系统的计算设备连接在一起。
看到这里估计小白们都蒙逼了,那就举个栗子!
比如,你想看一个名叫**的小电影(有些同学想歪了啊),就直接在IPFS网络里搜索视频的名字**(通过一个叫IPNS的去中心化的文件命名系统),IPFS网络会迅速索引区块链(这个区块链上存储全网所有文件的文件名的哈希值)上的哈希值,并反馈搜索结果,下面需要支付一点点filecoin代币,就可以获取这个视频文件缓存到本地(这个文件不是从云或者服务器上下载下来的,而是网络参与者贡献的,还有可能是离你最近的一个节点,这样的网络不需要中间的服务器,数据传输效率高)。
是不是很酷?更酷的在后面。
如果恰好你要看的这个文件附近几个节点都有存储,IPFS网络会把文件拆分好几份,同时从几个节点下载文件,效率更高。如果你把这个文件存在自己电脑里,不仅自己观看,同时也给其他人提供资源,或者自己创新的视频共享到网络,你也有机会获得filecoin代币,因为你也为网络做了贡献。也就是说,数据生产者可以获得报酬了!喜大普奔吧?
在IPFS网络里,每个文件及其中的所有块都被赋予一个称为加密散列的唯一指纹。
IPFS通过网络删除重复具有相同哈希值的文件,通过计算是可以判断哪些文件是冗余重复的。并跟踪每个文件的版本历史记录。
每个网络节点只存储它感兴趣的内容,以及一些索引信息,有助于弄清楚谁在存储什么。
查找文件时,你通过文件的哈希值就可以在网络查找到储存改文件的节点,找到想要的文件。
使用称为IPNS(去中心化命名系统),每个文件都可以被协作命名为易读的名字。通过搜索,就能很容易地找到想要查看的文件。
也就是说,每个网络成员兼顾使用者、运营者、维护者三个角色。