一、IPFS概览
1 什么是IPFS
星际文件系统(InterPlanetary File System)。 IPFS 是一个分布式的web, 点到点超媒体协议。 可以让我们的互联网速度更快, 更加安全, 并且更加开放。
2 为什么有IPFS
众所周知, 互联网是建立在HTTP协议上的。 HTTP协议是个伟大的发明, 让我们的互联网得以快速发展。但是互联网发展到了今天HTTP逐渐出来了不足。
HTTP的中心化是低效的, 并且成本很高。
使用HTTP协议每次需要从中心化的服务器下载完整的文件(网页, 视频, 图片等), 速度慢, 效率低。 如果改用P2P的方式下载, 可以节省近60%的带宽。 P2P将文件分割为小的块, 从多个服务器同时下载, 速度非常快。
Web文件经常被删除
回想一下是不是经常你收藏的某个页面, 在使用的时候浏览器返回404(无法找到页面), http的页面平均生存周期大约只有100天。 Web文件经常被删除(由于存储成本太高), 无法永久保存。 IPFS提供了文件的历史版本回溯功能(就像git版本控制工具一样), 可以很容易的查看文件的历史版本, 数据可以得到永久保存
中心化限制了web的成长
我们的现有互联网是一个高度中心化的网络。 互联网是人类的伟大发明, 也是科技创新的加速器。 各种管制将对这互联网的功能造成威胁, 例如: 互联网封锁, 管制, 监控等等。 这些都源于互联网的中心化。而分布式的IPFS可以克服这些web的缺点。
现在的互联网应用高度依赖互联网主干网
主干网受制于诸多因素的影响, 战争, 自然灾害, 互联网管制, 中心化服务器宕机等等, 都可能是我们的互联网应用中断服务。 IPFS可以是互联网应用极大的降低互联网应用对主干网的依赖。
3 IPFS的目标
IPFS不仅仅是为了加速web。 而是为了最终取代HTTP协议, 使互联网更加美好(野心真的很大)。
二、IPFS如何工作?
IPFS的的”宏伟”目标是取代HTTP,那么先来看看IPFS是如何工作的。
IPFS为每一个文件分配一个独一无二的哈希值(文件指纹: 根据文件的内容进行创建), 即使是两个文件内容只有1个比特的不相同, 其哈希值也是不相同的。所以IPFS是基于文件内容进行寻址, 而不像传统的HTTP协议一样基于域名寻址。
IPFS在整个网络范围内去掉重复的文件, 并且为文件建立版本管理, 也就是说每一个文件的变更历史都将被记录(这一点类似版本控制工具git, svn等), 可以很容易个回到文件的历史版本查看数据。
当查询文件的时候, IPFS网络根据文件的哈希值(全网唯一)进行查找。 由于每个文件的哈希值全网唯一, 查询将很容易进行。
如果仅仅使用哈希值来区分文件的话, 会给传播造成困难, 因为哈希值不容易记忆, 就像ip地址一样不容易记忆, 于是人类发明的域名。 IPFS利用IPNS将哈希值映射为容易记的名字
每个节点除了存储自己需要的数据, 还存储了一张哈希表, 用来记录文件存储所在的位置。 用来进行文件的查询下载。
三、IPFS相对于中心化服务器的优点
上文提到 HTTP 及一些中心化服务器的缺点。那么问题来了, IPFS是如何来解决这些缺点的?
1. 下载速度快, 不再依赖主干网, 中心化服务器
整个IPFS系统是一个分布式的文件存储系统, 那么在下载相关数据的时候, 将从多个节点同时下载, 相比于HTTP从中心服务器的下载速度要快很多, 大家都用过P2P下载(比如: 迅雷, BitTorrent), IPFS下载过程跟这个类似。
2. 存储空间变得非常便宜:
由于IPFS使用的是区块链技术, 利用 Filecoin(为了的文章中会将如何获取filecoin, 也就是挖矿)来激励矿工分享自己的硬盘, 并且IFPS从全网去掉了冗余存储(从整个网络空间考虑, 这将大大节省网络存储空间), 将来的IPFS存储将会变得非常便宜(与我们现在的云盘, 各种中心化的CND相比较)。
3. 安全:
中心化服务器目前很难抵挡DDoS攻击, 当大量的访问请求从四面八方涌来, 中心化的服务器几乎会在一瞬间瘫痪, 做过运维的同学应该深有感触, 比如每年双11, 不能睡觉的除了阿里, 腾讯的技术同学, 还有整个银行业的小朋友。 巨大的访问量随时可能造成服务器宕机。 IPFS天生就拥有抵挡这种攻击的能力。 因为所有的访问将会被分散到不同的节点。 甚至攻击者自己也是节点之一。 某种程度上讲, IPFS甚至能抵挡量子计算的攻击。
4. 开放:
众所周知, 比特币是一种去中心化, 匿名的数据货币, 这些特性使得比特币无法被管制, 交易无法篡改。 IPFS同样, 由于是建立在去中心化的分布式网络上的, 所以IFPS很难被中心化管理, 限制。 互联网将更加开放。