imtoken官方版|ipfs是什么

作者: imtoken官方版
2024-03-08 21:14:36

IPFS是什么?看这篇文章就够了 - 知乎

IPFS是什么?看这篇文章就够了 - 知乎切换模式写文章登录/注册IPFS是什么?看这篇文章就够了Ty160M2区块链爱好者IPFS诞生于2014年,他是一个点对点的超媒体协议,他可以让互联网更快、更安全、更开放,业界称之为“下一代”互联网标准。 IPFS官网:https://ipfs.io/什么是IPFS星际文件系统(InterPlanetary File System)。IPFS,是点到点的超媒体协议,它让网络更快、更安全、更开放。说简单一点,它就是一个去中心化互联网。说技术一点,它是一个基于分布式哈希表DHT进行内容寻址的,基于git模型版本管理的,基于默克尔对象关联的,基于点对点技术的,基于全球化命名空间IPNS的,基于各种技术的,一种分布式文件系统。为什么需要IPFS现代社会中互联网对我们非常重要,它是我们生活、工作、学习、消费、娱乐和社交不可获取的媒介,但当下中心化的互联网有很多问题。中心化互联网效率低,成本高,HTTP是一个请求响应式协议,大家从一个中心服务商索取数据,服务器商构建大规模的服务器集群,服务全世界的用户。这,在高峰期,服务阻塞延迟,低峰期,大量资源闲置浪费。IPFS是通过激励,发动大量用户共享存储和带宽,资源分享和获取都在一个闭环的生态。因为网络带宽都被大文件消耗了,比如视频文件,很多都是重复数据,IPFS能有效的去重文件,消除冗余。所以IPFS能更高效的利用带宽,降低成本。目前互联网特别容易丢失数据,IPFS能永远保存有价值的数据。今天的互联网严重依赖主干网,一旦主干网发生故障,就会出现大规模服务中段或延迟,IPFS不依赖主干网,即便是网络不发达的地区,或者发生了灾害的地区,IPFS也能有很好的表现。中心化的网络非常容易引入审查机制,每个government都很容易干掉某个网站或者app。现在,用户对互联网服务性能要求越来越高,响应快、低延迟、4K无码高清视频,大的中心化公司,能快速集中资金,做出用户体验更好的产品,但这些成本是通过广告费、会员费和竞价搜索排名转嫁到消费者头上。用户是没有选择权的。IPFS希望超越HTTP协议,并构建一个更好的互联网生态。从技术角度看,IPFS是一个协议,它借鉴了许多技术,(P2P+BitTorrent+Git+Hash+kademlia DHT+SFS+Merkel DAG等等)。通过这些技术,IPFS能将网站、应用、文件和各种数据,建立在点对点分布式网络上,并且高效的索引,这种高效的核心在于它是基于内容寻址的。互联网上任何一个资源,都需要地址来找到它们,可能是IP地址、域名、文件的系统路径或者Nginx反向代理的路径。总之得有一个地址,这个地址指向哪个资源,就返回什么资源,如果资源的地址变了,或者给的地址失效了,就无法获取资源。但我们如果真的很需要这个资源,恰好之前有人下载过这个资源,并存在他的电脑上,我们很想找到这个人,因为我们并不在乎资源在什么位置,我们只在乎这个资源的内容是不是我们想要的,那这种基于位置,也就是location的寻址就没用了,我们需要一种新的寻址模式,基于内容content的寻址,IPFS就是基于内容的寻址,它的地址长这样↓IPFS实现内容寻址的工作原理第一步:将文件分割成一些小块blocks,并且分别打上hash指纹,hash指纹是一串字符,能够跟它的数据块一一对应,相当于我们每个人和自己指纹的关系。通过这个hash可以找到这个文件数据。第二步:IPFS去除重复文件,因为每个文件有了对应的哈希值,可以非常方便的找到重复的文件,最终只保留一个对象,当然每个节点都可以保留,这个文件对象的备份。第三步:每个IPFS网络节点都去存储它需要的数据,用一个叫DHT的表,来记录每个节点存储了哪些数据。下图左边Key代表文件内容的Hash(CID),右边的Value代表内容所在的节点(PeerID),这一条DHT数据表示,CID是QmCheese的数据块,存在QmRichard这个用户的设备上。第四步:当我们寻找或下载一个文件时,我们先计算这个文件的Hash指纹,通过指纹向其他节点寻找文件,当然获取他人的资源是需要成本的,别人给我分享资源也将得到回报,这种激励模式叫BitSwap。IPFS文件时如何存储和共享的IPFS object

DATA "Hello World"

Links []IPFS的文件都是通过对象的结构来存储的,每个对象包含数据Data项和连接Links数组,Data不超过256K,Data是一串文本“Hello World”,如果数据大于256K,比如图片或者视频,我们将拆分多个对象,都不超过256K,然后再建立一个更上层的对象,将他们归纳起来,就像一个文件夹,所以IPFS的文件结构,很想UNIX文件系统。还有一个问题,这些寻址链接都是通过内容查找的,如果一个文件更新了内容,那么Hash就变了,之前的索引就失效了,所以类似区块链一样,IPFS数据是不可变的,为了追踪文件的更新,IPFS引入了版本控制模型,IPFS版本控制模型和Git基本一致,Git是常用的版本控制系统,用来记录、追踪和同步文件的版本更新,每次更新的版本快照我们叫commit。IPFS最大大问题是不能保证文件始终有资源,比如一个文件在4个节点有备份,如果这4个节点离线或断开,我们就无法获取这个文件数据,类似BT下载就没有种子了。我们有2种方案解决这个问题:增加激励机制,鼓励节点多多存储文件,并在长期在线分享。主动分发文件,保证一直有足够量的在线备份,这是Filecoin要做的事。Filecoin和IPFS是同一个团队开发的,他是搭建在IPFS上的一个区块链应用。Filecoin构建了去中心化的存储市场,如果你有空闲的存储空间,可以通过Filecoin分享给别人,赚取收益,Filecoin也用奖励,来激励用户尽可能多的保持节点在线,并且保证文件有足够多的备份。IPFS已经建立了相对成熟的技术架构,他是去中心化产品开发者的首选存储技术方案,这些应用都在用IPFS技术,这里大多数是去中心化应用。IPFS还有一个经典案例,2017年土耳其政府block了维基百科,开发者在IPFS上搭建了一个去中心化的维基百科镜像,因为IPFS没有中心服务器,节点就像星星之火分布在世界各地,土耳其政府就无法再墙掉这个网站了。IPFS星际文件系统,一个如此带有科幻感和未来感的名字!他是一个适合跨越“星际”间使用的文件系统,在星球之间传输信号,延迟是比较大的,比如火星和地球之间,传输信号的时间在4~24分钟,那么我们要是在火星上访问地球上的网页,最快8分钟,最慢48分钟。如果有了IPFS系统,火星上查看了地球上的网页后,把网页数据存储下来,可以作为一个节点分享给其他火星人,这样,火星人的上网体验就快多了,所以我们给IPFS起名星际文件系统,一个去中心化的互联网文件分发协议,他会让互联网更快、更安全、更开放!发布于 2022-10-31 15:01IPFSWeb3​赞同 29​​3 条评论​分享​喜欢​收藏​申请

史上最通俗易懂的IPFS小白入门指南 - 知乎

史上最通俗易懂的IPFS小白入门指南 - 知乎切换模式写文章登录/注册史上最通俗易懂的IPFS小白入门指南白鲸IPFS(Inter Planetary File System即星际文件系统)是一种基于内容寻址、版本化、点对点的超媒体传输协议,允许网络中的参与者互相存储、索取和传输可验证的数据,对标http的新一代通信协议。IPFS的目标是打造一个更加开放、快速、安全的互联网。IPFS产生的背景2014年5月,斯坦福大学计算机硕士毕业的Juan Benet创立了协议实验室(Protocol Lab)。协议实验室是一个网络协议的研究、开发和部署的实验室,致力于构建协议、系统和工具来改进互联网的工作方式,并关注如何存储、定位和传输信息。协议实验室的目标是用新的技术突破、伟大的用户体验设计和开源的方法来解决传统互联网的种种弊端,并创建了IPFS、Filecoin、libp2p、IPLD、Multiformats等五个项目。IPFS概述IPFS(InterPlanetary File System即星际文件系统)是一种基于内容寻址、版本化、点对点的超媒体传输协议,是一个P2P的分布式文件系统,对标http的新一代通信协议,目标是打造一个更加开放、快速、安全的互联网。IPFS可以被视为一个单一的BitTorrent群,交换对象在一个Git仓库,提供了一种高通量处理的依托于内容寻址超链接的块存储模型。对于一个存放在IPFS网络的文件资源,通过这个文件资源的内容生成的唯一编码去访问。IPFS可以讲数据分片存储到分布式的存储节点,与BitTorrent类似,在访问时不需要关系存储在哪里,可以从多个存储节点分片获取。IPFS继承了Git版本管理技术,从而可以使用内容的升级变化。为了实现真实性、不可篡改性,IPFS维护一个分布式的哈希表,实现一种Merkle DAG的数据结构,还结合了自我证明单命名空间。IPFS中没有单节点故障,且众多节点无须信任彼此。所以,IPFS是集合了BitTorrent—BT协议技术、Git—版块化技术、DHT—分布式哈希表、SFS—自认证命名技术这四个成熟技术组合形成的一种通讯协议方式,允许网络中的参与者互相存储、索取和传输可验证的数据。IPFS的目标是取代HTTP,打造一个更加开放、快速、安全的互联网。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节点都有一个独一无二的身份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的技术架构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时,采用高度模块集成化的方式,像搭积木一样去开发整个项目。其中IPLD、LibP2P、Multiformats这三个模块服务于IPFS底层。下面这张是IPFS的关系图谱。Mutiformats是一系列hash加密算法和自描述方式的集合,用以加密和描述nodeID以及指纹数据的生成,它在现有协议基础上对值进行自我描述改造,即从值上就可以知道是如何产生的。libP2P是IPFS核心中的核心,面对各式各样的传输层协议以及复杂的网络设备,它可以帮助开发者迅速建立一个可用P2P网络层,快速且节约成本。libp2p的主要功能包括:发现节点、连接节点、发现数据、传输数据。它类似现实世界的快递公司,连接着千千万万个节点,除了负责分发数据,还负责查找数据。IPLD是一个转换中间件,将现有的异构数据结构统一成一种格式,方便不同系统之间的数据交换和互操作。现在IPLD支持比特币、以太坊的区块数据。IPLD中间件可以把不同的区块结构统一成一个标准进行传递,为开发者提供了成功性比较高的标准,不用担心性能、稳定和bug,这也是IPFS为什么受到区块链系统欢迎的重要原因。IPFS应用了这几个模块的功能,集成为一种容器化的应用程序,运行在独立节点上,以Web服务的形式,供大家使用访问。IPFS允许网络中的参与者互相存储,索取和传输可验证的数据。但是由于IPFS是开源的,可以被免费下载和使用,并且已经被大量的团队使用。运用IPFS及技术各个节点可存储它们认为重要的数据;但目前没有简单的方法可以激励他人加入网络或存储特定数据,IPFS的推广普及的速度明显很慢。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可以用来做什么在/ipfs和/ipns下面挂在全球永久文件系统。就是说所有的文件都可以存到上面。挂在个人同步的文件夹,可以自动进行版本管理、自动备份,也就意味着未来将拥有无限空间的网盘,不用担心数据丢失和隐私泄露。作为带版本控制的软件包管理系统。作为虚拟机的根文件系统。利用管理程序,把IPFS作为虚拟机的引导文件系统、在线操作系统。作为数据库。应用可以直接操作IPFS的MerkleDAG数据结构,并且可以使用IPFS的版本控制、缓存,自动备份、永不丢失、安全加密、无限空间、高速连接。作为加密通讯平台。作为加密CDN。永久Web。不存在不能访问的链接,不会出现404错误。编辑于 2021-06-30 13:19IPFS分布式存储数字货币​赞同 1​​1 条评论​分享​喜欢​收藏​申请

IPFS:一种先进的云存储技术 - 知乎

