简介
IPFS是一个使用点对点超媒体协议的分布式文件系统,旨在连接拥有相同文件系统的所有计算机设备,让网络更快,更安全,更开放。
IPFS解决的问题
全球已经有许多成功的分布式文件系统,但这些系统所使用的理论框架都停留在应用层,没有放在基础层。通用的文件基础框架无法形成,也就无法提供低延迟的数据分发。
我们正在进入数据分发的新纪元,大量数据,无处不在。HTTP作为“分布式文件系统”协议被广泛使用,但近15年出现的众多先进文件分发技术,并没有被其采用。由于关键功能和带宽问题,IPFS将尝试放弃使用HTTP协议,使用那些先进的文件分发技术,并使它们成为WEB中的一部分。
Git是分布式源代码版本控制系统,开发了许多有用的方法来建模和实现分布式数据操作。Git中涉及的Merkle DAG数据模型,能够实现强大的文件分发策略。Git提供的版本控制功能,正是大量文件分发系统严重缺乏的。将这种数据结构融入到具有超高吞吐量的文件系统,以及如何升级WEB本身,都是IPFS将要解决的问题。
IPFS综合了许多成功系统的优点,放弃使用HTTP协议,并引入了GIT的版本控制技术,最终会形成一个通用的文件基础框架。IPFS的成功将会极大地提高文件分发和数据共享的效率,版本控制技术的运用也为分布式文件系统注入了新的活力。
IPFS团队
协议实验室(Protocol Labs),由 IPFS发明者 Juan Benet 所创立,毕业于斯坦福大学。Protocol Labs在2014年夏季入选美国顶级孵化器Y-Combinator ,该团队已经成功完成了多个项目的开发。FileCoin的ICO,Protocol Lab还成立了法律团队,以确保ICO合乎美国相关法律的要求,可以看出这个团队做事还是挺靠谱的。
技术解决方案
IPFS由七个基本的关键要素组成:
- 身份:P2P节点身份;
- 网络:管理P2P节点的连接;
- 路由:存储对象信息,定位P2P节点;
- 交换:管理区块分布的协议;
- 对象:Merkle-DAG,内容可寻址但不可篡改的对象和链接;
- 文件:版本控制文件系统;
- 命名:使用内容寻址DAG对象的可变命名。
参照这七个基本的关键要素我们一起来看一下,IPFS是如何在一个P2P网络中实现数据高效分发的。
首先你需要搞明白什么是P2P网络:
通常情况下,我们的数据传输方式都是基于中心化服务器的。例如你在一个网站上下载电影,数据其实是由网站背后的中心化服务器来提供的,其他人想要下载电影,也都是如此。
P2P网络的基本模型是什么样子的呢?我和你都有一台电脑,它们是相互连通的,我可以把文件分享给你,你也可以把文件分享给我。当有无数个节点加入的时候,依然可以实现相互之间的通信和数据共享。而在基于中心化服务器的网络中,节点间的通信和数据分发,都是通过中心服务器来完成的。
想要完成P2P网络的数据共享,必须具备两个基本的前提:
知道我要的数据在哪里
在中心化模式下,所有的请求都会发送给固定的服务器,目标是明确的。P2P网络中,任何节点都有可能会成为你的临时服务器,向你共享数据。当你需要下载文件时,网络会先确定由谁来为你提供服务。这好比是网上购物之后选快递,先要选择一家快递公司,然后告诉他你的地址,快递才能知道把货送到哪里。
IPFS构建的网络中,每个节点都会有一个NODEID,用于标识节点身份。技术上使用基于S/Kademlia和Coral的分布式松散哈希表DSHT来寻找匹配的节点和特定节点的地址信息。超过1KB的信息,IPFS会将其拆分成若干数据块,交给不同的节点进行存储,而DHT负责存储这些节点的身份信息。
这解决了数据在哪里的问题。
如何完成数据传输
中心化模式下,通常使用HTTP协议来帮你完成请求的发送。你点一下鼠标,想要下载电影,背后其实是HTTP作为信使,将你的消息传递给了服务器,服务器收到请求后,会做出响应,将电影作为数据回传给你。
IPFS使用基于BitTorrent的BitSwap协议来完成数据的传输。BitSwap 节点可以从整个IPFS网络获取所需的块,数据传输的效率会大大的提高。同时,网络中存在一些激励节点会主动缓存和传播稀有的文件片段,可以有效地避免网络拥堵的情况出现。
这解决了数据传输的问题。
引入文件版本控制
IPFS借鉴了GIT中的版本控制思想,使用一种有向无环图 Merkle DAG,使用目标哈希散列来构建对象之间的链接。这使得IPFS将具备以下属性:
这是IPFS的一大亮点,常见的文件分发系统中,并没有引入文件版本控制的机制,该机制的引入,在文件共享之外,添加了更多想像空间。例如,你可以对某个文件完成版本升级处理,然后共享到IPFS网络中,如果该版本可以获得更多人的喜欢和使用, 你可以从中获得代币奖励。
上面的例子是我的一种假设,旨在证明加入版本控制之后,可以有一些有趣的玩法,你想到的玩法是什么?
IPFS代币FileCoin
IPFS想要发挥出巨大的价值,需要大量节点来提供数据的存储和检索服务。代币FileCoin就是为了激励“矿工”,保证网络有效运转而发行的。
代币总量:2,000,000,000 FIL
流通量:200,000,000 FIL (Filecoin代币销售硬顶)
ICO成本:
- 顾问成本 0.75USD/FIL(锁定期至少1年)
- 众筹成本 >=1USD/FIL (代币的众筹成本会逐渐增加)
ICO时间:2017.8.11~2017.9.7
募集资金:1.86亿美元。(加上之前向大型机构的募资,共募集 2.58亿。filecoin初始总估值为20亿美元。)
代币销售情况:
目前官方还没有发布任何公开销售代币的消息,参与ICO的交易所提供了期货购买,例如gate.io,lbank.info。请投资者谨慎投资,避免上当受骗。
不谈风险的项目分析都是耍流氓
技术上来说,能够创造出更加先进的协议,让人们在HTTP协议之外,有了更多的一种选择,这对于整个社会的发展是意义重大的。但是想要抛弃HTTP协议也并不是那么容易的事情。这是IPFS伟大的地方,但也给它带来了更大的困难,增加了成功的不确定性。
IPFS是去中心化的数据存储和分发网络,用户可以自由的网络中完成数据的共享,这让数据的内容是否合法变得不可控。对快播有了解的用户应该可以很好的理解这一点,点对点的系统当中用户自己管理自己的数据,当出现违规数据时,想要彻底删除,并且有效阻止数据继续传播,相比中心化的模式,难度将大大的增加。所以在解决技术难题之后,想要实现的落地,IPFS必须拥有一套自己的数据内容监管机制。