首页 > IPFS > 正文

IPFS详细介绍

分类:信息IPFS爱好者社区IPFS爱好者社区 2020-11-16 20:59

  编辑:大陆节点

  IPFS产生的背景

  2014年5月,斯坦福大学计算机硕士毕业的Juan Benet创立了协议实验室(Protocol Lab)。协议实验室是一个网络协议的研究、开发和部署的实验室,致力于构建协议、系统和工具来改进互联网的工作方式,并关注如何存储、定位和传输信息。协议实验室的目标是用新的技术突破、伟大的用户体验设计和开源的方法来解决传统互联网的种种弊端,并创建了IPFS、Filecoin、libp2p、IPLD、Multiformats等五个项目。

  IPFS详细介绍

  在介绍IPFS之前,大家可以先看下协议实验室官方发布的视频。

  插入视频

  区块链硬盘挖矿生态中,IPFS显然是个特例,它率先提出了“以硬盘有效信息存储”的假设这给予了现在整个硬盘挖矿行业的PoC和PoST生态无限的想象空间。

  (补充:通常我们说的IPFS挖矿、IPFS矿机、币等均指Filecoin和Filecoin挖矿,因为IPFS是协议层,Filecoin才是区块链的奖励层才能挖矿)。

  IPFS是什么

  IPFS,中文翻译“星际文件系统”(Inter Planetary File System),是一种点对点(P2P)的分布式文件存储协议。这样的表达依旧十分抽象,我来举个例子你就明白了。

  在应用场景中,“IPFS”对标的是一个叫“HTTP”的东西,这你可能比较熟悉,当你上网打开百度搜索页面时,它所见即所得。

  这个名叫“超文本传输协议”的家伙,是通过你输入的网址,来调取匹配其中心化数据库的内容,达到信息内容访问的目的。

  言简意赅地说:

  HTTP依赖中心化服务器,容易遭受攻击,访问量暴增服务器容易宕机,下载速度慢,存储成本高;

  而IPFS是分布式节点,更加安全不易被DDoS攻击,不依赖主干网,降低存储成本且存储空间大,下载速度快还能查找文件历史版本记录,并且理论上能永久储存。

  IPFS详细介绍

  IPFS应用场景

  1、如果你有1G的硬盘空闲空间,可以通过将此硬盘接入IPFS的网络变成其中节点,完成硬盘空间共享;

  2、这时你就可以上传歌曲、电影于IPFS共享网络中,它们将被“打碎”成二进制的数据字节,散布于IPFS网络其他各个节点之上(共享空间)

  3、当他人想下载你上传的视频影音文件时,只需在IPFS的网络完成内容检索,便可从存有该文件的“碎片”节点上,下载还原到本地,这就类似于BitTorrent(BT种子)下载,下载的人越多,节点基数越大,资源就越丰富,下载速度也就越快;

  4、不容易被删除,信息保存安全。即使你将原始文件从上传节点中删除,只要曾经有人下载过,便将在网络中继续留存。由于IPFS使用了哈希加密算法,也使保证了保存在整个IPFS网络中的所有数据的安全性。

  HTTP协议的弊端

  我们现在使用互联网都是在http或https协议下运行的,http协议也就是超文本传输协议,是用于从万维网服务器传输超文本到本地浏览器的传送协议,从1990年提出至今已经近30年了,他对于目前互联网的爆炸性成长居功至伟,成就了互联网的繁荣。

  但是HTTP协议是基于C/S架构下的互联网通信协议,基于主干网络中心化运行的机制,也存在诸多弊端。

  首先,互联网上的数据经常因为文件被删除或服务器关闭而永久被抹去。有人统计过目前互联网上的web页面平均保存寿命只有100天左右,我们经常看到一些网站出现“404错误”。近几年,新浪网盘、腾讯微云、金山快盘等网盘纷纷关闭,如果你不把数据下载到本地硬盘的话,你在网盘上的数据就会被清零。

  IPFS提供了文件的历史版本回溯功能,可以很容易的查看文件的历史版本, 且数据无法删除,可以得到永久保存。

  其次,主干网络运行效率低,使用成本高。由于中心化的通讯模式导致所有终端都要从一个Web服务器查找数据,相同的文件会在不同的服务器上重复存储,这就要求服务器的带宽很大。使用HTTP协议每次需要从中心化的服务器下载完整的文件,速度慢、效率低。

  IPFS是基于内容寻址的存储模式,相同的文件都不会重复存储,它会把过剩的资源挤压下来,包括存储空间都释放出来,数据存储成本就会降低。如果改用P2P的方式下载,带宽使用成本可以节省近60%。

  第三,主干网络并发机制制约互联网访问速度。这种中心化主干网络的模式也导致在高并发情况下网络访问时候的拥堵,最典型的就是春运抢购火车票以及双11剁手节的时候。

  第四,中心化限制了web的成长。现在的互联网是由数百万个分布在世界各地的服务器构成的,是一个高度中心化的网络。在现有的http协议下,所有的数据都保存在这些中心化服务器上,互联网巨头们不但对我们的数据有绝对的控制权和解释权,各种各样的监管、封锁、监控一定程度上也极大的限制了创新和发展。

  建立在去中心化的分布式网络上的IFPS很难被中心化管理和限制,互联网将更加开放。

  第五,HTTP对主干网络依赖严重,存在严重的安全隐患。所有数据存储在一个地方,为寻求规模效应,机房就会建设在一个地方,就会非常依赖一个主干节点,一旦“单点式”的中心被摧毁或者发生数据丢失、造假的情况,那么整个网络都会随之瘫痪,或者接收到错误的信息,用户的信息安全和隐私容易受到威胁。

  为了支撑HTTP协议,服务器7*24小时开启,对于大流量公司,比如百度、腾讯、阿里等,投入大量资源维护服务器和安全隐患,防止DDoS、XSS、CSRF等攻击。主干网络受制于战争,自然灾害,中心服务器宕机等因素,都可能造成整个互联网中断服务。IPFS分布式存储可以极大的降低对中心主干网络的依赖。

  Juan Benet指出两个关键:“我们使用的是内容寻址的技术,也就是说内容可以从源服务器分离出来,并永久储存。这就意味着内容可以在距离用户非常近的地方储存和托管,甚至是储存在同一个房间里面。内容寻址还可以让我们校验数据,因为其他主机可能是不受信任的。一旦内容被下载到用户的设备之后,它就可以被无限期的保存。”

  IPFS还可以解决困扰HTTP互联网多时的安全问题:内容寻址和内容签名技术可以保护基于IPFS的网站,杜绝DDoS攻击发生的可能。IPFS还可以归档重要的公共记录内容,避免网站终止运营所带来的损失。

  IPFS的最后一个核心改进是去中心化的内容分布,这点可以让人们在分散的互联网服务(甚至是离线的情况)之下获取互联网的内容。“我们让网站和网页应用摆脱了源服务器的牵制。”Juan Benet解释,“它们可以按照比特币网络的模式进行分布。”这是HTTP无法做到的这一点,而且对于网络条件欠佳的地方和市郊地区来说是一个极大的好处。

  IPFS详细介绍

  IPFS包含的内容

  节点身份。每一个IPFS节点都有一个独一无二的身份ID,利用节点的公钥生成的加密哈希,节点的活动都需要使用这个ID,就像是IPFS网络里面节点的身份证。

  网络。IPFS节点要和网络里面成百上千的其他节点通讯,现实中的网络结构如此复杂,IPFS使用ICE NAT穿透技术来保障网络的连通性。

  路由。IPFS网络的路由使用的事DHT,借鉴了S/Kademlia,使用一个节点可以快速地查找到其它节点。

  数据交换协议。IPFS借鉴BitTorrent协议,使用了叫做BitSwap的数据交换协议,该协议使用两个列表,想要的数据块(want_list)和我有的数据块(have_list)与其他节点进行数据交换。

  对象存储。IPFS存储数据私用的事MerkleDAG结构,这赋予了IPFS内容寻址、防篡改、去重功能。

  版本控制系统。IPFS在MerkleDAG上面添加了Git版本控制功能,这使得IPFS文件拥有了时光机功能,可以轻松查看文件的变动历史。

  自认证命名系统。IPFS使用了SFS自认证系统给文件命名,同时提供了IPNS解决传播问题,而且还兼容了现有的域名系统。

  IPFS和Filecoin的关系

  Filecoin是一种协议标记,在叫做时空证明的新型证明上的区块链。矿工通过存储数据来创造区块。Filecoin通过一系列相互独立的存储提供商来提供存储和读取服务,而非通过单一的的协调器。

  客户通过支付Filecoin来存储和读取数据;存储矿工通过提供存储服务获Filecoin;检索矿工通过提供数据获得Filecoin。

  那IPFS和Filecoin之间是怎样的关系呢?

  IPFS是基础协议,不是区块链;Filecoin是区块链,Filecoin是为IPFS量身定制的激励机制,Filecoin是IPFS的唯一代币。IPFS 是一个网络协议,对标 HTTP 协议,中文叫做星际文件系统。Filecoin 是一个去中心化存储网络,它让云存储变成一个算法市场。

  简单而言,IPFS与Filecoin之间的关系,类似于区块链与比特币的关系。现在Filecoin成为了IPFS协议下的典型应用,形成了紧密的共生关系,离开一方另外一方发展就会变的困难。但同时Filecoin并不是唯一应用IPFS协议的项目,未来一定会有更多应用IPFS的项目走进大家的视线中。

  当Filecoin 与 IPFS 走在一起,Filecoin 则是运行在 IPFS 上面的一个激励层。IPFS是一个点对点的网络,IPFS 有巨大存储需求和节点需求,众所周知 p2p 网络节点越多下载速度则越快。

  Filecoin和IPFS是互补的,两者都是由同一家公司Protocol Labs创建的,其创始人都是Juan Benet。IPFS允许网络中的参与者互相存储,索取和传输可验证的数据。运用IPFS,各节点可存储它们认为重要的数据。而在Filecoin出现之前,IPFS是没有方法可激励他人加入其网络或存储特定数据的。

  在Filecoin的激励结构下,客户付费以在特定的冗余和可用性水平上存储数据,矿工通过不断地存储数据,并以加密方式证明数据存储来获得奖励。简而言之:IPFS按内容寻址并使其移动,而Filecoin就是缺失的激励机制。

  而根据filecoin白皮书所提到的,其计划支持跨链交互,以便在其他区块链平台(例如比特币、Zcash、以太坊以及Tezos)引入Filecoin存储,以及将其他平台的功能引入Filecoin,而选择支持Filecoin的平台,就可保证其IPFS存储内容交换Filecoin token。

  IPFS定位是做开源、去中心、基础底层网络,它的使命是替代HTTP;Filecoin的使命是成就IPFS。

  Filecoin 可以为 IPFS 在全球范围内提供大量节点,于此同时 Filecoin 自身还带着一个巨大的分布式存储空间,同时解决了 IPFS 的存储问题。于是 IPFS 跟 HTTP 对比起来则拥有了更多的优势。

  IPFS的技术架构

  IPFS详细介绍

  IPFS有八层子协议栈,从低往高分别为身份、网络、路由、交换、对象、文件、命名、应用,每个协议栈各司其职,又互相搭配。

  身份层和路由层:对等节点身份信息的生成以及路由规则是通过Kademlia协议生成制定,KAD协议实质是构建了一个分布式松散Hash表(distributed hash table),简称DHT,每个加入这个DHT网络的人都要生成自己的身份信息,然后才能通过这个身份信息去负责存储这个网络里的资源信息和其他成员的联系信息。

  网络层:lib2p可以支持任意传输层协议。ICE NAT traversal框架整合STUN、TURN和其他类型的NAT协议,该框架可以让客户端利用各种NAT方式打通网络,从而完成NAT通信,这对于IPFS的p2p网络非常重要。

  交换层:类似迅雷、电驴这样的BT工具,IPFS团队把BitTorrent进行了创新,叫作Bitswap,它增加了信用和帐单体系来激励节点去分享,用户在发送给其他节点数据可以增加信用值,从其他节点接受数据降低信用值。如果用户只去接收数据而不分享数据,信用分会越来越低而被其他节点忽略掉。

  对象层和文件层:对象层共同管理IPFS上80%的数据结构。大部分数据对象都是以Merkle DAG的结构存在,这为内容寻址和数据去重提供了便利。

  文件层是一个新的数据结构,和DAG并列,采用Git一样的数据结构来支持版本快照。

  命名层:具有自我验证的特性(当其他用户获取该对象时,使用指纹公钥进行验签,即验证所用的公钥是否与NodeId匹配,这验证了用户发布对象的真实性,同时也获取到了可变状态),并且加入了IPNS这个巧妙的设计来使得加密后的DAG对象名可定义,增强可阅读性。

  应用层:IPFS核心价值就在于上面运行的应用程序,可以利用它类似CDN的功能,在成本很低的带宽下,去获得想要的数据,从而提升整个应用程序的效率。

  IPFS是如何工作的

  IPFS是基于文件内容进行寻址的。IPFS为每一个文件分配一个独一无二的哈希值(文件指纹:根据文件的内容进行创建),即使是两个文件内容只有1个比特的不同,其哈希值也是不相同的。所以IPFS是基于文件内容进行寻址,而不像传统的HTTP协议已于基于域名寻址。

  文件版本管理。IPFS在整个网络范围内去掉重复的文件,并且为文件建立版本管理,也就是说,每一个文件的变更历史都将被记录,可以很容易回到文件的历史版本查看数据。

  文件查询。当查询文件的时候,IPFS网络根据文件的哈希值(全网唯一)进行查找。由于每个文件的哈希值全网唯一,所以查询将很容易进行。每个节点除了存储自己需要的数据,还存储了一张哈希表,用来记录文件存储所在的位置,用来进行文件的查询、下载。

  IPNS。如果仅仅使用哈希值来区分文件的话,会给传播造成困难,因为哈希值不容易记忆,就像IP地址一样不容易记忆,于是人类发明了域名。IPFS利用IPNS将哈希值映射为容易记的名字。IPFS哈希代表不可变的数据,这意味着他们是不能被更改的,否则会导致哈希值的变更。IPFS通过一种特殊的功能来实现,即IPNS。IPNS允许用户使用一个私钥来对IPFS哈希附加一个引用,使用一个公钥哈希表示你的网站是最新版本。如果你使用过比特币,可能会对此比较熟悉,一个比特币地址也是一个公钥,如果该链接不起作用,不用担心,能够通过更改公钥所指向的内容,而公钥却永远保持不变。这样,网站的更新问题就得到了解决。接下来,只需要保证这些网站的位置是人类可读的,所有问题就解决了。

  人类刻度的可变地址。IPFS/IPNS哈希是一些很大的、难看的字符串,而且不容易记住。所以IPFS允许用户使用现有的域名系统(Domain Name System,DNS)来为IPFS/IPNS内容提供人类可读的链接。它允许用户通过在域名服务器上将哈希插入TXT记录来实现这一点。

  IPFS HTTP网关,新旧网络之间的桥梁。通过一个HTTP网关,IPFS可以实现从HTTP到IPFS的过渡,在浏览器完全支持IPFS之前,现在已经允许当前的Web浏览器访问IPFS。用户很快就可以切换到IPFS,完成Web网络的存储、分发和服务。

  IPFS能为我们改变什么

  1、5G IPFS

  5G技术是最新一代蜂窝移动通信技术。它的性能目标是高数据速率、减少延迟、节省能源、降低成本、提高系统容量和大规模设备连接。

  5G的发展主要有两个驱动力。一方面以长期演进技术为代表的第四代移动通信系统4G已全面商用,对下一代技术的讨论提上日程;另一方面,移动数据的需求爆炸式增长,现有移动通信系统难以满足未来需求,急需研发新一代5G系统。

  IPFS的出现就是为了革新传统的HTTP协议,改变服务端与客户端的信息传输模式。

  IPFS最大的优势在于将高活跃度的公有文件进行统一的分发和存储,节省存储空间的同时节省带宽资源,还能为用户提供一个稳定的高速分发途径。相信,在5G技术的加持下,我们的网络世界会进一步高效、升级。

  2、物联网 IPFS

  物联网(简称IOT)是指通过各种信息传感器红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。

  而IPFS能以此集成为一种容器化的网络应用程序,运行在独立节点上,以Web服务的形式,供大家使用访问。随着与IPFS技术的结合,物联网技术的发展不仅降低了基础设施的成本,还提高了带宽的性能,万物互联的时代,将成为可能。

  3、区块链 IPFS

  区块链诞生是为了去中心化,在没有中心机构的情况下达成共识,共同维护一个账本。

  IPFS与区块链协同工作,能够补充区块链的两大缺陷:一是区块链存储效率低,成本高;二是跨链需要各个链之间协同配合,难以协调。

  针对第一个问题,IPFS有一个解决方法:使用IPFS存储文件数据并将唯一永久可用的IPFS地址放置到区块链事务中,而不必将数据本身放在区块链中。针对第二个问题,IPFS能协助各个不同的区块链网络传递信息和文件。

  IPFS是一个伟大的分布式存储技术的先行者,它是一个具有区块链特征的数据系统。如果IPFS得到普及,即使每个矿工只存储一点点的内容,但是累计的空间、带宽、可靠性也将远大于现有的互联网能提供的。在这种情况下,以区块链 IPFS为基础的分布式web将有望变成世界上最快、最可靠的超级数据库。

  未来,IPFS有无限可能!

  或许你被骚扰短信和购物广告烦恼过,但你有想过吗,它们很大的原因是因为我们的数据被滥用了,没有受到保护。我们能怎么办呢?

  “如果没有一种新的、成熟的控制我们的数据所有权的方法,就无法想象人类社会会变得更加数字化。”这句话出自Textile联合创始人兼CEO安德鲁•希尔,他认为IPFS的价值巨大,“它(IPFS)是过去十年中最伟大的发明之一,并且已经在无数实际应用示例中证明了其价值。”

  目前IPFS应用项目超过数千个,并在快速增长中。到目前为止,已经有超过100亿份文件上传到了IPFS网络,其意义就如同现在已经超过30枚探测器到达过火星,有超过100万辆的电动汽车每年生产出来。

  来源:IPFS爱好者社区

  - 完 -

本文标签:详细介绍 IPFS

上一篇:IPFS上线,如何选择矿机?

下一篇:ipfs柏林开发者会议纪要,为什么IPFS会议要在柏林召开?

猜您喜欢
关于我们联系我们作者投稿APP下载