IPFS:一种先进的云存储技术 - 知乎切换模式写文章登录/注册IPFS:一种先进的云存储技术Want Pool你知道什么是IPFS吗?IPFS是一个很酷的技术,它可以让我们把文件存储在云端,而不需要依赖任何中心化的服务器。IPFS是InterPlanetary File System的缩写,意思是星际文件系统。它是一个分布式的网络传输协议,它可以让我们把文件分成很多小块,然后用一种特别的方式来寻找和传输这些小块。这样,我们就可以更快、更安全、更便宜地存储和分享我们的文件了。你可能会问,为什么我们需要IPFS呢?我们现在不是已经有很多云存储的服务了吗?比如百度网盘、微云、iCloud等等。这些服务不是都很方便吗?为什么我们还要用IPFS呢?其实,这些云存储的服务都有一些缺点和风险。首先,它们都是中心化的,也就是说,它们都把我们的文件存储在一些特定的服务器上。这些服务器可能会出现故障、被攻击、被审查、被关闭等等。如果这些情况发生了,我们就可能无法访问或者丢失我们的文件了。其次,这些云存储的服务都需要我们付费或者看广告。如果我们想要存储更多或者更大的文件,就需要花更多的钱或者时间。而且,这些服务也可能会限制我们上传或者下载的速度和次数。最后,这些云存储的服务也可能会侵犯我们的隐私和版权。它们可能会监控、分析、甚至出售我们的数据,或者删除我们认为合法但是它们认为不合法的内容。IPFS是什么?IPFS是一个把所有计算设备连接到同一个文件系统的网络,它类似于全球信息网(万维网),也可以被看作是一个BitTorrent节点群,在同一个Git仓库中交换对象。IPFS的工作原理是这样的:l 每个文件都有一个唯一的哈希值(类似于指纹),这个哈希值就是文件的地址,而不是服务器的位置。l 当我们要访问一个文件时,我们只需要知道它的哈希值,然后向网络请求这个文件,网络上的任何拥有这个文件的节点都可以把它发送给我们。l 当我们把一个文件添加到IPFS网络时,我们就成为了这个文件的提供者,同时也可以帮助其他人获取这个文件。l IPFS网络中的节点会根据距离和可用性自动寻找最优的路径来传输文件,从而提高速度和效率。l IPFS还有一个叫做IPNS(InterPlanetary Name System)的名称服务,它可以让我们用人类可读的名称来代替哈希值来访问文件,比如http://ipfs.io。IPFS有什么优势?IPFS相比于传统的云存储服务,有以下几个优势:l IPFS是分布式的,没有中心化的服务器或控制者,因此更加稳定、安全和民主。即使某些节点离线或被封锁,也不会影响整个网络的运行。l IPFS是内容可寻址的,每个文件都有一个独一无二的标识符,因此更加高效、可靠和永久。即使文件被移动或重命名,也不会影响它在网络上的可访问性。l IPFS是对等的,每个传统的云存储服务都是基于中心化的架构,它们把我们的文件存储在它们自己的服务器上,然后通过网址或应用程序让我们下载或上传文件。一些常见的中心化云存储服务的例子包括AWS、Google Cloud Platform(GCP)和Microsoft Azure等。这种中心化的云存储方式有以下几个缺点:l 它们需要我们把我们的文件复制或同步到它们的服务器上,这会占用我们的本地存储空间和网络带宽,也会增加数据丢失或损坏的风险。l 它们需要我们信任它们的服务提供商,把我们的文件交给它们管理和保护,这会让我们失去对我们自己数据的控制和所有权,也会暴露我们的隐私和安全。l 它们需要我们遵守它们的服务条款和价格策略,这会限制我们的选择和灵活性,也会让我们承担更高的成本和风险。l 它们需要我们依赖它们的服务器和网络的可用性和性能,这会影响我们的访问速度和体验,也会让我们受到网络攻击或审查的威胁。IPFS是一种基于去中心化的架构,它把我们的文件分散存储在网络上的各个节点上,然后通过哈希值来寻址和传输文件。每个节点都可以提供和获取文件,没有中心化的服务器或控制者。这种去中心化的云存储方式有以下几个优点:l 它们不需要我们把我们的文件复制或同步到其他地方,只需要把文件添加到IPFS网络上,就可以让全世界访问。这会节省我们的本地存储空间和网络带宽,也会减少数据丢失或损坏的风险。l 它们不需要我们信任任何服务提供商,把我们的文件交给任何人管理和保护,这会让我们保持对我们自己数据的控制和所有权,也会保障我们的隐私和安全。l 它们不需要我们遵守任何服务条款和价格策略,这会增加我们的选择和灵活性,也会降低我们的成本和风险。l 它们不需要我们依赖任何服务器和网络的可用性和性能,这会提高我们的访问速度和体验,也会抵抗网络攻击或审查的威胁。IPFS有什么投资价值?IPFS是一种创新的云存储技术,它有着广阔的应用场景和市场潜力。一些可能使用IPFS技术的领域包括:l 媒体和内容分发:IPFS可以让内容创作者和消费者直接连接,无需依赖中介平台或服务商。这可以降低内容发布和获取的成本和难度,提高内容质量和多样性,保护内容版权和隐私。l 社交和内容分发:IPFS可以让内容创作者和消费者直接连接,无需依赖中介平台或服务商。这可以降低内容发布和获取的成本和难度,提高内容质量和多样性,保护内容版权和隐私。一些使用IPFS技术的社交和内容分发应用包括Boards、Everforo、dtube等。l 存储和备份:IPFS可以让我们把我们的文件安全地存储在网络上的多个节点上,而不是只依赖于单个的服务器或硬盘。这可以增加我们的数据的可靠性和持久性,防止数据丢失或损坏。一些使用IPFS技术的存储和备份应用包括Peergos、Filecoin、Everforo等。l 网络和通信:IPFS可以让我们在没有互联网连接或网络不稳定的情况下,仍然能够访问和分享网络上的资源。这可以提高我们的网络的鲁棒性和可用性,应对网络中断或审查的情况。一些使用IPFS技术的网络和通信应用包括Orbit、Discussify、AirSecure等。l 开发和创新:IPFS可以让我们更容易地开发和部署去中心化的应用程序,利用网络上的各种资源和服务。这可以促进我们的创新能力和效率,探索新的可能性和机会。一些使用IPFS技术的开发和创新应用包括Uniswap、3Box、Valist等。如何参与IPFS?IPFS是一种先进的云存储技术,它有着广阔的应用场景和市场潜力。它可以让我们更好地管理和使用我们的数据,更高效地分享和获取网络上的资源,更安全地保护我们的隐私和自由,更灵活地创造和创新我们的价值。如果你对IPFS感兴趣,你可以下载IPFS桌面应用程序来体验它的功能,或者访问http://ipfs.io来了解更多信息。如果你想要找一个专业、可靠、高效的服务商来合作,你可以考虑Want Pool这家服务商。WantPool 是一家综合性的加密领域服务商。专注于分布式计算、分布式存储;为客户提供硬件配置、设备运维、技术支持等一站式服务。Want Pool将不定时推出活动,欢迎您长期合作。如果您有意向了解更多IPFS内容或者想合作的,可以联系WantPool的客服。感谢您阅读这篇文章,希望您能对IPFS有一个更深入的了解,并参与到这个创新的云存储技术中来。IPFS是未来云存储的大趋势,让我们一起见证它的发展和成就吧!发布于 2023-04-07 14:43・IP 属地广东IPFS云存储​赞同​​添加评论​分享​喜欢​收藏​申请

三分钟让你明白IPFS是什么? - 知乎

三分钟让你明白IPFS是什么? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册互联网科技IPFS三分钟让你明白IPFS是什么?关注者1被浏览79关注问题​写回答​邀请回答​好问题​添加评论​分享​1 个回答默认排序勇勇​ 关注IPFS,全称为InterPlanetary File System(星际文件系统),是一个去中心化、分布式的超媒体文件存储和传输协议。它旨在构建一个全球性的、无需单一托管者或集中式服务器的网络,使得用户可以在互联网上无缝地访问和共享数据,无论数据的位置、提供者的身份或者网络连接状态如何变化。

在传统的互联网架构中,信息通过HTTP协议分布在一系列中心化的服务器上,每个网站都拥有自己的域名和服务器地址。当用户请求某个网页时,浏览器会向这些服务器发送请求并获取响应。然而,这种模式存在单点故障、带宽消耗大、数据冗余以及审查风险等问题。IPFS则试图打破这种依赖中心化服务器的现状,通过一种全新的方式来存储和分发数据。

IPFS将所有内容视为独立的数据块,并为每个数据块生成一个唯一的哈希指纹(即Content Addressable,内容寻址)。这个哈希指纹类似于条形码,可以用来唯一标识数据块的内容,而与数据块在网络中的位置无关。这意味着,一旦数据被创建并加入到IPFS网络中,任何人都可以通过这个哈希指纹在全球范围内找到该数据,而无需关心数据实际存储在哪台服务器上。

IPFS使用一种名为“分布式哈希表”(DHT)的技术来管理这些数据块的定位信息,DHT是一种分布式数据库结构,可以实现去中心化的查找服务。当你想要访问某个数据块时,你的设备会在整个IPFS网络中寻找提供该数据块的节点,通过DHT网络进行路由查询,从而快速定位到所需的数据块所在的节点,实现高效的数据获取。

此外,IPFS还引入了所谓的“ merkle-dag”(Merkle二叉树图)的数据组织形式,这是一种分层的数据结构,可以把多个小的数据块链接成一棵具有层次关系的树状结构。这不仅提高了数据检索效率,还有助于检测数据完整性,因为整个文件的完整校验只需要验证根节点(顶层哈希)即可,无需逐个检查每个子节点。

为了支持文件上传和下载,IPFS提供了基于加密算法的多版本文件系统(Content Addressed File System, IPFS-CAS),允许用户以内容为中心的方式来管理和分享文件。用户在添加文件到IPFS网络时,系统会自动生成其内容哈希值,并将文件及其哈希值关联起来。这样,用户可以根据哈希值直接引用文件,而不需要关心文件的实际物理位置。

总之,IPFS致力于构建一个更加开放、透明、可信赖、高效且不易受到攻击的全球性网络基础设施,通过去中心化、分布式的特性,使得数据可以在不受任何单一机构控制的情况下安全可靠地存储和共享。它的目标是重塑互联网的信息传递方式,为未来的数字世界铺平道路。尽管IPFS还在不断发展和完善中,但其理念和技术已经得到了全球范围内的广泛关注和研究,被认为是Web 3.0时代的重要组成部分之一。发布于 2024-02-19 22:23​赞同​​添加评论​分享​收藏​喜欢收起​​

IPFS是什么?IPFS到底有什么价值,它是怎么操作的呢? - 知乎

IPFS是什么?IPFS到底有什么价值,它是怎么操作的呢? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册挖矿IPFSIPFS是什么?IPFS到底有什么价值,它是怎么操作的呢?关注者1被浏览93关注问题​写回答​邀请回答​好问题​添加评论​分享​1 个回答默认排序秋衣邬​ 关注IPFS(InterPlanetary File System)即星际文件系统,是一种去中心化的文件存储和共享协议,它旨在替代传统的中心化文件存储方式,如 HTTP 和 FTP。IPFS 的目标是创建一个持久、安全、高效的文件存储网络,使得用户可以通过分布式网络来存储和共享文件。IPFS 的价值主要体现在以下几个方面:1. 去中心化:IPFS 采用分布式存储方式,文件不再存储在中心化的服务器上,而是分散存储在网络中的各个节点上。这意味着 IPFS 没有单点故障,文件可以在网络中持续存在,即使某些节点失效,文件仍然可以通过其他节点获取。2. 安全:由于文件存储在分布式网络中,因此 IPFS 可以提供更好的安全性。文件可以通过加密技术进行保护,只有拥有正确密钥的用户才能访问文件。3. 效率:IPFS 采用内容寻址方式,而不是传统的基于位置的寻址方式。这意味着文件可以通过其内容的哈希值来寻址,而不是通过文件的位置。这样可以提高文件的查找效率,同时减少了对中心化服务器的依赖。4. 可扩展性:IPFS 可以通过增加节点来提高网络的存储容量和性能,因此具有良好的可扩展性。IPFS 的操作主要涉及以下几个步骤:1. 文件存储:用户将文件上传到 IPFS 网络中,IPFS 会将文件分散存储在多个节点上。2. 文件寻址:IPFS 通过文件的内容生成一个唯一的哈希值,作为文件的标识符。用户可以通过这个哈希值来查找文件。3. 文件下载:用户通过文件的哈希值来请求文件下载,IPFS 会从网络中的多个节点上获取文件的不同片段,并将它们组装成完整的文件。4. 文件共享:用户可以将自己的文件分享给其他用户,其他用户可以通过文件的哈希值来获取文件。需要注意的是,IPFS 仍然处于发展阶段,其性能和可靠性可能会受到网络规模、节点分布等因素的影响。同时,IPFS 的使用也需要一定的技术知识和操作经验。发布于 2024-01-04 14:03​赞同​​添加评论​分享​收藏​喜欢收起​​

带你读《IPFS原理与实践》之一:认识IPFS-阿里云开发者社区

带你读《IPFS原理与实践》之一:认识IPFS-阿里云开发者社区

产品解决方案文档与社区权益中心定价云市场合作伙伴支持与服务了解阿里云售前咨询 95187-1 在线服务售后咨询 4008013260 在线服务其他服务 我要建议 我要投诉更多联系方式备案控制台开发者社区首页探索云世界探索云世界云上快速入门,热门云上应用快速查找了解更多问产品动手实践考认证TIANCHI大赛活动广场活动广场丰富的线上&线下活动,深入探索云世界任务中心做任务,得社区积分和周边高校计划让每位学生受益于普惠算力训练营资深技术专家手把手带教话题畅聊无限,分享你的技术见解开发者评测最真实的开发者用云体验乘风者计划让创作激发创新阿里云MVP遇见技术追梦人直播技术交流,直击现场下载下载海量开发者使用工具、手册,免费下载镜像站极速、全面、稳定、安全的开源镜像技术资料开发手册、白皮书、案例集等实战精华插件为开发者定制的Chrome浏览器插件探索云世界新手上云云上应用构建云上数据管理云上探索人工智能云计算弹性计算无影存储网络倚天云原生容器serverless中间件微服务可观测消息队列数据库关系型数据库NoSQL数据库数据仓库数据管理工具PolarDB开源向量数据库热门Modelscope模型即服务弹性计算云原生数据库物联网云效DevOps龙蜥操作系统平头哥钉钉开放平台大数据大数据计算实时数仓Hologres实时计算FlinkE-MapReduceDataWorksElasticsearch机器学习平台PAI智能搜索推荐人工智能机器学习平台PAI视觉智能开放平台智能语音交互自然语言处理多模态模型pythonsdk通用模型开发与运维云效DevOps钉钉宜搭支持服务镜像站码上公益

