Skip to main content
 首页 » IPFS

ipfs详细讲解

2021年04月19日18

史上最通俗易懂的IPFS入门介绍03

原始标题:历史上最容易理解的IPFS简介03编译:IP Master终于到达了您最想知道的章节。

如果要查看以前的内容,可以单击以下链接:“历史记录01中最容易理解的IPFS简介”“历史记录02中最容易理解的IPFS简介” , 让我们开始吧。

我在前两章中详细介绍了IPFS协议系统,但是该系统本身不发行硬币,发行者是另一个系统-Filecoin。

太好了,尽管两者都是同一家公司生产的,但是它们具有不同的功能。

FilecoinIPFS是一个协议,Filecoin是一个激励层。

让我举一个例子来说明这一激励层:假设X镇由于快速发展而在X镇买了很多车,但是X镇没有那么多的公共停车位。

X镇市长发布了一项政策:鼓励该镇的人们在上班时间提供自己的停车位,那些提供停车位的人将获得X票奖励,可以兑换很多东西。

由于这种激励机制,镇上的人们积极提供自己的停车位。

该激励政策等同于Filecoin。

如果有一个类比的话,IPFS和Filecoin之间的关系就是区块链和比特币之间的关系。

每个硬币都有一个代号。 Filecoin的代号为FIL。好吧,请识别此代码。它是FIL,不是FLY。

由于尚未启动主网络,因此尚未启动FIL进行交易。

将来,这个期货是否可以转换为FIL,我对IP尚不了解,因此投资时必须谨慎。

但是,目前的IPFS期货已经达到90元(2018.05.11),接近EOS的价格。从这里,您可以看到市场对IPFS的热情有多高?

您知道FIL的潜在价值有多高吗?

Filecoin在短短一个小时之内的60分钟内就筹集了2.5亿美元的ICO,打破了世界纪录,对吗?

在上市之前,市值达到了25亿美元!嘿,还有更多很棒的参加ICO的资格,这个资格的门槛很高,不是每个人都可以参加。

首先,基本的门槛是,在过去两年中,您的收入已达到20万美元,并且您必须拥有税务证明。这指的是美国。

其次,净资产为一百万美元,这不包括房地产,并不意味着您拥有它,您还需要注册会计师,美国证券交易委员会(SEC)认证的经纪经理或经纪人,律师等提供资产证明。

第三,美国证券交易委员会也需要审查投资者的信息。

因此,该项目的投资门槛很高,但一小时内仍筹集了2.5亿美元。

它表明许多人认为该项目具有巨大的潜力。

此外,投资者还包括斯坦福大学和顶级的Y-Combinator孵化​​器!很好吗?

既然有这么多人对项目持乐观态度,FIL如何分配它?

FIL的发行总额为20亿。

其中,将70%的令牌分配给矿工,这是对提供带宽和存储的用户的奖励。

嘿,因此,除了投资FIL外,采矿也是一项不错的投资。

1.矿工70%:像比特币一样,根据采矿的进度逐渐分配2.协议实验室(官方团队)15%:随着研发费用,在6年内逐步取消禁令3. ICO投资者10%(公开发行+私人发行)安置):根据采矿进度,逐步取消禁令4。Filecoin基金会:5%:作为长期的社区建设,网络管理和其他费用,Filecoin的市场在6年内逐步解除。 Filecoin表示,存在两个市场:存储市场和检索市场。

存储市场就是我刚才提到的X公司的例子。它由来帮助存储的人员组成。

在Filecoin系统上,存储市场中的用户需要提供自己的空闲存储空间,即硬盘。

检索市场意味着我已经将东西存储在IPFS上,或者我知道什么存储在IPFS上,并且我需要检查,然后检索矿工需要为我们完成检索工作。

然后,这两个交易市场将形成一个巨大的交易市场,这是用户联系存储矿工和检索矿工的地方。

例如,如果我需要一些东西,然后将此信息发送到交易市场,则相应的存储矿工将帮助我完成任务。例如,如果我需要查看文档,并将此信息发送到交易市场,则相应的检索矿工将帮助我完成此任务。

然后,如何完成交易,如何存储,如何取回,我将在下一章中向您介绍。

Filecoin市场的运作方式,存储市场,检索市场和用户构成了整个交易市场。

让我举一个例子来模拟整个过程。

