IPFS 星际文件系统入门_第1张图片

IPFS介绍

IPFS的全称是InterPlanetary File System星际文件系统,是一个点对点的网络超媒体协议。它的目标是成为更快、更安全、更开放的下一代互联网。

IPFS尝试解决HTTP目前存在的四个问题:

  • 服务低效,成本高。这也是大部分P2P服务比中心化服务器优秀的地方。
  • 网络服务受限于供应商,文件具有无法永久保存的风险,更无法历史回溯。
  • 中心化的网络权力过于集中,网络控制和监管某些程度上限制了科技创新。
  • 互联网服务大多依赖于骨干网络,一旦宕机大部分服务将无法使用。

IPFS的野心是取代现在的HTTP,去创建一个全新的去中心化网络。

在IPFS网络上,每个IPFS上的文件都具备一个唯一的哈希码。IPFS同时具备了文件去重和历史版本的功能,每个网络节点会存储自己感兴趣的内容,并且索引其它内容的位置,用户可以通过哈希码来寻找到每个文件的具体位置。此外IPFS本身还自带一个IPNS的域名,可以把你的内容和你的个人域名进行绑定。

IPFS基础入门

在中心化模式里,服务高度依赖中心网络。大公司或者创业公司无法承受宕机,需要消耗特别高的成本,通常需要雇佣一批运维专家或者专业人事,去保障系统的稳定性。在分布式模式里,存储数据又由丢失的风险,电缆,人害都是隐患。而网络空间的治理模式而言,需要一个新的互联网传输协议,一个旨在创建持久且去中心化的分布式存储和共享文件的网络传输协议。

IPFS本质上是一种内容可寻址/版本化/点对点超媒体的分布式存储/传输协议,可以构建更快/更安全/更自由的互联网时代,目标是补充甚至取代过去20年里使用的HTTP。IPFS的开发目前处于ALpha试验阶段,还没能替代现存的网站存储系统。

IPFS用基于内容的寻址替代传统的基于域名寻址,用户不需要关心服务器的位置,不用考虑文件存储的名字和路径。用户上传一个文件到IPFS节点中,将会得到基于其内容计算出的唯一密码哈希值。哈希值直接反应文件的内容,哪怕只修改1比特,哈希值也会完全不同。当IPFS被请求一个文件哈希时,他会使用一个分布式哈希表找到文件的所在节点,取回文件并验证文件数据。IPFS从根本上改变了查找的方式,这是它最重要的的特征。在HTTP协议中,用户查找的时位置,而在IPFS协议中用户查找的似乎内容。

IPFS是通用目的的基础架构,基本上没有存储上的限制。大文件会被切分成小块,下载的时候可以从多个服务器中同时获取。IPFS的网络是不固定的,细粒度的,分布式的网络,可以很好的适应内容分发网络的要求。这样的设计可以很好的共享各类数据,包括图像,视频,数据库,甚至整个操作系统。

IPFS解决方案

举例说明,明白IPFS和HTTP不用之处后,我们在后面的了解过程中,会轻松很多。那IPFS和HTTP的核心区别就是IPFS查找的是文件的内容,而HTTP查找是文件的位置。我们把原理简单阐述一下。

遵照HTTP协议,浏览器首先会查找服务器的位置(ip地址),随后向服务器索要文件路径。这种体系,文件的位置取决于服务器的管理者,而用户只能希望于文件没有被移动或者删除,并且服务器没有关闭。比如我们在使用百度云盘的时候,经常会出现的提示“文件已删除或移动”。

IPFS的做法,则是不关心中心服务器的位置,也不考虑文件的名字和路径,只关注文件中可能出现的内容。把文件放置到IPFS节点,会得到一个新的文件名(一个哈希值),这个文件名类似于我们使用的钱包公钥(地址),并且标识了文件的内容。当IPFS被请求一个文件哈希时,他会使用一个分布式哈希表找到文件所在的节点,取回文件并验证文件数据(整个过程相当于用私钥取出指定地址钱包的货币余额)。

另外IPFS文件还可以抽象成特殊的IPFS目录,从而标注的一个可读的文件名。从而标注一个可读文件名(可以映射到IPFS哈希),在访问时,会想HTTP一样获取一个目录索引。把网站在IPFS上建立只需要一条指令:

Ipfs add -r 网址

网页建的链接不再需要人去维护,IPFS自带的查找可以 解决。

IPFS的技术架构

IPFS与老技术相比优势在于:第一能提高系统效率。第二能降低系统运维成本。IPFS技术架构大概分为8层。从顶部的身份层,网络层,路由层,交换层,对象层,文件层,命名层,应用层。每层功能独立且搭配。对技术架构原理我们暂时不做细致讨论,这会引起大脑不适。

IPFS 星际文件系统入门_第2张图片

IPFS与区块链

严格来说,IPFS协议是使用了一部分区块链中技术所衍生出来的新技术协议,可以说是独立出区块链的新型技术。同时他继承了区块链中分布式账本,去中心化的属性,以及增加了无限可能的储存空间。但是这是在无链IPFS功能性上的优势,如果要保证链改IPFS项目的高能力运行,那么主链之间的信息传输将会是核心问题。因为这涉及到工作量证明验证。

比如LibP2P,是IPFS协议中的网络层,相当于快递公司的角色,主要功能是发现节点,链接节点,发现数据,传输数据。利用LibP2P的特点,使IPFS协议被任何区块链项目接入,因为还可以作为一个P2P工程的底层协议存在。

比如IPLD,他是一个转换器,可以把现有的异构的数据结构统一成一种格式,方便不同系统之间的数据交换和互相操作。因此,IPLD其实使一个转换的中间件,他支持BTC,ETH等区块数据结构。这也是IPFS能与区块链系统融合的原因。比如跨链应用。

关于Filecoin

Filecoin的项目起源使为了鼓励人们参与到IPFS协议的活动中,以借鉴BTC的经济模型而开发出基础IPFS协议的基础货币FIL。通过两种方式参与者可以获得货币。

1,Host为网络提供空闲的存储空间。

Retriver为网络中的节点提供宽带,帮其他用户传输文件。

简单说,Filecoin的意思是,要借助HTTP协议的存储空间和宽带,解决掉HTTP,参与的人们将给与FIL奖励。

PS:Filecoin的主网推迟已经多次,2019年11月启动的是测试网不是主网,主网启动新启动时间又又又又推迟到2020年第一季度。