开发者社区

华章出版社

文章

正文

带你读《IPFS原理与实践》之一:认识IPFS

2019-11-11

11578

版权

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《

阿里云开发者社区用户服务协议》和

《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写

侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

简介:

本书由国内IPFS社区公认 的领袖撰写,从技术、原理与实战3个维度讲解了IPFS。全书一共分为3个部分:第一部分:准备篇(第1章)从宏观角度简单介绍了IPFS的概念、价值以及与区块链的关系;第二部分:原理篇(第2~5章)分别深入讲解了IPFS的工作原理、底层基础、协议栈和架构。第三部分:实战篇(第6~8章)——应用IPFS讲解了IPFS应用开发的技术、方法,并配合有个综合性的案例。第四部分:扩展篇(第9章)前瞻性地讲解了IPFS与其他领域的知识的一些扩展。

点击查看第二章IPFS原理与实践

董天一 戴嘉乐 黄禹铭 著

第1章

认识IPFS欢迎大家来到第1章。在这一章里,我们首先将从宏观上介绍IPFS。在了解技术细节之前,我们先来回答如下问题:什么是IPFS?为什么我们需要IPFS?它与常规的区块链系统相比有什么异同?IPFS和Filecoin会给现在的区块链技术带来什么样的改变?相信读者读完这一章后,会对上述几个问题有自己的理解。

1.1 IPFS概述

早在2017年上半年,国内大部分投资人或开发者就已经接触到了IPFS和Filecoin项目。那么IPFS和Filecoin究竟是什么?IPFS与区块链到底是什么关系?其有什么优势,竟然会得到如此广泛的关注?其未来的应用前景到底如何?本节我们就来解答这几个问题。

1.1.1 IPFS的概念和定义

IPFS(InterPlanetary File System)是一个基于内容寻址的、分布式的、新型超媒体传输协议。IPFS支持创建完全分布式的应用。它旨在使网络更快、更安全、更开放。IPFS是一个分布式文件系统,它的目标是将所有计算设备连接到同一个文件系统,从而成为一个全球统一的存储系统。某种意义上讲,这与Web最初的目标非常相似,但是它是利用BitTorrent协议进行Git数据对象的交换来达到这一个目的的。IPFS正在成为现在互联网的一个子系统。IPFS有一个更加宏伟而疯狂的目标:补充和完善现有的互联网,甚至最终取代它,从而成为新一代的互联网。这听起来有些不可思议,甚至有些疯狂,但的确是IPFS正在做的事情。图1-1所示为IPFS的官方介绍。

IPFS项目通过整合已有的技术(BitTorrent、DHT、Git和SFS),创建一种点对点超媒体协议,试图打造一个更加快速、安全、开放的下一代互联网,实现互联网中永久可用、数据可以永久保存的全球文件存储系统。同时,该协议有内容寻址、版本化特性,尝试补充甚至最终取代伴随了我们20多年的超文本传输协议(即HTTP协议)。IPFS是一个协议,也是一个P2P网络,它类似于现在的BT网络,只是拥有更强大的功能,使得IPFS拥有可以取代HTTP的潜力。Filecoin是运行在IPFS上的一个激励层,是一个基于区块链的分布式存储网络,它把云存储变为一个算法市场,代币(FIL)在这里起到了很重要的作用。代币是沟通资源(存储和检索)使用者(IPFS用户)和资源的提供者(Filecoin矿工)之间的中介桥梁,Filecoin协议拥有两个交易市场—数据检索和数据存储,交易双方在市场里面提交自己的需求,达成交易。IPFS和Filecoin相互促进,共同成长,解决了互联网的数据存储和数据分发的问题,特别是对于无数的区块链项目,IPFS和Filecoin将作为一个基础设施存在。这就是为什么我们看到越来越多的区块链项目采取了IPFS作为存储解决方案,因为它提供了更加便宜、安全、可快速集成的存储解决方案。

1.1.2 IPFS的起源

全球化分布式存储网络并不是最近几年的新鲜品,其中最有名的3个就是BitTorrent、Kazaa、和Napster, 至今这些系统在全世界依旧拥有上亿活跃用户。尤其是BitTorrent客户端,现在BitTorrent网络每天依然有超过1000万个节点在上传数据。(不少刚从高校毕业的朋友应该还记得在校内网IPv6上分享电影和游戏资源的情景)但令人遗憾的是,这些应用最初就是根据特定的需求来设计的,在这三者基础上灵活搭建更多的功能显然很难实现。虽然在此之前学术界和工业界做过一些尝试,但自始至终没有出现一个能实现全球范围内低延时并且完全去中心化的通用分布式文件系统。之所以普及进展十分缓慢,一个原因可能是目前广泛使用的HTTP协议已经足够好用。截至目前,HTTP是已经部署的分布式文件系统中最成功的案例。它和浏览器的组合是互联网数据传输和展示的最佳搭档。然而,互联网技术的进步从未停止,甚至一直在加速。随着互联网的规模越来越庞大,现有技术也越来越暴露出了诸多弊端,庞大的基础设施投资也让新技术的普及异常困难。但我们说,技术都有其适用的范围,HTTP也是如此。四大问题使得HTTP面临越来越艰巨的困难:1)极易受到攻击,防范攻击成本高。随着Web服务变得越来越中心化,用户非常依赖于少数服务供应商。HTTP是一个脆弱的、高度中心化的、低效的、过度依赖于骨干网的协议,中心化的服务器极易成为攻击的目标。当前,为了维护服务器正常运转,服务商不得不使用各类昂贵的安防方案,防范攻击成本越来越高。这已经成为HTTP几乎无法克服的问题。2)数据存储成本高。经过十多年互联网的飞速发展,互联网数据存储量每年呈现指数级增长。2011年全球数据总量已经达到0.7ZB(1ZB等于1万亿GB);2015年,全球的数据总量为8.6ZB;2016年,这个数字是16.1ZB。到2025年,全球数据预计将增长至惊人的163ZB,相当于2016年所产生16.1ZB数据的10倍。如果我们预计存储4000GB(4TB)的数据,AWS简单存储服务(S3)的报价是对于第1个TB每GB收取0.03美金,对于接下来的49TB每GB收取0.0295美金的费用,那么每个月将花费118.5美金用于磁盘空间。数据量高速增长,但存储的价格依旧高昂,这就导致服务器-客户端架构在今后的成本将会面临严峻的挑战。3)数据的中心化带来泄露风险。服务提供商们在为用户提供各类方便服务的同时,也存储了大量的用户隐私数据。这也意味着一旦数据中心产生大规模数据泄露,这将是一场数字核爆。对于个人而言,用户信息泄露,则用户账号面临被盗风险,个人隐私及财产安全难以保障;对于企业而言,信息泄露事件会导致其在公众中的威望和信任度下降,会直接使客户改变原有的选择倾向,可能会使企业失去一大批已有的或者潜在的客户。这并不是危言耸听,几乎每一年都会发生重大数据库泄露事件。2018年5月,推特被曝出现安全漏洞,泄露3.3亿用户密码;2017年11月,美国五角大楼意外泄露自2009年起收录的18亿条用户信息;2016年,LinkedIn 超1.67亿个账户在黑市被公开销售;2015年,机锋网被曝泄露2300万用户信息。有兴趣的读者可以尝试在公开密码泄露数据库中查询,是否自己的常用信息或常用密码被泄露,但自己却毫不知情。4)大规模数据存储、传输和维护难。现在逐步进入大数据时代,目前HTTP协议已无法满足新技术的发展要求。如何存储和分发PB级别的大数据、如何处理高清晰度的媒体流数据、如何对大规模数据进行修改和版本迭代、如何避免重要的文件被意外丢失等问题都是阻碍HTTP继续发展的大山。IPFS就是为解决上述问题而诞生的。它的优势如下:1)下载速度快。如图1-2所示,HTTP上的网站大多经历了中心化至分布式架构的变迁。与HTTP相比,IPFS将中心化的传输方式变为分布式的多点传输。IPFS使用了BitTorrent协议作为数据传输的方式,使得IPFS系统在数据传输速度上大幅度提高,并且能够节省约60%的网络带宽。2)优化全球存储。IPFS采用为数据块内容建立哈希去重的方式存储数据,数据的存储成本将会显著下降。3)更加安全。与现有的中心化的云存储或者个人搭建存储服务相比,IPFS、Filecoin的分布式特性与加密算法使得数据存储更加安全,甚至可以抵挡黑客攻击。4)数据的可持续保存。当前的Web页面平均生命周期只有100天,每天会有大量的互联网数据被删除。互联网上的数据是人类文明的记录和展示,IPFS提供了一种使互联网数据可以被可持续保存的存储方式,并且提供数据历史版本(Git)的回溯功能。

上文我们提到IPFS技术积累已经有很多年了,它至少参考了4种技术的优点,并将它们整合在一起。这4种技术分别是分布式哈希表DHT、Kademlia、Git和自验证文件系统(Self-Certifying File System)。第一种对IPFS有借鉴意义的技术是DHT,全称为分布式哈希表(Distributed Hash Table),是一种分布式存储方法。DHT的原理是:在不需要服务器的情况下,每一个客户端存储一小部分数据,并负责一定区域的检索,进而实现整个DHT网络的寻址和检索。新版BitComet允许同时连接DHT网络和Tracker,可以在无Tracker的情况下进行下载。IPFS借鉴的第二种技术是Kademlia。在Kademlia网络中,所有信息均以哈希表条目的形式加以存储,这些信息被分散地存储在各个节点上,从而以全网构成一张巨大的分布式哈希表。可以形象地把这张哈希大表看成一本字典:只要知道了信息索引的key,便可以通过Kademlia协议来查询与其对应的value信息,而不管这个value信息究竟是存储在哪一个节点之上。正是这一特性确保了IPFS成为没有中心调度节点的分布式系统。IPFS还借鉴了BitTorrent网络。首先是消极上传者的惩罚措施,在BitTorrent的客户端上传数据会奖励积分,而长期不上传的消极节点会被扣分,如果分数低于一定限度,那么网络会拒绝再为他们提供服务;其次是文件可用性检查,BitTorrent优先把稀缺的文件分享出去,各个客户端之间相互补充,这样种子不容易失效,传输效率也提高了。针对BitTorrent我们不再详细展开,有感兴趣的读者可以查阅BitTorrent相关文档。第三种对IPFS有重大影响的项目是Git。我们在进行大文件传输或修改的时候总会遇到存储或传输压力大的问题,而Git在版本迭代方面非常出色。Git存储时会把文件拆成若干个部分,并计算各个部分的哈希值,利用这些构建起与文件对应的有向无环图(DAG),DAG的根节点也就是该文件的哈希值。这样的好处十分明显:如果需要修改文件,那么只需要修改少数图中节点即可;需要分享文件,等价于分享这个图;需要传输全部的文件,按照图中的哈希值下载合并即可。最后一种是具有自验证功能的分布式文件系统(Self-certifying File System,SFS),它将所有的文件保存在同一个目录下,所有的文件都可以在相对路径中找到,其SFS路径名是其原路径与公钥的哈希。聪明的读者会发现,这样的设计包含身份的隐式验证功能,这就是为什么SFS被称为自验证文件系统了。

1.2 IPFS与区块链的关系

现在提到IPFS就一定会提到区块链。那么区块链和IPFS之间到底有什么关系呢?在介绍二者关系之前,我们需要先来了解一下区块链。

1.2.1 区块链基础

那么区块链又是什么呢?在最早期,区块链仅仅被认为是比特币的底层技术之一,是一种不可篡改的链式数据结构。经过几年的发展,区块链被越来越多的人熟知,它也从单纯的数据结构变成分布式账本的一系列技术的总称。它整合了加密、共识机制、点对点网络等技术。近些年,区块链的非账本类应用开始逐渐兴起,大家开始将区块链描述为分布式的数据库,认为它是价值传递网络,它逐渐被赋予了更多的内涵。从技术方面来讲,区块链是一种分布式数据库,旨在维护各个互相不信任的节点中数据库的一致性,并且不可篡改。信用和记录会被保存到区块链上,每一个新的区块中存有上一个区块的数字指纹、该区块的信用和记录,以及生成新区块的时间戳。这样一来,区块链会持续增长,并且很难被篡改,一旦修改区块链上任意一个区块的信息,那么后续区块的数字指纹也就全部失效了。链式数据结构使得区块链历史很难被篡改,而在各个互不信任的节点之间保持数据的一致性,则需要共识机制完成。共识机制是网络预先设定的规则,以此判断每一笔记录及每一个区块的真实性,只有那些判断为真的区块会被记录到区块链中;相反,不能通过共识机制的新区块会被网络抛弃,区块里记录的信息也就不再被网络认可。目前常见的共识机制包括PoW(工作量证明)、PoS(权益证明)、PBFT(实用拜占庭容错)等。比特币、以太币、比特币现金及大部分加密数字货币使用的是PoW工作量证明。维护比特币账本的节点被称为矿工,矿工每次在记录一个新区块的时候,会得到一定的比特币作为奖励。因此,矿工们会为自己的利益尽可能多地去争夺新的区块记账权力,并获得全网的认可。工作量证明要求新的区块哈希值必须拥有一定数量的前导0。矿工们把交易信息不断地与一个新的随机数进行哈希运算,计算得到区块的哈希值。一旦这个哈希值拥有要求数目的前导0,这个区块就是合法的,矿工会把它向全网广播确认。而其他的矿工收到这一新的区块,会检查这一区块的合法性,如果合法,新的区块会写入该矿工自己的账本中。这一结构如图1-3所示。