首先,我需要在IPFS上上传一个小电影,因此我在交易市场上下了一个订单:存储,小电影,1GB,1FIL。挂断后,系统会自动将我与相应的存储矿工进行匹配。

这场比赛意味着矿工愿意接受1FIL的价格并帮助我存储这部小电影。

交易完成后,存储矿工将获得我的1FIL和系统根据有效存储奖励的FIL。

当我需要查询我的小电影时,我在交易市场上下了一个订单:搜索,小电影,1GB,1FIL。挂断电话后,系统会自动将我与相应的搜索矿工进行匹配。

完成此交易后,搜索矿工将获得我的1FIL。

请注意,系统不会奖励任何FIL。

换句话说,只有存储矿工才能获得系统性的奖励,他们才真正属于IPFS采矿。

该网络是指上行链路和下行链路宽带网络。上行链路对应于存储矿工,而下行链路对应于检索矿工。当然,速度越快越好。

如果要挖掘FIL,网络必须良好,请尝试选择靠近主干网的位置。

编辑者将总结今天的内容:1. IPFS系统不发行硬币,而是发行激励层Filecoin。

2. Filecoin的代币为FIL,总金额为20亿,其中70%用于奖励矿工。 FIL尚未在线交易。

3. Filecoin有两个市场,即存储市场和检索市场。仓储市场和检索市场形成了一个庞大的交易市场。

4.只有存储市场中的矿工才能获得系统的FIL奖励,而检索市场中的矿工则无法获得该系统的FIL奖励。

进阶小课堂-IPFS的关系族谱技术架构及工作原理

原标题:高级小教室-IPFS的关系谱系技术架构和工作原理在[高级小​​教室]的上一期中,我们分析了HTTP协议当前构建的Internet的许多缺点,并介绍了IPFS的基本概念和原理。单击下图,可以查看IPFS如何构建下一代Internet。今天,我的兄弟将与您分享IPFS的关系谱系和技术架构。

IPFS的关系图IPFS由Juan Benet于2014年5月提出。2015年,他创建的“ IPFS”项目在Y Combinator创业孵化竞赛中获奖,并获得了天使投资。同时,他建立了一个协议实验室。

IPFS本质上是一种内容可寻址的,版本控制的点对点超媒体分布式存储和传输协议。目标是补充或替换过去20年中使用的超文本媒体传输协议(HTTP)。一个更安全,更自由的互联网时代。

在开发IPFS时,协议实验室团队采用了高度集成的方法来开发整个项目,例如构建块。其中,IPLD,LibP2P和Multiformats的三个模块服务于IPFS的底层。 Filecoin是IPFS的激励层,它评估IPFS应用程序的数据。

Mutiformats是一系列哈希加密算法和自描述方法的集合。它具有6种主流加密方法,例如SHA1 SHA256 SHA512 Blake3B,用于加密和描述nodeID和指纹数据的生成。它基于现有协议。值的自我描述性转换,即,您可以知道它是如何从值中产生的。

LibP2P是IPFS核心的核心。面对各种传输层协议和复杂的网络设备,它可以帮助开发人员快速建立可用的P2P网络层,这是快速且具有成本效益的。 libp2p的主要功能包括:发现节点,连接节点,发现数据和传输数据。它类似于一个现实世界的快递公司,该公司连接到数千个节点。除了分发数据之外,它还负责查找数据。

IPLD是一种转换中间件,它将现有的异构数据结构统一为一种格式,以促进不同系统之间的数据交换和互操作性。IPLD现在支持BTC,ETH和EOS等主流公共链的块数据。 IPLD中间件可以将不同的块结构统一为一个交付标准,从而为开发人员提供相对较高的成功标准,而无需担心性能,稳定性和错误。这就是为什么IPFS对许多区块链项目都很重要的原因。原因。

IPFS已应用这些模块的功能,并集成到容器化的应用程序中,并在独立的节点上运行,并且以Web服务的形式供所有人使用和访问。

由于IPFS是一种开放源协议,因此每个人都可以免费使用IPFS进行各种开发。目前,IPFS网络中的节点数不够,网络还不够稳定。为了使IPFS能够迅速普及和推广,协议实验室基于IPFS网络创建了Filecoin区块链项目,以激励参与IPFS节点并存储数据的矿工。 Filecoin评估这些应用程序的数据,并允许更多的人通过类似于比特币的激励政策和经济模型来创建节点,以便更多的人可以使用IPFS。

