学习
实践
活动
专区
工具
TVP
写文章

IPFS:一个基于点对点超媒体协议的分布式文件系统

波波BBBLOCKCHAIN

未来已来,你来不来?

IPFS是一个使用点对点超媒体协议的分布式文件系统,旨在连接拥有相同文件系统的所有计算机设备,让网络更快,更安全,更开放。

IPFS团队

协议实验室(Protocol Labs),由 IPFS发明者 Juan Benet 所创立,毕业于斯坦福大学。Protocol Labs在2014年夏季入选美国顶级孵化器Y-Combinator ,该团队已经成功完成了多个项目的开发。FileCoin的ICO,Protocol Labs还成立了法律团队,以确保ICO符合美国相关法律规定,可以看出这个团队做事还是挺靠谱的。

IPFS解决的问题

全球已经有许多成功的分布式文件系统,但这些系统所使用的理论框架都停留在应用层,没有放在基础层。通用的文件基础框架无法形成,也就无法提供低延迟的数据分发。

我们正在进入数据分发的新纪元,大量数据,无处不在。HTTP作为“分布式文件系统”协议被广泛使用,但近15年出现的众多先进文件分发技术,并没有被其采用。由于关键功能和带宽问题,IPFS将尝试放弃使用HTTP协议,使用那些先进的文件分发技术,并使它们成为WEB中的一部分。

Git是分布式源代码版本控制系统,开发了许多有用的方法来建模和实现分布式数据操作。Git中涉及的MerkleDAG数据模型,能够实现强大的文件分发策略。Git提供的版本控制功能,正是大量文件分发系统严重缺乏的。将这种数据结构融入到具有超高吞吐量的文件系统,以及如何升级WEB本身,都是IPFS将要解决的问题。

IPFS综合了许多成功系统的优点,放弃使用HTTP协议,并引入了GIT的版本控制技术,最终会形成一个通用的文件基础框架。IPFS的成功将会极大地提高文件分发和数据共享的效率,版本控制技术的运用也为分布式文件系统注入了新的活力。

技术解决方案

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网络中,如果该版本可以获得更多人的喜欢和使用, 你可以从中获得代币奖励。

上面的例子是我的一种假设,旨在证明加入版本控制后,可以有一些有趣的玩法,你想到的玩法是什么呢?

IPFS代币FileCoin

IPFS想要发挥出巨大的价值,需要大量节点来提供数据的存储和检索服务。代币FileCoin就是为了激励“矿工”,保证网络有效运转而发行的。

代币总量:2,000,000,000 FIL

流通量:200,000,000 FIL

ICO成本:

顾问成本0.75 USD/FIL

锁定期至少1年

众筹成本>=1 USD/FIL

众筹过程中,成本将逐渐增长

ICO时间:2017.8.11~2017.9.7

募集资金:1.86亿美元。

加上之前向大型机构的募资,共募集 2.58亿。filecoin初始总估值为20亿美元。

代币销售情况:

目前官方还没有发布任何公开销售代币的消息,参与ICO的交易所提供了期货购买,例如gate.io,lbank.info。请投资者谨慎投资,避免上当受骗。

不谈风险的项目分析都是耍流氓

技术上来说,能够创造出更加先进的协议,让人们在HTTP协议之外,有了更多的一种选择,这对于整个社会的发展是意义重大的。但是想要抛弃HTTP协议也并不是那么容易的事情。这是IPFS伟大的地方,但也给它带来了更大的困难,增加了成功的不确定性。

IPFS是去中心化的数据存储和分发网络,用户可以自由的网络中完成数据的共享,这让数据的内容是否合法变得不可控。

对快播有了解的用户应该可以很好的理解这一点,点对点系统当中,由用户自己管理数据,出现违规数据时,想要彻底删除,有效阻止数据的传播,相比中心化的模式,难度将大大的增加。

所以在解决技术难题之后,想要全面落地,IPFS必须拥有一套自己的数据内容监管机制。

· END ·

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180320G1CA3S00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券