与要求证明人执行一定量的计算工作不同,PoS权益证明要求证明人提供一定数量加密货币的所有权即可。权益证明机制的运作方式是,当创造一个新区块时,矿工需要创建一个“币权”交易,交易会按照预先设定的比例把一些币发送给矿工。权益证明机制根据每个节点拥有代币的比例和时间,依据算法等比例降低节点的挖矿难度。这种共识机制可以加快共识,也因矿工不再继续竞争算力,网络能耗会大大降低。但也有专家指出,PoS权益证明牺牲部分网络去中心化的程度。目前,PoW和PoS是加密数字货币的主流算法,其他几个常见的共识机制有DPoS和PBFT,限于篇幅,这里不再进一步展开了。

1.2.2 区块链发展

1976年是奠定区块链的密码学基础的一年,这一年Whitfield Diffie与Martin Hellman(见图1-4)首次提出Diffie-Hellman算法,并且证明了非对称加密是可行的。与对称算法不同,非对称算法会拥有两个密钥—公开密钥和私有密钥。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。这是后来比特币加密算法的核心之一,我们使用比特币钱包生成私钥和地址时,通过椭圆曲线加密算法,生成一对公钥和私钥。有了私钥我们可以对一笔转账签名,而公钥则可以验证这一笔交易是由这个比特币钱包的所有者签名过的,是合法的。将公钥通过哈希运算,可以计算出我们的钱包地址。

1980年,Martin Hellman的学生Merkle Ralf提出了Merkle Tree(默克尔树)数据结构和生成算法。默克尔树最早是要建立数字签名证书的公共目录,能够确保在点对点网络中传输的数据块是完整的,并且是没有被篡改的。我们前面提到,在比特币网络中,每一个区块都包含了交易信息的哈希值。这一哈希值并不是直接将交易顺序连接,然后计算它们的哈希,而是通过默克尔树生成的。默克尔树如图1-5所示。默克尔树生成算法会将每笔交易做一次哈希计算,然后两两将计算后的哈希值再做哈希,直到计算到默克尔根。而这个默克尔根就包含了全部的交易信息。这样,能大大节省钱包的空间占用。例如,在轻钱包中,我们只需下载与自己钱包对应的交易信息,需要验证的时候,只需找到一条从交易信息的叶节点到根节点的哈希路径即可,而不需要下载区块链的全部数据。在IPFS项目里,也借鉴了默克尔树的思想。数据分块存放在有向无环图中,如果数据被修改了,只需要修改对应默克尔有向无环图中的节点数据,而不需要向网络重新更新整个文件。值得一提的是,Merkle在提出默克尔树时,分布式技术尚未成型,更别提数字货币了,而他在当时就能察觉并提出这样的方法,实在是令人赞叹。

非对称加密算法和默克尔树数字结构是后续数字货币和区块链的理论基础。而真正将密码学用于数字货币的尝试,则晚了许多。数字货币兴起于1990年的数字朋克(CyberPunk)运动,它是由一批热爱网络的极客们推动的。数字朋克们大多是密码学的专家,对于个人隐私十分向往,希望建立一套独立于现实中的国家、等级制度以外的空间。其中最典型的代表是David Chaum,他最早提出了盲签名技术,并将其应用到了Digit Cash项目(又名Ecash)中。盲签名是一种保护隐私的签名方式,它的签名者对其签署的消息不可见。比如,用户需要签署一个转账信息,而这一信息需要银行签名,用户为了保护隐私,不希望银行看到其具体的转账对象,就可以使用盲签名。David在他的论文中提出了用盲签名实现匿名货币的想法,具体方式是用户在本地计算机的Ecash程序中以数字格式存储现金,再交给银行进行盲签名。这套系统已经与当时的银行系统非常接近了,差一点获得了成功。但是Digit Cash始终需要中心化的银行服务器支持。在后续,没有一家银行愿意再支持他的项目,最终项目失败了。数字朋克运动中诞生的系统及关键人物如表1-1所示。

在Digit Cash失败后的几年里,人们几乎放弃了数字现金的构想。仅有少数数字朋克继续着研究。一个名为Hashcash的想法是在1997年由当时同为数字朋克的博士后研究员Adam Back独立发明的。Hashcash的想法很简单:它没有后门,也不需要中心第三方,它只使用哈希函数而不是数字签名。Hashcash基于一个简单的原理:哈希函数在某些实际用途中表现为随机函数,这意味着找到哈希到特定输出的输入的唯一方法是尝试各种输入,直到产生期望的输出为止。而且,为了找到这样一个符合条件的输入,唯一方法是再次逐个尝试对不同的输入进行哈希。所以,如果让你尝试找到一个输入,使得哈希值前10位是0,你将不得不尝试大量的输入,你每次尝试成功的机会是(1/2)10。这就是工作量证明的早期来源,也是矿工们每天在重复做的事情。他甚至在技术设计上做了一些修改,使其看起来更像一种货币。但显然,他的方案不能检验节点是否作弊,不能作为真正的数字现金。还有两位有杰出贡献的数字朋克—Hal Finney和Nick Szabo,他们经过重新考虑将技术整合了起来。Nick Szabo不仅是一位计算机科学家,同时精通法律。Szabo受到David Chaum的启发后,希望利用密码协议和安全机制,提出了数字合约的构想。数字合约能在网络上不依靠第三方协助而是利用程序来验证并执行合同,它与传统合同相比更安全,并且减少了烦琐沟通的成本。这对后续的加密数字货币设计有着极大的影响。比特币网络可以提供非图灵完备的脚本语言实现部分智能合约功能;以太坊则进一步在EVM上运行Solidity语言,提供了图灵完备的智能合约环境,这也为后续分布式应用开发奠定了基础。Nick做出的贡献还不只是发明了智能合约,在2008年,他发起了Bit Gold项目。在项目计划书中,Nick阐述的Bit Gold架构与现在的比特币完全相同,同样是工作量证明机制,同样是链式网络结构,同样的新区块包含旧区块的数字指纹,包含时间戳等诸多特性。然而,最终Bit Gold项目还是没有顺利完成。目前,Bit Gold可查寻的源头只有在Bitcoin Talk论坛中的帖子,后续的可查证资料就很少了。有一些比特币爱好者们一度认为Szabo就是中本聪本人,不仅因为Bit Gold与Bitcoin的也相似之处令大家充满想象,甚至是在词法和句法上,中本聪的比特币论文与Bit Gold论文也有相似之处。而且Nick家不远的地方,有一位叫中本聪的日本人,大家猜测这是Nick为了掩人耳目而故意隐藏自己的身份。Nick本人对此表示否认,并觉得这是个很搞笑的八卦。当然这也成为数字货币里最大谜团,究竟中本聪是谁呢?再之后,到了2009年,中本聪发表了比特币论文。他提出了一整套加密协议,而不仅仅是加密货币。比特币使用计算机程序控制货币的发行,发行总量2100万枚。比特币的账本记录在成千上万台计算机上,黑客无法入侵;每个账户都是加密地址,你不知道谁在花钱,但是每个比特币的流通都被记录,你知道它的来源和去向的地址。比特币是第一个达到上述全部思想的项目,整合了之前30多年的技术积累。比特币在设计之时,考虑到网络的稳定性和抵御恶意攻击,它使用的是非图灵完备的脚本语言(主要不能使用循环语句)。2013年,Vitalik Buterin 认为,比特币需要一种图灵完备的脚本语言来支持多样的应用开发。这个思路没有被比特币社区支持,于是 Buterin考虑用更通用的脚本语言开发一个新的平台,这就是后来的以太坊。以太坊在大致思路上与比特币相似,在账户状态、UTXO、地址形式上进行了一些优化。其最大的亮点在于,开发了Solidity智能合约编程语言和以太坊虚拟机(EVM)这一以太坊智能合约的运行环境,用于按照预期运行相同的代码。正因为EVM和Solidity,区块链的平台应用(DAPP)迅速兴起了。以太坊平台提出了许多新用途,包括那些不可能或不可行的用途,例如金融、物联网服务、供应链服务、电力采购和定价及博彩等。时至今日,基于DAPP的各类应用还在迅速发展,新的市场和需求在进一步被发现。后续区块链会如何发展,我们拭目以待。

1.2.3 IPFS为区块链带来了什么改变

区块链的诞生本是为了做到去中心化,在没有中心机构的情况下达成共识,共同维护一个账本。它的设计动机并不是为了高效、低能耗,抑或是拥有可扩展性(如果追求高效、低能耗和扩展性,中心化程序可能是更好的选择)。IPFS与区块链协同工作,能够补充区块链的两大缺陷:

区块链存储效率低,成本高。

跨链需要各个链之间协同配合,难以协调。

针对第1个问题,区块链网络要求全部的矿工维护同一个账本,需要每一个矿工留有一个账本的备份在本地。那么在区块链中存放的信息,为了保证其不可篡改,也需要在各个矿工手中留有一份备份,这样是非常不经济的。设想,现在全网有1万个矿工,即便我们希望在网络保存1MB信息,全网消耗的存储资源将是10GB。目前,也有折中的方案来缓解这一问题。在搭建去中心化应用DAPP时,大家广泛采取的方式是,仅在区块链中存放哈希值,将需要存储的信息存放在中心化数据库中。而这样,存储又成为去中心化应用中的一个短板,是网络中脆弱的一环。IPFS则提出了另一个解决方法:可以使用IPFS存储文件数据,并将唯一永久可用的IPFS地址放置到区块链事务中,而不必将数据本身放在区块链中。针对第2个问题,IPFS能协助各个不同的区块链网络传递信息和文件。比特币和以太坊区块结构不同,通过IPLD可以定义不同的分布式数据结构。这一功能目前还在开发中,目前的IPLD组件,已经实现了将以太坊智能合约代码通过IPFS存储,在以太坊交易中只需存储这个链接。

1.2.4 Filecoin:基于IPFS技术的区块链项目

在1.1节中我们介绍了IPFS的结构。Filecoin是IPFS的激励层。我们知道,IPFS网络要想稳定运行需要用户贡献他们的存储空间、网络带宽,如果没有恰当的奖励机制,那么巨大的资源开销很难维持网络持久运转。受到比特币网络的启发,将Filecoin作为IPFS的激励层就是一种解决方案了。对于用户,Filecoin能提高存取速度和效率,能带来去中心化等应用;对于矿工,贡献网络资源可以获得一笔不错的收益;而对于业务伙伴,例如数据中心,也能贡献他们的空闲计算资源用于获得一定的报酬。Filecoin会用于支付存储、检索和网络中的交易。与比特币类似,它的代币总量为2亿枚,其中70%会通过网络挖矿奖励贡献给矿工,15%为开发团队持有,10%给投资人,剩下5%为Filecoin基金会持有。投资人和矿工获得的代币按照区块发放,而基金会和开发团队的代币按照6年时间线性发放。由此可见,Filecoin与比特币挖矿机制完全不同。我们前面提到,为了避免攻击,比特币通过PoW工作量证明机制,要求矿工挖出下一个满足哈希值包含多个前导0的新区块。这个过程会需要大量的哈希运算。Filecoin使用的是复制证明(Proof of Replication,RoRep)。复制证明是矿工算力证明形成的主要方式,证明矿工在自己的物理存储设备上实际存储了数据,可以防止恶意矿工的各种攻击,网络中的验证节点会随机检查矿工是否在作弊。如果矿工不能提供正确的复制证明,那么它将被扣除一定的Filecoin作为惩罚。相比于PoW机制带来的算力竞争,PoRep显得环保的多。

1.3 IPFS的优势与价值

前文描述了IPFS大概的基础知识和与区块链的关系,这节我们详细介绍一下IPFS的优势和价值来源。

1.3.1 IPFS的优势

IPFS的优势在于其强大的技术积淀、精巧的架构设计及强大的开发者生态。1.技术优势IPFS技术可以分为多层子协议栈,从上至下为身份层、网络层、路由层、交换层、对象层、文件层、命名层,每个协议栈各司其职,又互相协同。图1-6所示为IPFS协议栈的构成。接下来我们逐一进行解释。(1)身份层和路由层对等节点身份信息的生成以及路由规则是通过Kademlia协议生成制定的,该协议实质上是构建了一个分布式哈希表,简称DHT。每个加入这个DSHT网络的节点都要生成自己的身份信息,然后才能通过这个身份信息去负责存储这个网络里的资源信息和其他成员的联系信息。