Filecoin是IPFS的经济激励系统,承载IPFS的价值转移并保持IPFS生态的发展。

从下一个[高级课程]开始,我们将重点介绍Filecoin。

IPFS的技术体系结构IPFS具有八层子协议栈,从低到高分别用于标识,网络,路由,交换,对象,文件,命名和应用。每个协议栈执行其自己的功能并相互匹配。

身份层和路由层身份层和路由层可以一起解释。对等节点身份信息和路由规则的生成是通过Kademlia协议生成和制定的。 KAD协议本质上构造了一个称为DHT的分布式哈希表(distributed hash table)。 ,加入此DHT网络的每个人都必须生成自己的身份信息,然后才能使用此身份信息来负责存储该网络中的资源信息以及其他成员的联系信息。

网络层网络层是IPFS技术的核心层。使用的lib2p可以支持任何传输层协议。ICE NAT遍历框架集成了STUN,TURN和其他类型的NAT协议。该框架允许客户端使用各种NAT方法来打开网络以完成NAT通信,这对于IPFS的p2p网络非常重要。

交换层是BT工具,例如Xunlei和eMule。 IPFS团队对BitTorrent(称为Bitswap)进行了创新。它增加了一个信用和计费系统来鼓励节点共享,并且用户可以通过将数据发送到其他节点来增加信用。价值,从其他节点接收数据会降低信用价值。如果用户仅接收数据而不共享数据,则他们的信用评分将越来越低,其他节点将忽略它们。

对象层和文件层对象层和文件层也可以组合谈论,它们共同管理IPFS上80%的数据结构。 Merkle DAG的结构中存在大多数数据对象,这为内容寻址和数据重复数据删除提供了便利。文件层是与DAG平行的新数据结构,并使用与Git相同的数据结构来支持版本快照。

命名层具有自我验证的功能(当其他用户获得对象时,指纹公用密钥用于验证签名,即验证所使用的公用密钥是否与NodeId相匹配,从而验证对象的真实性)由用户发布,并获得真实性(更改状态),并添加了IPNS的巧妙设计,以使加密的DAG对象名称可定义并增强可读性。

应用程序层IPFS的核心价值在于在其上运行的应用程序。它可以使用类似CDN的功能在非常低的带宽下获得所需的数据,从而提高整个应用程序的效率。

IPFS的工作原理IPFS基于用于寻址的文件内容。 IPFS为每个文件分配一个唯一的哈希值(文件指纹:根据文件的内容创建),即使两个文件的内容仅相差1位,哈希值也不同。因此,IPFS基于文件内容进行寻址,这与基于域名寻址的传统HTTP协议不同。

IPFS建立文件的文件版本管理。 IPFS删除整个网络中的重复文件,并建立文件的版本管理。也就是说,将记录每个文件的更改历史记录,并且很容易返回到文件的历史版本以查看数据。基于哈希值的文件查询。查询文件时,IPFS网络基于文件的哈希值(整个网络唯一)进行搜索。由于每个文件的哈希值在整个网络中都是唯一的,因此查询将很容易。除了存储所需的数据外,每个节点还存储一个哈希表,以记录文件的存储位置以及查询和下载文件。 IPNS。 IPNS允许用户使用私钥将引用附加到IPFS哈希,并使用公钥哈希来指示您的网站是最新版本。如果您使用过比特币,您可能对此很熟悉。比特币地址也是公共密钥。如果链接不起作用,请放心,您可以更改公共密钥所指向的内容,但是将永远不会维护公共密钥。改变。这样就解决了网站的更新问题。接下来,仅需确保这些站点的位置是人类可读的,并且解决了所有问题。

可读的可变地址。 IPFS / IPNS哈希值有些大而丑陋,很难记住。因此,IPFS允许用户使用现有的域名系统(DNS)为IPFS / IPNS内容提供人类可读的链接。它允许用户通过将哈希值插入域名服务器上的TXT记录中来实现此目的。

