Skip to main content
 首页 » IPFS

详解星际文件系统ipfs

2021年05月06日27

揭秘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入场券编辑下一个世界1000亿级别的项目?

如果要说出2018年最受期待的项目,则IPFS星际文件系统必须是第一个。 IPFS(Filecoin)于2017年8月筹集了创纪录的2.5亿美元,此次代币销售仅售出了10%的代币,这意味着IPFS尚未正式启动,市值已达25亿美元!区块链历史上的“硬币之王”!今天,让我们一起来看看,使投资者如此疯狂的IPFS(Filecoin)项目的魔力是什么?

超文本传输​​协议(HTTP)有什么问题?

超文本传输​​协议(HTTP)是一种应用程序层协议,用于在不同个人之间传输超媒体信息。 HTTP是当前Internet数据通信的基础。自从1999年宣布HTTP以来已经有20年了。

我不得不说,HTTP是20世纪人类最伟大的发明之一,但是随着Internet的不断爆炸,HTTP协议的弊端逐渐显现出来:1.内容将被永久删除。我们都已经看到“ 404页面”未找到”这个常见错误。这意味着您要查找的页面不存在。此错误有两个原因:1服务器上的文件被永久删除; 2服务器已关闭,这意味着您要查找的网页已从Internet上永久消失(除非您事先进行备份)。

2. HTTP非常昂贵,浪费资源。据IPFS官方博客报道,到目前为止,YouTube上的伯德叔叔的“江南风格” MV已在全球播放了30亿次。如果我们假设此MV的大小为100MB,那么到目前为止,该MV总共消耗了300 PB的网络流量(1P = 1,000,000GB),如果以0.01USD / GB的价格进行计算,则谷歌将向互联网服务提供商(ISP)支付300万美元。

3.安全问题HTTP协议过于集中。为了支持HTTP协议,服务器必须打开24 * 7小时。对于流量巨大的公司:百度,淘宝和腾讯,他们每年花费大量资金来维护公司的服务器并解决DDoS,XSS,CSRF等安全风险。

为了解决上述问题,接下来,我们将介绍当今的主角:IPFS星际文件系统。

什么是IPFS?

IPFS是一个分布式文件系统,旨在将所有计算设备与同一文件系统连接。在某种程度上,这类似于Web的最初目标,但IPFS实际上更类似于交换git对象的单个bittorrent群。 IPFS可能成为Internet的一个新的主要子系统。如果构建正确,它可以补充或替换HTTP。它可以补充或替代更多。听起来很疯狂。太疯狂了。IPFS是一种分布式文件系统协议。 IPFS协议定义了如何在分布式系统中存储,索引和传输文件。 IPFS的目标是通过文件系统连接网络上的所有设备。在某些方面,IPFS和WEB的原始设计非常相似,但IPFS更像是由节点组成的P2P Git文件系统。如果正确使用IPFS,则IPFS可以替换HTTP协议。总结起来很简单:IPFS是一种点对点的超媒体文件存储,索引和交换协议。

在IPFS系统中,IPFS将使用类似于Git的机制来记录文件修改,而不是每次修改后都复制整个文件。并使用Merkle DAG验证文件的完整性。为了激励人们参与IPFS协议。

IPFS所做的不只是云存储。 IPFS的最终目标是颠覆HTTP协议。 IPFS很有可能成为下一个1000亿美元的项目。

如何成为IPFS的投资者?

IPFS的众筹文件Filecoin已于2017年8月完成。当时,Coinlist总共筹集了2.5亿美元。参与有四种选择:不锁定状态下的6个月不折扣,锁定期12个月的折扣为7.5%,锁定24个月的锁定为15%的折扣以及锁定36个月的锁定为20%的折扣。最终交易价格约为2.5美元/文件币。目前,有两种方法可以成为IPFS的投资者:1.前往Gate或LBank购买Filecoin期货(当前价格为60元人民币)2.等待2018年第一季度,IPFS主网处于联机状态,并使用您的空闲硬盘驱动器/带宽成为矿工。我们的建议是,与其追逐高价并购买期货(与众筹期相比增长了3-4倍),不如将来成为IPFS的矿工,因为众筹仅售出了10%的代币。需要线性开采70%的Filecoin。此外,许多朋友在后台给了我们反馈:最近,许多人使用IPFS挖掘进行炒作和欺诈。要求投资者保持警惕,不要盲目听别人的意见。我们还将密切关注IPFS的最新发展,如果有任何新闻,我们会尽快告诉您。将来,我们将指导所有人如何成为专业的IPFS矿工。请继续关注官方帐户-Velar Mining。

Filecoin官方|测试网第二阶段将可获得奖励,萤火虫矿机洗兵牧马,蓄势待发~

原始标题:Filecoin官方|测试网的第二阶段将获得奖励。 Firefly采矿机可以清洗士兵和马匹,并且随时可以使用。编辑/ Firefly技术行星际文件系统(IPFS)是一种全球性的,对等网络。文件系统的分布式版本的目标是补充(甚至是补充)。替换)当前统治Internet的超文本传输​​协议(HTTP),并将所有计算设备连接到同一文件系统。原理是将基于域的地址替换为基于内容的地址,即用户不是在寻找地址,而是在特定位置存储内容。无需验证发送方的身份,而仅需要验证内容的哈希。它可以使网页更快,更安全,更健壮和更耐用。

1月8日,Filecoin的官方核心开发者Why在Slack中表示,将根据矿工的钱包余额或总计算能力等指标在测试网的第二阶段颁发奖励。

具体的奖励规则将在测试网络的第二阶段上线后宣布。

几天前,Filecoin团队结束了假期并正式恢复工作。

在测试网的第一阶段,由于某些节点的侧链分叉攻击,因此无法正常测试。技术小组目前正在修复该错误,并表示将在不久的将来重新开始测试。

Firenet技术团队的测试网第二阶段和主网的准备工作也正在紧锣密鼓地进行,并准备就绪。

此外,新的IPFS Docs beta版本也已经启动。

我们很高兴地宣布,新的IPFS文档站点正在Beta测试中!就像任何乔迁之喜一样,门是敞开的,我们诚挚地邀请您参观,环顾四周,让我们知道您的想法。

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