(2)网络层比较核心,所使用的Libp2p可以支持主流传输层协议。NAT技术能让内网中的设备共用同一个外网IP,我们都体验过的家庭路由器就是这个原理。(3)交换层IPFS吸取了BitTorrent的技术,并在其之上进行了再创新,自研了BitSwap模块。使用BitSwap进行数据的分发和交换,用户上传分享数据会增加信用分,分享得越多信用分越高;用户下载数据会降低信用分,当信用分低于一定值时,将会被其他节点忽略。简单来讲就是,你乐于分享数据,其他节点也乐于发送数据给你,如果你不愿意分享,那么其他节点也不愿意给你数据。(4)对象层和文件层这两层适合结合起来看,它们管理了IPFS上80%的数据结构,大部分数据对象都是以Merkle-DAG的结构存在,这为内容寻址和去重提供了便利。文件层具有blob、tree、list、commit等多种结构体,并采用与Git类似的方式来支持版本控制。(5)命名层具有自我验证的特性(当其他用户获取该对象时,将交换节点公钥进行验签,即验证公钥信息是否与NodeID匹配,从而来验证用户发布对象的真实性),并且加入了IPNS这个巧妙的设计使得哈希过后的内容路径名称可定义,增强可阅读性。新旧技术的更替无非两点:其一,能够提高系统效率;其二,能够降低系统成本。IPFS把这两点都做到了。图1-7是一个IPFS技术模块的和功能间的映射关系图,同时也是一个纵向数据流图。前文所描述的多层协议,每一层的实现都绑定在对应的模块下,非常直观。协议实验室在开发IPFS时,采用了高度模块集成化的方式,像搭积木一样去开发整个项目。截至2017年,协议实验室主要精力集中在设计并实现 IPLD、LibP2P、Multiformats 等基础模块,这些模块服务于IPFS协议的底层。Multiformats是一系列散列函数和自描述方式(从值上就可以知道值是如何生成的)的集合,目前拥有多种主流的散列处理方式,用以加密和描述NodeID以及内容ID的生成。基于Multiformats用户可以很便捷地添加新的哈希算法,或者在不同的哈希算法之间迁移。

LibP2P是IPFS模块体系内核心中的核心,用以适配各式各样的传输层协议以及连接众多复杂的网络设备,它可以帮助开发者迅速建立一个高效可用的P2P网络层,非常利于区块链的网络层搭建。这也是IPFS技术被众多区块链项目青睐的缘由。IPLD是一个转换中间件,将现有的异构数据结构统一成一种格式,方便不同系统之间的数据交换和互操作。当前,IPLD已经支持了比特币、以太坊的区块数据。这也是IPFS受到区块链系统欢迎的另一个原因,IPLD中间件可以把不同的区块结构统一成一个标准进行传输,为开发者提供了简单、易用、健壮的基础组件。IPFS将这几个模块集成为一种系统级的文件服务,以命令行(CLI)和Web服务的形式供大家使用。最后是Filecoin,该项目最早于2014年提出,2017年7月正式融资对外宣传。Filecoin把这些应用的数据价值化,通过类似比特币的激励政策和经济模型,让更多的人去创建节点,去让更多的人使用IPFS。本节只对IPFS的技术特性进行了概要介绍,每个子模块的细节将在原理篇中做深度详解。2.社区优势协议实验室由Juan Benet在2014年5月创立。Juan Benet毕业于斯坦福大学,在创建IPFS项目之前,他创办的第一家公司被雅虎收购。2015年,他发起的IPFS项目在YCombinator孵化竞赛中拿到了巨额投资,并于2017年8月底,完成了Filecoin项目的全球众筹,在Coinlist(协议实验室独立开发、严格遵从SAFT协议的融资平台)上共募集了2.57亿美金。如图1-8所示,协议实验室具有强大的投资者和开发者社区。

IPFS的社区由协议实验室团队维护,到目前为止,开发者社区已经拥有上百位代码贡献者和数十位核心开发人员,如图1-9所示。IPFS目前已经发布了30余个版本迭代,开发进度一直保持良好。

同时,协议实验室官方也授权了部分社区(IPFS Community)中的Co-Organizer牵头全球性的推广交流活动。目前,已在美国芝加哥、美国华盛顿、英国伦敦、印度德里、哥斯达黎加圣何塞、巴西圣保罗、西班牙巴塞罗那、加拿大蒙特利尔、德国柏林以及中国的北京、深圳、福州等数十个城市开展了社区自治的Meetup线下活动,拥有来自世界各地广泛的支持者。

1.3.2 Filecoin与其他区块链存储技术的对比

当前,全球去中心存储区块链项目出现了包括Filecoin、Sia、StorJ、Burst、Bluzelle等一批优质的区块链项目,欲抢占存储市场制高点,如图1-10所示。它们都能够提供类似的去中心化存储功能,但在具体技术手段和应用场景上则略有差异。下面将重点阐述IPFS和Filecoin所构建的区块链存储体系与其他区块链项目的对比。

1.BurstBurst作为第一个使用容量证明(Proof-of-capacity)的项目,还是具有很大的进步意义的。该项目是2014年8月10日在Bitcointalk上发起的,发起人的账号是 “Burstcoin”。一年后,创始人“Burstcoin”跟中本聪一样消失了。由于项目是开源的,2016年1月11日,一些社区成员将这个开源项目重新激活,独立运营开发,并且在Bitcointalk上新开了一个专区板块来维护。相较Filecoin所采用的复制证明和时空证明,Burst使用的是一种叫作容量证明(Proof-of-capacity)的机制,即:挖矿的时候,利用矿机未使用的硬盘驱动器空间,而不是处理器和显卡。矿工可以提前生成的大量数据,这里数据被称为plot,然后保存到硬盘。plot的生成只需要计算一次,能耗方面表现得更加友好,且实现起来更为简单。2. SiaSia是一个2015年7月发布的去中心化的存储项目,通过运用加密技术、加密合约和冗余备份,Sia能够使一群互不了解和互不信任的计算机节点联合起来,成为一种有统一运行逻辑和程序的云存储平台。其倾向于在P2P和企业级领域与现有存储解决方案进行竞争。Sia不是从集中供应商处租用存储,而是从彼此个体节点租用存储。Sia采用的是PoW(Proof Of Work)和PoS(Proof Of Storage)的组合证明计模式,要使用Sia,在数据存储空间的提供者和租用者必须签订协议。租用者需要提前购置一笔代币,用以抵押至链上,如果满足了协议条款,那些代币就会支付给提供者。如果协议没有按照预期的那样完成,代币就会返给租用者。对于存储使用者而言,需要为文件的上传、下载和存储付费。3. StorJStorJ是一个去中心化的、伪区块链的分布式云存储系统,主要功能与中心化的Dropbox、Onedrive类似。StorJ激励用户分享自己的剩余空间和流量,以获得奖励。因为其充分利用用户资源,所以成本极低,并且数据采用端对端加密的冗余存储,更加安全可靠。StorJ已经与开源FTP文件传输项目FileZilla达成合作。相较于Filecoin,StorJ代币为基于ERC2.0的以太坊众筹币种,没有区块链架构,采用按月支付结算的方式,在这种方式里租用者频繁地给托管主机付款,如果用户不见了或不在线,托管主机将得不到报酬。StorJ更像一个被项目方撮合的共享存储经济体,不存在矿工挖矿产生区块的概念。4. BluzelleBluzelle是一款快速的、低成本的、可扩展的、使用于全球DApp的去中心化数据库服务,填补了去中心化基础架构的一个关键空白。软件通常处理两种类型的数据:文件和数据字段。以IPFS和Filecoin为基础的项目侧重于对大文件提供分布式的存储和分发解决方案,而Bluzelle想要打造的是将那些通常很小且大小固定,按照数组、集合等结构的数据字段进行结构化存储,以便于快速存储和检索。数据字段存储在数据库中可以实现最佳的安全性、性能和可扩展性,并提供创建、读取、更新和删除(CRUD)等基本功能,区别于类似IPFS和Filecoin这样的分布式文件存储服务。综上对比,以IPFS和Filecoin所构建的区块链存储体系,同时从基础层和应用层对传统云存储模式进行了颠覆,因此决定了其应用的范围更加广阔,其对应的加密数字货币增长空间也更大。

1.4 IPFS的应用领域

IPFS的应用领域如图1-11所示。

1.建立长久信息档案IPFS提供了一个弱冗余的、高性能的集群化存储方案。仅仅通过现有的互联网模式来组织这个世界的信息是远远不够的,我们需要建立一个可以被世界长久记住、随着人类历史发展而一直存在的信息档案。2.降低存储、带宽成本IPFS提供了一个安全的点对点内容分发网络,如果你的公司业务需要分发大量的数据给用户,IPFS可以帮你节约大量的带宽成本。在云计算时代,我们大部分的网络带宽和网络存储服务都由第三方服务平台来支持,例如YouTube这样的大型视频平台,需要支付高额的流量费用给ISP(互联网服务提供商),而YouTube也将通过各种商业广告及收费会员的商业形式把这部分的成本转嫁到广大用户身上,整个流程体系的总成本是相当庞大的。为了激励人们参与IPFS协议,协议实验室团队借鉴了比特币的经济模型,设计了基于IPFS的区块链项目Filecoin。Filecoin将IPFS网络参与者分为两类:Storage Miner(为网络提供空闲的存储空间)和Retriver(为网络中的节点提供带宽,帮助其他用户传输文件),通过这种共享模型充分利用闲置资源,降低了系统总成本,并为用户降低了使用成本。目前,将这个应用方向做得比较成功的项目叫Dtube,它是一个搭建在Steemit上的去中心化视频播放平台,其用户上传的视频文件都经过IPFS协议进行存储,具有唯一标识。相较于传统视频网站,它降低了同资源冗余程度。3.与区块链完美结合IPFS和区块链是完美的搭配,我们可以使用IPFS处理大量数据,并将不变的、永久的IPFS链接放置到区块链事务中,而不必将数据本身放在区块链中。毕竟,区块链的本质是分布式账本,本身的瓶颈之一就是账本的存储能力,目前大部分公链的最大问题是没法存储大量的数据在自己的链上。比特币至今全部的区块数据也才数百GB,以太坊这样可编程的区块链项目也只能执行和存储小段合约代码,DApp的发展受到了很大的制约。运用IPFS技术解决存储瓶颈是可行方案之一。4.为内容创作带来自由IPFS为网络内容创作带来了自由和独立的精神,可以帮助用户以一种去中介化的方式交付内容。Akasha是一个典型的应用,它是一个基于以太坊和IPFS的社交博客创作平台,用户创作的博客内容通过一个IPFS网络进行发布,而非中心服务器。同时,将用户与以太坊钱包账户绑定,用户可以对优质内容进行ETH打赏,内容创作者能以此赚取ETH。它没有太多审查的限制,也没有中间商分利,内容收益直接归创作者所有。

1.5 本章小结

本章主要为读者构建IPFS大致的概念和框架,只涉及很少量的技术描述。我们知道了,IPFS是一种基于内容检索、去中心化、点对点的分布式文件系统 。IPFS项目通过整合已有的分布式存储方式和密码学的成果,力图实现互联网中高可用、数据可持续保存的全球存储系统。它整合了分布式哈希表、BitTorrent、Git和自验证文件系统4种技术的优点。使用DHT实现内容检索;借鉴BitTorrent,实行分块存储、分块传输和奖励机制;Git中应用的默克尔DAG使得大文件分享、修改变得简单高效;而自验证文件系统确保了数据发布的真实性。我们还回顾了区块链的基本知识和重要研究历史,了解了区块链从加密算法到比特币和以太坊的历史进程。同时,我们指出了当前区块链和互联网难以解决的问题,以及IPFS在这二者中有可能会带来哪些改变。Filecoin是IPFS的激励层,可激励矿工贡献出更多的网络资源和存储资源,矿工越多,IPFS 和 Filecoin 的网络越健壮、高速。我们还提到了IPFS的多层协议栈,从上至下为身份、网络、路由、交换、对象、文件、命名这几层协议,以及IPLD、LibP2P、Multiformats三个组件。同时介绍了Filecoin与Burst、Storj和Sia等区块链存储项目的区别。第4节里,主要介绍了应用领域的几个典型的例子,包括分布式社交创作平台Akasha,基于Steemit的去中心化视频平台Dtube,以及目前区块链与IPFS结合使用的方式。下一章我们将开始介绍IPFS的底层原理。

温柔的养猫人

目录

热门文章

最新文章

为什么选择阿里云什么是云计算全球基础设施技术领先稳定可靠安全合规分析师报告产品和定价全部产品免费试用产品动态产品定价价格计算器云上成本管理解决方案技术解决方案文档与社区文档开发者社区天池大赛培训与认证权益中心免费试用高校计划企业扶持计划推荐返现计划支持与服务基础服务企业增值服务迁云服务官网公告健康看板信任中心关注阿里云关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务售前咨询:95187-1售后服务:400-80-13260法律声明及隐私权政策Cookies政策廉正举报安全举报联系我们加入我们阿里巴巴集团淘宝网天猫全球速卖通阿里巴巴国际交易市场1688阿里妈妈飞猪阿里云计算AliOS万网高德UC友盟优酷钉钉支付宝达摩院淘宝海外阿里云盘饿了么© 2009-2024 Aliyun.com 版权所有 增值电信业务经营许可证: 浙B2-20080101 域名注册服务机构许可: 浙D3-20210002 京D3-20220015浙公网安备 33010602009975号浙B2-20080101-4

IPFS是什么技术?它有什么特点? - 知乎