IPFS HTTP网关,新旧网络之间的桥梁。通过HTTP网关,IPFS可以实现从HTTP到IPFS的过渡。在浏览器完全支持IPFS之前,现在允许当前的Web浏览器访问IPFS。用户可以快速切换到IPFS,以完成Web网络的存储,分发和服务。 IPFS协议是开源的,并支持任何团队和个人免费存储和下载数据。 IPFS如何快速普及和发展,以便更多的节点参与者愿意推出自己的计算机硬盘驱动器来存储其他人的数据?这需要IPFS-Filecoin的激励层。在下一期[高级课程]中,我们将开始详细解释什么是Filecoin,Filecoin与IPFS之间的关系等。欢迎关注。

揭秘IPFS数据交换模块Bitswap

原始标题:揭秘IPFS数据交换模块Bitswap指南本文是IPFS系列的第四篇文章,详细解释了IPFS-Bitswap的核心模块。

(以前的技术干货已经为读者详细介绍了IPFS文件存储,文件系统和其他相关内容。)行星际文件系统(IPFS)是一种网络传输协议,旨在创建持久的分布式存储和共享文件。 。

与传统文件系统不同,它是一种基于内容寻址的点对点超媒体分发协议。

IPFS网络中的节点构成一个分布式文件系统网络,其中Bitswap是IPFS的核心模块,负责与网络中的其他节点请求和发送数据块。

图1 IPFS将文件分解为称为块的数据块,这些数据块由内容标识符(CID)标识。

IPFS文件的内容存储在不同的节点上,每个节点存储根块,少数节点存储完整的文件数据,大多数节点存储部分文件块。由于块存储在不同的节点中,因此Bitswap协议解决了有效地从多个节点获取所有数据块的问题。

图2多节点文件存储的示意图本文的总体体系结构基于Bitswap v0.3.3版本进行分析。

IPFS从Bitswap获取该块。 Bitswap是IPFS交换接口的特定实现,负责完成IPFS网络数据交换功能。

图3 Bitswap组件体系结构图Bitswap协议的内容相对繁琐。为了降低实现的复杂度,该协议分为块请求模块,块发送模块,会话管理模块,块提供者发现模块,网络模块等。

Bitswap模块负责接收新消息并提供用于外部数据交换的接口。

会话管理模块用于管理多个会话,每个会话管理一组文件的下载以提高下载效率。

块发送模块负责管理将数据块发送到其他节点。块请求模块负责管理数据块请求。块提供者发现模块负责通过DHT网络发现网络中的数据块。通常,会话无法找到已经具有所需块的节点时,将调用此模块进行数据块发现。

协议概述为了完成节点之间的块交换,Bitswap定义了通信消息和通信协议。

图4 Bitswap消息处理流程:1. IPFS请求一个文件块,Bitswap向所有连接的节点发送一个带有CID1信息的需要消息。节点根据其是否具有CID1文件块返回“拥有”或“不拥有”消息。

2.客户端向具有CID1的节点发送请求阻止消息,然后节点返回相应的阻止消息。

3.当没有节点具有请求的块时,Bitswap会向所有连接的节点广播所需消息,或通过DHT查找拥有文件块的节点。

详细的模块说明▲Bitswap模块Bitswap模块负责接收新消息并实现外部数据交换接口。

收到新消息时,Bitswap处理流程为:1.记录有关该消息的一些统计信息。2.通知发送模块需要该消息,以便数据发送模块可以根据实际情况向需求节点发送响应消息。

3.通知发送模块任何接收到的块。发送模块可以根据节点的需求列表将接收到的块发送到需要它们的任何节点。 4.通知SessionManager收到的块,HAVE和DONT_HAVEs消息,以便SessionManager可以通知与消息相关的会话。

Bitswap通过外观模式提高了模块使用的便利性,这使Bitswap子系统的使用变得简单,并且避免了IPFS和Bitswap的高度耦合。

▲会话管理模块会话管理模块用于管理多个数据块下载会话,每个会话管理一组文件的下载。

当SessionManager收到新消息时,它将为1,通知BlockPresenceManager组件以跟踪每个块。2.通知对接收到的块感兴趣并想要的会话。

3.通知PeerManager组件接收到的块,PeerManager检查是否有任何需要发送到节点以接收接收到的块。如果是这样,它将向这些节点发送“取消”消息,以防止其他节点重复发送消息。

会话管理模块通过协调多个会话的数据需求来提高数据交互的效率,并避免重复请求和传输数据块。