IPFS是什么技术?它有什么特点? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册互联网科技IPFSIPFS是什么技术?它有什么特点?希望有详细的回答,最好有例子说明,谢谢啦。显示全部 ​关注者5被浏览6,081关注问题​写回答​邀请回答​好问题​添加评论​分享​6 个回答默认排序一叶知秋看一叶落知天下秋,见小文章道社会事。​ 关注回答节选自我发布的文章IPFS是什么IPFS,是一个点对点的分布式文件系统协议,也被称为“星际文件系统”。在这个协议中,IPFS把文件在系统中如何存储、索引和传输都定义好,也就是将上传好的文件转换成专门的数据格式进行存储,同时IPFS会将相同的文件进行了hash计算,确定其唯一的地址。所以无论在任何设备,任意地点,相同的文件都会指向相同的地址(不同于URL,这种地址是原生的,由加密算法保证的,你无法改变,也无需改变)。然后通过一个文件系统将网络中所有的设备连接起来,然后让存储在IPFS系统上的文件,在全世界任何一个地方快速获取,且不受防火墙的影响(无需网络代 理)。所以从根本上说,IPFS能改变WEB内容的分发机制,使其完成去中 心化。如果你还是不懂,下面举个简单例子。根据超文本协议HTTP,我们平时在互联网浏览网站或下载文件都要经过一个数据中 心,如果这个数据中 心出现故障或受限 制了,你就只能看着电脑发呆了。但在IPFS协议,所有文件都是唯一的,只有一个地址,而且这个地址是可共享的。如果刚好你的邻居访问过你想打开的网站,那么你就可以从他那里直接打开网站或下载文件,不用远距离地去访问数据中 心,物理距离更近,打开速度更快。IPFS的特点IPFS还有很多的用途,但今天只是简单讲解IPFS技术。这里重点介绍IPFS的两个特点。1、数据永 久存储通过IPFS协议,任何存储在这系统里的资源,包括文字、图片、声音、视 频,以及网站代码,都会通过IPFS进行哈希运算,生成唯一的地址。加上加密算法的保护,该地址具备了不可篡改和删除的特性。这样就表示一旦数据存储在IPFS中,它就会是永 久性的。举个例子,平时打开一些网页,有时总会遇到“404 Not Found”这样的情况。根本原因就是你浏览网页的中 心服务器出现问题了,这是中 心化技术带来的问题,难以改变。但这种情况,在IPFS上就不会发生。即便是把该中 心服务器撤销,只要存储该信息的网络依然存在,该网页就可以被正常访问。存储站点的分布式网络越多,它的可靠性也就越强。2、解决“过度冗余”问题如今我们的个人电脑都会存储一些电影、音乐、电子文档这样的文件。但很多文件在网络上都是同质的,比如我的电脑下载了最喜欢的电影《阿凡达》,但说不定你邻居也在电脑里收藏有这电影呢。这样的后果,带来的就是内存资源极大浪费,这就是HTTP协议的弊端。同样的资源备份的次数过多,就会造成过度冗余的问题。但IPFS就可以很好地解决这个问题。IPFS会把存储文件,做一次哈希计算,只字不差的两个文件哈希值相同。用户只需要使用相同的哈希值,就可以访问那个文件,这个哈希值就是文件的地址。只要获取这个地址,就可以共享资源了。由于IPFS协议的永 久存储特性,你再也不用担心喜欢的《阿凡达》电影找不到了,在也不用备份了,因为全球的电脑只要几个人存储着这部电影,你就能永远观看,这样就能省下非常多的内存资源。声明:本文版权归作者(叶落一秋)所有,转载须注明出处。同时也欢迎大家添加我为好友,一起畅谈区块链资讯。编辑于 2018-06-19 10:56​赞同 6​​2 条评论​分享​收藏​喜欢收起​Filge​ 关注数据安全减少数据冗余去中心化便宜(这个很重要)发布于 2020-02-20 23:19​赞同 1​​添加评论​分享​收藏​喜欢

【戴嘉乐 IPFS】详解IPFS的本质、技术架构以及应用-腾讯云开发者社区-腾讯云

IPFS】详解IPFS的本质、技术架构以及应用-腾讯云开发者社区-腾讯云圆方圆学院【戴嘉乐 IPFS】详解IPFS的本质、技术架构以及应用原创关注作者腾讯云开发者社区文档建议反馈控制台首页学习活动专区工具TVP最新优惠活动文章/答案/技术大牛搜索搜索关闭发布登录/注册首页学习活动专区工具TVP最新优惠活动返回腾讯云官网圆方圆学院首页学习活动专区工具TVP最新优惠活动返回腾讯云官网社区首页 >专栏 >【戴嘉乐 IPFS】详解IPFS的本质、技术架构以及应用【戴嘉乐 IPFS】详解IPFS的本质、技术架构以及应用原创圆方圆学院关注修改于 2019-01-08 22:19:541.6K0修改于 2019-01-08 22:19:54举报文章被收录于专栏:圆方圆学院精选圆方圆学院精选戴嘉乐是前百度高级研发工程师,ipfser.org&巴比特专栏作者。戴嘉乐去年8月参与了FileCoin的众筹,从而了解到IPFS技术,独立开发了两款基于IPFS的开源应用,一个是与IPFS有关的wiki系统,另一个是IPFS相关的地理位置检索系统。IPFS是什么?IPFS的中文名是星际文件系统,由Juan Benet在2014年5月份发起。Juan Benet的个人经历很传奇,他毕业于斯坦福大学,在创建IPFS项目之前,他创办的第一家公司被雅虎收购。2015年,他创建的IPFS在YCombinator孵化竞赛中拿到了巨额的投资,同时成立了协议实验室。这个实验室团队由14位核心开发者以及社区中上百位代码贡献者组成的。IPFS本质上是一种内容可寻址、版本化、点对点超媒体的分布式存储、传输协议,目标是补充甚至取代过去20年里使用的超文本媒体传输协议(HTTP),希望构建更快、更安全、更自由的互联网时代。我们每天上网使用APP刷朋友圈、微博都在使用HTTP协议,它基于TCP/IP的计算机应用层面,从服务器传输超文本数据到本地浏览器,本地浏览器或APP渲染后呈现给用户。基于这样的网络环境构成了CS或BS架构,最后注入BAT这样大型网络提供商。互联网平台所提供的网络服务大致经过了三种模式的迭代历程:第一个模式属于集中化,例如早期的12306因为没法分散去做,只有一个中心服务群,所有买票的流量直接搭载在这个服务群上,承载的压力非常大。第二个模式属于分散集群,类似于O2O百团大战时各个网站需要建立不同区域下的服务群,它们背后的IDC机房,会让同样的服务在一个局域内分散,这就减轻了中心服务器的压力。前两种模式容易产生一些弊端:在第一种模式里,服务高度依赖中心网络。大公司或者创业公司无法承受宕机,运维有一个KPI指数叫SLA,稳定性没有到99.9%的话,基本不合格。SLA需要消耗特别大的成本,大公司需要雇一批运维专家或专业人士,去保障系统的稳定性。在第二种模式里,存储数据有丢失的风险。大家经常开玩笑的电缆被挖断,员工删库跑路,都是隐患。同时,这两种模式的带宽成本相对高很多,会造成一定带宽资源的浪费。比如《中国有嘻哈》第一期海选的视频播放量有10亿次,假设视频文件大小是1GB,播放整个视频需要消耗1000PB的带宽量。如果按照0.001美元1GB带宽成本,爱奇艺光一期节目需要支付一百万美金给ISP(互联网服务提供商)。IPFS有希望成为第三种模式。IPFS想打造一个点对点的网络拓扑,相当于颠覆HTTP所代表的分布关系,它具有内容可寻址的特点,通过文件内容生成唯一的哈希标识,一定程度上节约了空间开销的成本。HTTP协议使用的域名寻址,最终会映射到最底层,找到某个域名所对应的IP地址下的某个主机,以及某个文件目录的某个文件。它不关心是否存在相同的文件,但内容寻址会通过唯一的标识去访问,并且提前检验这个标识是否已经被存储过。如果被存储过,直接从其它节点读取它,不需要重复存储,一定意义上节约了空间。举个具体场景的例子。假设我想要看《环太平洋》这部电影,小明之前下载过这部电影,他启动了IPFS节点,将这个视频文件加入了IPFS网络。他会得到一个哈希指纹b,同时发布到公共网关,得到了一个/IPFS/b的路径名。他把哈希指纹和路径名都告诉我,我要做的事情是启动一个本地节点,对该网关发一个寻址PIN的请求,IPFS自动索引分布式哈希表的哈希值,找到指纹b所对应的节点列表。大的视频通常不会都存在一个节点,可能分片存在其它一些子节点上,IPFS把这些节点列表全部并行抓取,最后由本地的manager拼成完整的文件。并行的速度远远大于直接下载完整文件的速度,我很快就能在本地化的浏览器上看到电影,还可以继续分享给其他人。IPFS的架构IPFS至少有八层子协议栈,从上至下为身份、网络、路由、交换、对象、文件、命名、应用,每个协议栈各司其职,又互相搭配。身份层和路由层可以一起解释。对等节点身份信息的生成以及路由规则是通过Kademlia协议生成制定,KAD协议实质是构建了一个分布式松散Hash表,简称DHT,每个加入这个DHT网络的人都要生成自己的身份信息,然后才能通过这个身份信息去负责存储这个网络里的资源信息和其他成员的联系信息。如同微信名片分享,在无法通过直接搜索微信号的情况下,如果你要找一个人,可以通过有这个人联系方式的朋友分享名片来建立联系。网络层比较核心,使用的LibP2P可以支持任意传输层协议。NAT技术能让内网中的设备共用同一个外网IP,我们都体验过的家庭路由器就是这个原理。交换层,是类似迅雷这样的BT工具。迅雷其实是模拟了P2P网络,并创建中心服务器,当服务器登记用户请求资源时,让请求同样资源的用户形成一个小集群swarm,在这里分享数据。这种方式有弊端,因为服务器是由迅雷统一维护,如果出现了故障、宕机时,下载操作无法进行。中心化服务还可以限制一些下载请求,人们发明了一种更聪明的方式就是Bittorrent,让每一个种子节点所要存储的数据,通过哈希表存储在里面,BT工具相对不太受监管,服务更加稳定。IPFS团队把BitTorrent进行了创新,叫作Bitswap,它增加了信用和帐单体系来激励节点去分享,我推断FileCoin有很大概率是基于Bitswap,用户在Bitswap里增加数据会增加信用分,分享得越多信用分越高。如果用户只去检索数据而不存数据,信用分会越来越低,其它节点会在嵌入连接时优先选择信用分高的。这一设计可以解决女巫攻击,信用分不可能靠机器刷去提高,一直刷检索请求,信用分越刷越低。请求次数和存储量的变量之间有一个比较精妙的算法,类似一个抛物线,前期可以容忍很多东西,达到一定次数后不再信任。对象层和文件层适合结合来谈,它们管理的是IPFS上80%的数据结构,大部分数据对象都是以MerkleDag的结构存在,这为内容寻址和去重提供了便利。文件层是一个新的数据结构,和DAG并列,采用Git一样的数据结构来支持版本快照。命名层具有自我验证的特性(当其他用户获取该对象时,使用指纹公钥进行验签,即验证所用的公钥是否与NodeId匹配,这验证了用户发布对象的真实性,同时也获取到了可变状态),并且加入了IPNS这个巧妙的设计来使得加密后的DAG对象名可定义,增强可阅读性。最后是应用层,IPFS核心价值就在于上面运行的应用程序,我们可以利用它类似CDN的功能,在成本很低的带宽下,去获得想要的数据,从而提升整个应用程序的效率。新的技术取代老的技术,无非就两点:第一,能提高系统效率;第二,能够降低系统成本。IPFS把这两点都做到了。我整理了一个IPFS族谱关系图,同时也是一个纵向数据流图。刚才所说的八层协议,其实每一层的实现都绑定在对应的模块下,进行了一个直观的图表设计。IPFS的团队在开发时,采用高度模块集成化的方式,像搭积木一样去开发整个项目。协议实验室团队2015年创立,到17年的时间里都在做IPLD、LibP2P、Multiformats这三个模块的开发,它们服务于IPFS底层。Mutiformats是一系列hash加密算法和自描述方式(从值上就可以知道值是如何生成)的集合,它具有SHA1\SHA256 \SHA512\Blake3B等6种主流的加密方式,用以加密和描述nodeID以及指纹数据的生成。LibP2P是IPFS核心中的核心,面对各式各样的传输层协议以及复杂的网络设备,它可以帮助开发者迅速建立一个可用P2P网络层,快速且节约成本,这也是为什么IPFS技术被众多区块链项目青睐的缘由。IPLD其实是一个转换中间件,将现有的异构数据结构统一成一种格式,方便不同系统之间的数据交换和互操作。现在IPLD支持的数据结构,支持比特币、以太坊的区块数据。这也是IPFS为什么受到区块链系统欢迎的原因之二,它的IPLD中间件可以把不同的区块结构统一成一个标准进行传递,为开发者提供了成功性比较高的标准,不用担心性能、稳定和bug。IPFS应用了这几个模块的功能,集成为一种容器化的应用程序,运行在独立节点上,以Web服务的形式,供大家使用访问。最后是Filecoin, 作为去年7月才宣布的项目,它的开发进度至今保密。Filecoin把这些应用的数据价值化,通过类似比特币的激励政策和经济模型,让更多的人去创建节点,去让更多的人使用IPFS。我更希望大家把IPFS和FileCoin分开来看,如果IPFS玩得好,可以创建很多FileCoin项目出来,它本身的价值和意义没有IPFS这么大。IPFS的应用意义第一,可以为内容创作带来一定的自由。Akasha是一个典型的应用,它是一个基于以太坊和IPFS的社交博客创作平台,用户创作的博客内容通过一个IPFS网络进行发布,而非中心服务器。同时,用户和以太坊钱包账户进行绑定,用户可以对优质内容进行ETH打赏,内容创作者能以此赚取ETH,如同人脑挖矿一样。它没有太多监管的限制,也没有中间商抽成,内容收益直接归创作者所有。第二,可以降低存储和带宽成本。我之前也举过爱奇艺的例子,而做视频比较成功的项目叫「Dtube」。它是一个搭建在Steemit上的去中心化视频播放平台,其用户上传的视频文件都经过IPFS协议进行存储,具有唯一标识。相较于传统视频网站,它降低了同资源冗余程度,同时大大节约了海量用户在播放视频时所产生的带宽成本。第三个,可以与区块链完美结合。区块链的本质是分布式账本,本身的瓶颈之一就是账本的存储能力,目前大部分公链的最大问题是没法存储大量的超媒体数据在自己的链上。比特币至今全部的区块数据也才30-40G左右,以太坊这样可编程的区块链项目也只能执行和存储小段合约代码,DApp想发展成超级App,受到了极大的限制。运用IPFS技术解决存储瓶颈是目前来看的过渡方案,最典型的应用就是EOS。EOS引以为傲的是可以支持百万级别TPS的并发量,其中除了DPOS共识机制的功劳之外,还归功于其底层存储设计是采取IPFS来解决大型数据的传输效率。EOS将自己打包好的区块数据通过IPLD进行异构处理,统一成一种便于内容寻址的数据结构类型,并挂载到IPFS的link上,让IPFS网络承担存储和P2P检索的逻辑,而不消耗EOS区块链系统本身太多的计算资源。第四,可以为传统应用提供分布式缓存方案。 IPFS-GEO 是我自己之前写的,它是一个为传统LBS应用提供分布式缓存的项目,可以将地理位置坐标数据通过GeoHash算法转化成一维字符串,并将与之相关联的具有检索价值的数据存入IPFS网络,由IPFS网络标识唯一性,并分布在各个邻近节点上。当检索请求到来时,系统先通过字符串近似度范围比较,缩小检索范围,加快检索效率,通过NodeID从附近节点拿到超媒体数据,达到类似分布式缓存的效果,大大提高了LBS应用整个检索动作的效率。IPFS的明星应用OpenBazaar是IPFS上的一个明星应用,我给它取了一个中文名叫开放集市,前一段时间刚拿到比特大陆500万美元的投资。在之前的1.0版本,OpenBazaar被称之为黑市,那时没有应用IPFS,利用ZeroMQ来实现P2P交易,一定程度也绕过了中心化的检查,把交易的手续费作为红利给到用户。同时它整合了比特币作为支付渠道,轰动一时,用户数量在短时间内迅速提升。开放集市在2.0版本发布之后,考虑到法律等因素,官方加入了一层审查机制,同时支持了比特币之外的BCH等数字货币,并且整合和重构IPFS,取代了之前的ZeroMQ。现在,众多开放集市上的商店在没有用户上线的情况下,也可以在主机上就被运行。以前必须同时登陆才可以交易,现在利用IPFS相当于实现了离线店铺。这同时意味着,访问你的店铺的人越多,店铺数据被复制越多,有利于优质的店铺宣传和推广,这是一定意义上的价值回归。我把它称为明星项目,不光因为它是基于IPFS而且做得不错,还因为它对IPFS全部的重构,它把IPFS所有的源码、协议和各种配套设施都重新开,不仅重构了IPFS的分支,改了协议名,同时也更改了协议头,一定意义上把OB的网络和主的IPFS网络隔离开。OpenBazaar希望有更集中化的控制,想建立自己的矿场和机房来保证服务的稳定,在去中心和中心化之间选择了一个中间点。我觉得目前大部分的传统应用和公司,也可以这样去考虑。完全去中心化不太可能,所以可以取其精华、去其糟粕。相关文章和视频推荐 【董天一】什么是IPFS?(一)圆方圆学院汇集大批区块链名师,打造精品的区块链技术课程。 在各大平台都长期有优质免费公开课,欢迎报名收看。公开课地址:https://ke.qq.com/course/345101?flowToken=1007371原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。如有侵权,请联系 cloudcommunity@tencent.com 删除。http分布式数据结构比特币原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。如有侵权,请联系 cloudcommunity@tencent.com 删除。http分布式数据结构比特币评论登录后参与评论0 条评论热度最新登录 后参与评论推荐阅读LV.关注文章0获赞0目录IPFS是什么?IPFS的架构IPFS的应用意义IPFS的明星应用相关文章和视频推荐相关产品与服务消息队列 TDMQ消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。产品介绍产品文档2024新春采购节领券社区专栏文章阅读清单互动问答技术沙龙技术视频团队主页腾讯云TI平台活动自媒体分享计划邀请作者入驻自荐上首页技术竞赛资源技术周刊社区标签开发者手册开发者实验室关于社区规范免责声明联系我们友情链接腾讯云开发者扫码关注腾讯云开发者领取腾讯云代金券热门产品域名注册云服务器区块链服务消息队列网络加速云数据库域名解析云存储视频直播热门推荐人脸识别腾讯会议企业云CDN加速视频通话图像分析MySQL 数据库SSL 证书语音识别更多推荐数据安全负载均衡短信文字识别云点播商标注册小程序开发网站监控数据迁移Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有 深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569腾讯云计算(北京)有限责任公司 京ICP证150476号 |  京ICP备11018762号 | 京公网安备号11010802020287问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档Copyright © 2013 - 2024 Tencent Cloud.All Rights Reserved. 腾讯云 版权所有登录 后参与评论00

详解IPFS技术架构与应用-阿里云开发者社区

详解IPFS技术架构与应用-阿里云开发者社区

产品解决方案文档与社区权益中心定价云市场合作伙伴支持与服务了解阿里云售前咨询 95187-1 在线服务售后咨询 4008013260 在线服务其他服务 我要建议 我要投诉更多联系方式备案控制台开发者社区首页探索云世界探索云世界云上快速入门,热门云上应用快速查找了解更多问产品动手实践考认证TIANCHI大赛活动广场活动广场丰富的线上&线下活动,深入探索云世界任务中心做任务,得社区积分和周边高校计划让每位学生受益于普惠算力训练营资深技术专家手把手带教话题畅聊无限,分享你的技术见解开发者评测最真实的开发者用云体验乘风者计划让创作激发创新阿里云MVP遇见技术追梦人直播技术交流,直击现场下载下载海量开发者使用工具、手册,免费下载镜像站极速、全面、稳定、安全的开源镜像技术资料开发手册、白皮书、案例集等实战精华插件为开发者定制的Chrome浏览器插件探索云世界新手上云云上应用构建云上数据管理云上探索人工智能云计算弹性计算无影存储网络倚天云原生容器serverless中间件微服务可观测消息队列数据库关系型数据库NoSQL数据库数据仓库数据管理工具PolarDB开源向量数据库热门Modelscope模型即服务弹性计算云原生数据库物联网云效DevOps龙蜥操作系统平头哥钉钉开放平台大数据大数据计算实时数仓Hologres实时计算FlinkE-MapReduceDataWorksElasticsearch机器学习平台PAI智能搜索推荐人工智能机器学习平台PAI视觉智能开放平台智能语音交互自然语言处理多模态模型pythonsdk通用模型开发与运维云效DevOps钉钉宜搭支持服务镜像站码上公益

开发者社区

中生代技术

文章

正文

详解IPFS技术架构与应用

2018-04-18

10637

版权

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《

阿里云开发者社区用户服务协议》和

《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写

侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

简介:

IPFS是什么?

星际文件系统(InterPlanetary File System)

本质上是一种内容可寻址、版本化、点对点超媒体的分布式存储、传输协议,目标是补充乃至取代过去20年里使用的超文本媒体传输协议(HTTP),希望构建更快、更安全、更自由开放的互联网时代。

Ipfs最核心的技术是p2p,原来是中心化的服务器在分发内容,现在我们想要下载某一个内容,可以直接建立一个连接,也可以跟其他人连接,迅雷也是这种模式,它是一个虚拟的p2p中心网络,这里不多细讲。

为什么需要IPFS?

HTTP的中心化是低效的, 并且成本很高

油管上,鸟叔的“江南style”这个视频,累计被播放30亿次,假设这个文件100MB大小,则播放这个视频浪费300Petabytes(1P=1,000,000GB)的网络流量,按照0.01USD/GB算CDN成本,谷歌将支付300W美金给ISP服务商。

使用HTTP协议每次需要从中心化的服务器下载完整的文件(网页, 视频, 图片等), 速度慢, 效率低。如果改用P2P的方式下载, 可以节省近60%的带宽。

Web文件经常被删除

http的页面平均生存周期大约只有100天,Web文件由于存储成本太高经常被删除,无法永久保存。

IPFS提供了文件的历史版本回溯功能(就像git版本控制工具一样), 可以很容易的查看文件的历史版本, 且数据无法删除,可以得到永久保存。

中心化限制了web的成长

现在使用的互联网其实是由数百万个分布在世界各地的服务器构成的。世界最大的芯片制造厂商 Intel 有大约10万台服务器,Facebook有3万台,美国最大的电话公司 AT&T 也有2万台,而 Google有超过100万台服务器。

在现有的http协议下,所有的数据都保存在这些巨头的服务器上,这是高度中心化的。巨头不但对我们的数据有绝对的控制权和解释权,各种各样的监管,封锁,监控一定程度上也极大的限制了创新和发展。

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

互联网应用高度依赖互联网主干网

过于中心化,为了支撑http协议,服务器7*24小时开启,对于大流量公司,比如百度、腾讯、阿里等,投入大量资源维护服务器和安全隐患,防止DDoS,XSS,CSRF等攻击。

主干网络受制于战争,自然灾害,中心服务器宕机等因素,都可能造成整个互联网中断服务。

IPFS可以极大的降低对中心主干网络的依赖。

IPFS如何工作?

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

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

当查询文件的时候, IPFS网络根据文件的哈希值(全网唯一)进行查找。 由于每个文件的哈希值全网唯一, 查询将很容易进行。

如果仅仅使用哈希值来区分文件的话,会给传播造成困难,因为哈希值不容易记忆,就像ip地址一样不容易记忆,于是人类发明的域名。IPFS利用IPNS将哈希值映射为容易记的名字。

每个节点除了存储自己需要的数据,还存储了一张哈希表, 用来记录文件存储所在的位置,用来进行文件的查询下载。

IPFS的架构

IPFS 协议栈

身份 S/Kademlia生成 对等身份信息生成

网络 任意传输层协议 ICE NET & NAT穿透

路由 分布式松散哈希表(DSHT) 定位对等点和存储对象需要的信息

交换 BitTorrent& BitSwap 管理区块如何分布

对象 Merkle-DAG 内容可寻址的不可篡改、去冗余的对象链接

文件 类似Git 版本控制的文件系统:blob,list, tree, commit

命名 具有SFS(Self-CertifiedFilesystems)IPNS:DAG对象命名可变

应用 在IPFS上运行的应用程序利用最近节点提供服务提供效率、降低成本

身份层和路由层

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

网络层

LibP2P可以支持任意传输层协议。

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

交换层

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

对象层和文件层

共同管理IPFS上80%的数据结构。

大部分数据对象都是以MerkleDag的结构存在,这为内容寻址和去重提供了便利。

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

命名层

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

应用层

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

IPFS家族

IPFS项目其实很大,并不是一个东西,IPFS是由很多模块组成,每一个模块现在都已经独立成项目了,并且有自己的主页。

协议实验室的主页:https://protocol.ai/projects/

在协议实验室的主页上面,可以找到目前的五个项目,来简单看一下IPFS家族成员:

Filecoin

IPFS只是一个协议, 并不是挖矿软件本身。Filecoin系统才是挖矿软件本身, 代币名字是 FIL。Filecoin使用了IPFS 协议来运行系统。

FIL代币总共有20亿枚。分配方案,总共有四个部分组成:

70%作为挖矿的回报:像比特币一样根据挖矿的进度逐步分发

15%预留Protocol Labs:作为研发费用, 6年逐步解禁

10%分配给ICO投资者: 根据挖矿进度, 逐步解禁

5%预留给Filecoin基金会: 作为长期社区建设, 网络管理等费用, 6年逐步解禁

私募时间:2017.07.21-2017.7.24

成本:0.75美元

行权期:1-3年,折扣额0-30%

参与人数:150+人

募集金额:0.52亿美元

公募时间:2017.08.07-2017.09.07

成本:1-5美元

行权期:1-3年,折扣额0-30%

参与人数:2100+人

募集资金:2.05亿美元

Filecoin与挖矿市场

Filecoin存储市场(Filecoin Storage Market)

数据存储市场所需要贡献的就是硬盘存储空间,越多的硬盘空间,挖矿能力就越高,存储市场采用的工作量证明是PoS(Power of Storage)证明,根据存储的数据大小来按比例分配FIL