▲会话模块会话管理一组文件的下载,这用于提高下载一组文件(例如单个文件)的效率。当IPFS调用Bitswap时,Bitswap将创建一个新的Session并调用该Session的相应方法(例如GetBlocks)来获取块。会话将管理节点列表,并且数据获取过程将仅从会话中的节点而不是所有连接的节点获取数据。当会话中的所有节点都没有某个块时,Bitswap将通过DHT获取具有该块的节点并加入会话。

由于会话开始时没有节点,因此它处于“发现”模式。当IPFS最初从会话请求一个块时,会话处理流程如下:1.将其感兴趣的块通知SessionInterestManager组件。

2.通知sessionWantManager组件所需的块。

3.通知PeerManager组件向连接的节点发送“希望拥有”消息,以找出哪些节点具有所需的块。

4.查询ProviderQueryManager组件以发现哪些节点具有该块。

当会话收到带有“ HAVE”或“ block”的消息时,它将通知SessionPeerManager组件。

当会话收到带有“ block”的消息时,它将通知SessionInterestManager组件。一旦会话具有节点,它就不再处于“发现”模式。当IPFS请求后续块时,会话将通知sessionWantSender组件。 sessionWantSender组件通知PeerManager组件向会话中的节点发送“想要拥有”和“想要阻止”消息。

对于会话所需的每个块,sessionWantSender组件使用BlockPresenceManager组件检查哪些节点已为该块发送“ HAVE”,以确定哪个节点最有可能拥有该块。如果多个节点已发送“ HAVE”,则将根据先前请求的响应速度来选择该节点。

由于DHT内容发现速度慢和网络带宽消耗大,因此会话从包含目标数据块的一组节点中获取数据,这大大提高了数据块获取的效率。

▲块发送模块块发送模块负责管理向其他节点的数据块发送,包括节点需求管理组件(Ledger)和消息发送任务队列(PeerTaskQueue)。

引擎是块发送模块的处理类。当引擎通知有新的需求1时,将需求添加到分类帐中,分类帐将存储每个节点的需求列表。

2.检查块存储中的相应块,然后将任务添加到PeerTaskQueue组件。如果块库没有所需的块,则添加“ DONT_HAVE”任务;如果blockstore有一个块,则为“ want-have”添加“ HAVE”任务,为“ want-block”添加“ block”任务。

3.当引擎收到新的阻止消息时,它将检查“分类帐”以查看是否有任何节点需要此阻止。对于每个发送“ want-have”的节点,将一个“ HAVE”任务添加到PeerTaskQueue组件,对于每个发送“ want-block”的节点,将一个“ block”任务添加到PeerTaskQueue组件。

4.引擎将定期从PeerTaskQueue组件中取出任务,并创建带有“块”,“ HAVE”和“ DONT_HAVE”的消息。

PeerTaskQueue组件按优先级对任务进行排序,并且发送队列中数据量最少的节点具有最高优先级。通过这种流控制措施,提高了数据块发送处理的效率。

▲数据块请求模块块请求模块负责管理数据块请求。 PeerManager组件为连接到Bitswap的每个节点创建一个MessageQueue组件,记录已将“ want-have”和“ want-block”节点发送到哪个节点,并将任何新请求定向到正确的节点。通过将多个需求组合成一条消息,然后将消息发送到节点,MessageQueue组件提高了消息发送的效率。

▲内容发现模块当Bitswap无法找到已经具有所需块的节点时,它将使用DHT进行内容发现。 Bitswap通过ProviderQueryManager组件管理这些请求。 ProviderQueryManager组件对请求进行速率限制,并对进行中的请求进行重复数据删除。

总结Bitswap作为IPFS网络数据交换接口的特定实现,设计并实现了一组用于节点之间数据交换的有效协议。

该协议的主要重点是如何快速有效地获得所需的块,包括节点选择策略,以及如何最大化每个节点的能力。

Bitswap通过Facade模式提高了模块使用的便利性,并在特定实现中将复杂的依赖关系与每个功能模块解耦,从而降低了系统实现的复杂性。

上一篇: 错过ipfs

下一篇: 空中课堂ipfs讲解

微信
登录
用户名
密码
注册
用户名
密码
确认密码
昵称
邮箱
QQ
找回密码
用户名
邮箱
※ 重置链接将发送到邮箱