Filecoin数据检索市场(Filecoin's Retrieval Market)

数据检索市场贡献带宽,根据访问数据的流量来分配FIL

Filecoin场景

用户场景:

1.用户提交数据存储订单(PUT)给Filecoin系统

2.用户提价数据检索订单(GET)给Filecoin系统

3.如果上述订单达成,用户支付FIL以获取相应的服务

存储矿工场景:

1.在区块链上注册自己硬盘空间,注册完成后硬盘空间将被记录到区块链的配置表里面

2.接受订单,用户提交的存储订单(PUT)

3.订单交易达成后,双方对交易进行签名,矿工完成数据存储,交易完成后该交易被记录到区块

4.用户获取到对应的支付

检索矿工场景:

1.接受订单,用户提交数据查询订单(GET)

2.交易达成后,双方对交易进行签名,矿工把数据发送给用户,该交易提交到区块

Filecoin证明

数据持有性证明(Provable Data Possession ,PDP):用户发送数据给矿工进行存储,矿工证明数据已经被自己存储,用户可以重复检查矿工是否还在存储自己的数据

可检索证明(Proof-of-Retrievability,PoRet):和PDP过程比较类似,证明矿工存储的数据是可以用来查询的

存储证明(Proof-of-Storage ,PoS):利用存储空间进行的证明。工作量证明的一种,Filecoin上一篇论文使用了这个名字,新的论文则升级为PoRep

复制证明(Proof-of-Replication,PoRep):新的 PoS(Proof-of-Storage),PoRep可以保证每份数据的存储都是独立的,可以防止女巫攻击,外源攻击和生成攻击

工作量证明(Proof-of-Work,PoW):证明者向检验者证明自己花费了一定的资源,PoW被用在加密货币,拜占庭共识和其他各种区块链系统。BTC使用的就是这种类型的证明,依赖巨量的哈希计算和能源消耗来建立共识和保证btc网络的安全性

空间证明(Proof-of-Space,PoSpace):Filecoin提出的概念,存储量的证明,PoSpace是PoW的一种,不同的是PoW使用的计算资源,而PoSpace使用的是存储资源

时空证明(Proof-of-Spacetime,PoSt):时空证明,矿工证明自己花费了spacetime资源,即:一定时间内的存储空间的使用,PoSt是基于PoReps实现的

Libp2p

IPFS团队将点对点(peer-to-peer)网络的网络层从IPFS工程里面分离出来,形成一个独立的项目,这就是libp2p。该项目不仅可以供IPFS使用,也可以提供其它项目使用,作为一个p2p工程的底层协议存在。

主要功能:

发现节点

连接节点

发现数据

传输数据

IPLD

IPLD定义了基于内容寻址的统一数据结构类型。它是一个转换器,可以把现有的异构的数据结构(基于内容寻址)统一成一种格式,方便不同系统之间的数据交换和互操作。

通过哈希进行内容寻址的技术已经广泛应用于各种分布式系统。从加密货币的区块链到备份代码的每一次提交,再到各种web内容,他们背后的逻辑几乎是相同的,然后由于数据结构的不兼容,造成了这些数据无法互相操作。IPLD作为中间层统一了这些异构的数据结构,使得不同的数据可以进行数据交换。

IPLD的组成:

CID(Self-describingcontent-addressed identifiers for distributed systems):基于内容寻址的自我描述标识

IPLDtree:基于 JSON、Protobuf和路径导航的跨协议的数据模型

IPLD Resolvers: IPLD转换器,可以添加新的协议到IPLD里面

Multiformats

Multiformats是一系列协议的集合,它在现有协议基础上对值(值:通常是具有某一项表达意义的)进行自我描述改造,即从值上就可以知道该值是如何产生的。

当前multiformats协议里面包含以下协议。

multihash- self-describing hashes

multiaddr- self-describing network addresses

multibase- self-describing base encodings

multicodec - self-describingserialization

multistream- self-describing stream network protocols

multigram(WIP) - self-describing packet network protocols

通常情况下我们使用的哈希计算方法都是某一种实现方式,比如sha1,sha2-256等。哈希计算在软件工程里面几乎随处可见,特别是区块链项,multiformats将所有的哈希值计算统一成同样的格式,为系统开发带来很多好处

以multihash为例:

升级后的哈希值的结构为:

<哈希函数类型><摘要长度><摘要值>

有一个使用sha2-256函数生成的哈希值(如下),其长度为32(16进制0x20):

41dd7b6443542e75701aa98a0c235951a28a0d851b11564d20022ab11d2589a8

规定sha2-256的代表数字为12(16进制),于是得出来新的哈希值:

122041dd7b6443542e75701aa98a0c235951a28a0d851b11564d20022ab11d2589a8

新的哈希值具有自我描述性质,它说明了自己是怎么来的

IPFS应用及意义

可以为内容创作带来一定的自由

代表应用:

Akasha( https://blog.akasha.world )是一个基于以太坊和IPFS的社交博客创作平台,用户创作的博客内容通过一个IPFS网络进行发布,而非中心服务器。

同时,用户和以太坊钱包账户进行绑定,用户可以对优质内容进行ETH打赏,内容创作者能以此赚取ETH,如同人脑挖矿一样。它没有太多监管的限制,也没有中间商抽成,内容收益直接归创作者所有。

可以降低存储和带宽成本

代表应用:

Dtube(https://d.tube)是一个搭建在Steemit上的去中心化视频播放平台,其用户上传的视频文件都经过IPFS协议进行存储,具有唯一标识。相较于传统视频网站,它降低了同资源冗余程度,同时大大节约了海量用户在播放视频时所产生的带宽成本。

可以与区块链完美结合

代表应用:

EOS引以为傲的是可以支持百万级别TPS的并发量,其中除了DPOS共识机制的功劳之外,还归功于其底层存储设计是采取IPFS来解决大型数据的传输效率。

EOS将自己打包好的区块数据通过IPLD进行异构处理,统一成一种便于内容寻址的数据结构类型,并挂载到IPFS的link上,让IPFS网络承担存储和P2P检索的逻辑,而不消耗EOS区块链系统本身太多的计算资源。

原文发布时间为:2018-04-18

本文作者:朱清

本文来自云栖社区合作伙伴“中生代技术”,了解相关信息可以关注“中生代技术”。

技术小能手

目录

热门文章

最新文章

为什么选择阿里云什么是云计算全球基础设施技术领先稳定可靠安全合规分析师报告产品和定价全部产品免费试用产品动态产品定价价格计算器云上成本管理解决方案技术解决方案文档与社区文档开发者社区天池大赛培训与认证权益中心免费试用高校计划企业扶持计划推荐返现计划支持与服务基础服务企业增值服务迁云服务官网公告健康看板信任中心关注阿里云关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务售前咨询:95187-1售后服务:400-80-13260法律声明及隐私权政策Cookies政策廉正举报安全举报联系我们加入我们阿里巴巴集团淘宝网天猫全球速卖通阿里巴巴国际交易市场1688阿里妈妈飞猪阿里云计算AliOS万网高德UC友盟优酷钉钉支付宝达摩院淘宝海外阿里云盘饿了么© 2009-2024 Aliyun.com 版权所有 增值电信业务经营许可证: 浙B2-20080101 域名注册服务机构许可: 浙D3-20210002 京D3-20220015浙公网安备 33010602009975号浙B2-20080101-4

通俗解释ipfs是什么?!重点须知!(新手必看) - 腾讯云开发者社区-腾讯云

ipfs是什么?!重点须知!(新手必看) - 腾讯云开发者社区-腾讯云腾讯云开发者社区文档建议反馈控制台首页学习活动专区工具TVP最新优惠活动文章/答案/技术大牛搜索搜索关闭发布登录/注册通俗解释ipfs是什么?!重点须知!(新手必看)文章来源:企鹅号 - 美月故事汇全文导读:近几年,IPFS可以说是霸屏一般的存在,毫不夸张的说IPFS是最近几年比较火热的一个概念,特别是对于挖矿感兴趣的投资者,都有听说过ipfs,主要是因为很多矿工已经在使用ipfs挖旷赚q了。而对于刚入币圈的投资者来说,并不了解ipfs是什么?下面请听好。ipfs是什么意思?IPFS,其实是一种点对点的分布式文件系统。(1)IPFS是一个运用git分布式、去中心化存储且单一的bittorrent群集。(2)IPFS是依据内容从而来产生地址,它提供了高吞吐量的内容寻址存储模型。(3)IPFS主要是通过默克尔树数据结构来构建版本文件系统。(4)IPFS不存在单独的故障点,节点之间也是不需要相互信任。星际文件系统IPFS(InterPlanetary File System),它其实是一个面向全球、点对点的分布式版本文件系统,能将所有具有相同文件系统的计算设备连接在一起,主要目标是对我们目前统领互联网的超文本传输协议(也就是HTTP)进行补充(更甚者是“取代”)。它的原理就是利用基于内容的地址来替代基于域名的地址,简单来说,用户寻找的是存储在某地方的内容,而不是某地址,就只需确认验证内容的哈希,这样就能过获得速度更快、安全、健壮、持久的网页。IPFS工作原理:IPFS是一种内容可寻址、版本化、点对点超媒体的分布式存储、传输协议。我们知道在现在的网络服务里,内容是基于位置(IP)寻址的,就是在查找内容的时候,需要先找到内容所在的服务器(根据IP),然后再在服务器上找对应的内容。而在IPFS的网络里,是根据内容寻址,每一个上传到IPFS上面去的文件、文件夹,都是以Qm为开头字母的哈希值,无需知道文件存储在哪里,通过哈希值就能够找到这个文件,这种方式叫内容寻址。在IPFS系统中,内容会分块存放(如果内容很小就会直接存在DHT中),并分散存储在IPFS网络中的节点上(不过目前的IPFS实现,一个节点会完整保存内容的所有区块)。系统会给内容的每一个块计算哈希值,然后把所有块的哈希值拼凑起来,再计算一次哈希值,从而得到最终的哈希值。同时每个节点会维护一张DHT(分布式哈希表),包含数据块与目标节点的映射关系。在IPFS中是通过哈希去请求文件的,它就会使用这个分布式哈希表找到文件所在的节点,取回文件根据哈希重新组合文件(同样也会验证文件)。IPFS的特点:1.当我们知道一个文件的哈希值之后,可以确保文件不被修改, 即可以确保访问的文件是没有被篡改的。因为根据哈希的特点,哪怕源文件有一丁点的更改,对应的哈希值也会完全不同。2.IPFS得以普及,节点数达到一定规模,内容将永久保存,就算部分节点离线,也不会影响文件的读取,不像现在的收藏会失效。3.由于IPFS是一个统一的网络,只要文件在网络中被存储过,除了必要的冗余备份,文件不会被重复存储,对比现有互联网,信息孤岛,各中心间不共享数据,数据不的不重复存储,IPFS一定意义上节约了空间,使得整个网络带宽消耗更低,网络更加高效。4.相对于中心化存储的容易遭受DDOS攻击,IPFS采用分布式存储网络,文件被存储在不同的网络节点,天然避免了DDOS攻击,同时一个文件可以同时从多个节点同时下载,通信的效率也会更高。发表于: 2021-09-182021-09-18 10:16:54原文链接:https://kuaibao.qq.com/s/20210918A03U4E00?refer=cp_1026腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。如有侵权,请联系 cloudcommunity@tencent.com 删除。ipfs分布式存储是什么行业JAAS的重点是什么?SOAP - 重点是什么?哪里可以找到BitTorrent源代码?在哈希中存储哈希0分享分享快讯到朋友圈分享快讯到 QQ分享快讯到微博复制快讯链接到剪贴板上一篇:杂志优选:互联网对美国杂志行业的影响下一篇:微软账户将支持无密码身份认证登录相关快讯星际讲堂 用户必读|【第一课】:你真的了解IPFS吗?关于IPFS的基础认知2021-09-20区块链技术基础IPFS初识2018-10-22IPFS:胸怀浩瀚宇宙,创新互联网络2018-04-27利用IPFS构建自己的去中心化分布式Wiki系统(一)2018-05-13众说区块链:IPFS对互联网的影响2018-07-09通俗易懂的了解IPFS2018-09-01IPFS可寻址存储区块链医疗保健信息2018-04-28区块链储存行业研究报告2018-12-30IPFS是什么?2018-06-13到底什么是IPFS?2020-07-12你透彻的了解过IPFS吗?2019-12-25专访IPFS技术布道人董天一:一文带你全面了解IPFS技术和它的未来发展方向(上)2018-09-11基于IPFS搭建去中心化博客2018-03-13IPFS综合了许多最新最好的想法以及最成功的系统2018-09-0710个步骤搞定IPFS 安装和配置2019-01-21IPFS与FileCoin 究竟是什么关系?2018-03-05区块链科普:星际文件系统IPFS2018-03-06IPFS数据之旅1:我的数据谁做主2018-10-21分布式存储别有洞天:Ulord系统数据存储模式与IPFS有何不同?2018-07-06IPFS是下一个不可错过的千亿级项目?2018-04-13扫码添加站长 进交流群领取专属 10元无门槛券私享最新 技术干货社区专栏文章阅读清单互动问答技术沙龙技术视频团队主页腾讯云TI平台活动自媒体分享计划邀请作者入驻自荐上首页技术竞赛资源技术周刊社区标签开发者手册开发者实验室关于社区规范免责声明联系我们友情链接腾讯云开发者扫码关注腾讯云开发者领取腾讯云代金券热门产品域名注册云服务器区块链服务消息队列网络加速云数据库域名解析云存储视频直播热门推荐人脸识别腾讯会议企业云CDN加速视频通话图像分析MySQL 数据库SSL 证书语音识别更多推荐数据安全负载均衡短信文字识别云点播商标注册小程序开发网站监控数据迁移Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有 深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号1101080202028