您的位置:星际联盟 > 新闻中心 > IPFS >

星际文件系统|星际文件系统通证中的存储和检索交易是什么?

发布时间:2021-04-07 18:00:55     浏览次数:次     作者:星际联盟     来源:http://www.ipfsxjlm.cn

  星际文件系统通证网络由分布在全球各地的数百个存储提供者组成。内容寻址和加密存储证明验证了数据在存储提供者的硬件上长期正确安全地存储,从而创造了一个强大可靠的服务。

  星际文件系统通证 上的数据

  在星际文件系统通证上存储文件,用户必须首先在其本地星际文件系统通证节点中导入文件。这一步会产生一个数据CID ——即内容标识符,描述该内容的唯一ID。之后,数据被传给存储提供者。

  将数据导入本地的星际文件系统通证节点,可以通过lotus client import命令来完成。要记住所产生的数据CID(之后在本地节点上也可获取),因为以后从存储提供者那里检索数据时会用到。

  将数据导入本地节点后,用户需发起交易。这步通过lotus client deal命令来完成。该命令将一个数据CID作为输入,产生一个 星际文件系统通证 Piece ,并交互式引导用户完成存储交易流程。

  星际文件系统通证 Piece 是用户在星际文件系统通证网络上存储数据的主要协商单位。星际文件系统通证 Piece 并没有特定的大小,而是以扇区大小为上限,受网络参数控制。如果一个 星际文件系统通证 Piece 大于存储提供者支持的扇区大小,它必须被分割成更多的碎片,以便每个碎片都适合一个扇区。

  星际文件系统通证 Piece
 

  每个 星际文件系统通证 Piece 是一个 CAR 文件,包含一个IPLD DAG,有对应的数据CID和piece CID。

  CAR 即 内容可寻址档案,每个 CAR 文件是一个 IPLD DAG 的序列化表示,即将其数据块串起来,再加上描述DAG图的头部信息(还有根CID )。

  当用户要在星际文件系统通证网络中存储文件时,首先要用UnixFS制作文件的 IPLD DAG (这就是lotus client import命令的作用)。代表DAG根节点的哈希是一个星际文件系统风格的CID,称为 数据 CID 。

  UnixFS是一种基于protobuf的格式,用于描述星际文件系统中的文件、目录和软链接。在星际文件系统通证中,UnixFS是文件格式标准,文件以此格式提交给星际文件系统通证网络。

  所产生的 CAR 文件用额外的零位来补齐,以便使文件写为二叉merkle树。

  存储交易流程

  用户在 星际文件系统通证 网络中通过交易存取数据。网络的参与者,包括存储提供者(供给方)和用户(需求方),通过存储交易和检索交易来与对方交互。

  存储交易的生命周期如下:

  1. 发现

  用户先确定存储提供者及其定价,即存储提供者为了接受交易而希望收到的每epoch(30秒)每GiB的价格,单位为atto星际文件系统通证。目前,星际文件系统通证中一笔交易的最短期限为180天。

  您可以通过 JSON RPC API 查询已同步的节点,列出所有当前活跃的存储提供者,使用 星际文件系统通证.StateListMiners 方法。您可以根据存储提供者在网络中的信誉和能力进行选择。存储提供者的信誉指标还未进入 星际文件系统通证 协议。

  当您选好存储提供者之后,可以用星际文件系统通证.StateMinerInfo 方法来获取存储提供者的 PeerID ,用于在 libp2p 协议中来与对方建立安全连接。

  接下来,您可以用 星际文件系统通证.ClientQueryAsk 方法获取一个带签名的 StorageAsk 。

  结果包括该存储提供者愿意接受的交易细节,如接纳的 星际文件系统通证 Piece 大小的范围和每GiB每epoch的价格。需要注意的是,提出与存储提供者的存储要求相匹配的存储交易,只是一个前提条件,但并不足以确保交易被接受 - 存储提供者可能会在之后运行自己的决策逻辑。

  2. 议价和数据发送

  在这一阶段,双方就交易条款达成协议,如交易成本、交易期限、交易起始时间等。然后,数据从用户发至存储提供者。

  3. 发布

  通过 PublishStorageDeals 消息在链上发布交易,使存储提供方对交易公开负责。

  4. 完成

  交易一旦在链上发布,就会被交给存储服务器托管子系统 ,打包成扇区,随后封装 ,再不断地被证明可用。

  存储存储服务器托管子系统确保 星际文件系统通证 网络的数据由存储提供者有效保存,并且:

  参与 星际文件系统通证 存储市场 ,承接用户数据,参与存储交易。

  参与 星际文件系统通证 存储算力共识 ,验证和产出区块,让 星际文件系统通证 区块链增长,并获得区块奖励。

  该系统监督以下进程:

  承诺新存储和注册新扇区

  为了在星际文件系统通证中注册一个扇区,存储提供者必须对该扇区进行 封装 。_封装_过程需要大量计算,以证明的形式产生数据的唯一表示,即复制证明或 PoRep 。一旦证明生成,存储提供者会对其进行压缩,并将结果提交给区块链。这就证明存储提供者确实复制了他们同意存储的数据副本。

  证明存储持续可用,所有存储存储提供者需要持续提交链上证明,以验证扇区被完整存储。

  宣布存储故障和从故障中恢复,如果扇区所需的上述证明如果未成功提交,将导致故障,存储提供者会受到处罚。

  存储交易是在链上发布后,才会被激活和封装。这一点很重要,因为发布交易会将用户的资金锁定在链上托管。只有如此,在封存数据进扇区之后,存储提供者的收益才有保障。

  可以将在链上发布交易视为签署合同,将封装和激活交易视为开始做承诺的工作。

  从用户的角度来看,想要用 星际文件系统通证 存储数据,交易大致经过以下几个阶段:

  交易入金,用户将资金锁入代管中

  检索交易流程

  检索交易与存储交易不同,使用支付通道,主要在链下完成。数据传输是按量计价的,用户在数据传输的过程中逐步向存储提供者支付费用。整个过程中,只有创建支付通道、兑换凭证,是涉及与 星际文件系统通证 区块链交互的。

  整体流程如下:

  发现 - 用户找出拥有其所需数据的存储提供者,并向其索取检索报价详情 - 每字节价格、解封价格、付款间隔。

  设立支付通道 - 用户需要和存储提供者之间设立一个支付通道(如果还不存在的话)。

  数据传输与支付 - 存储提供者向用户发送数据,直到需要支付。当达到一定的阈值时,会要求进行支付处理,之后继续进行数据传输。根据存储提供者是否在他们的 区块存储 中拥有数据,他们可能需要首先 解封 数据 - 这是一个非常规和非瞬时的操作,这是存储交易一节中描述的 封装 的反向操作。

  此时用户还未获取完整数据。

  时空证明

  时空证明(PoSt)是存储提供者向 星际文件系统通证 网络提交的证明,证明其正在继续为网络存储数据的唯一副本。

  目前,时空证明在 星际文件系统通证 中以两种类型存在:

  WinningPoSt是奖励存储存储提供者对 星际文件系统通证网络贡献的机制。

  在每个epoch开始时,一小部分存储存储提供者被选出来,每个存储提供者挖出一个新的区块。具体要求是,这些存储提供者提交指定扇区的压缩存储证明。每个成功创建区块的当选存储提供者都会获得星际文件系统通证(区块奖励),以及向其他想在区块中包含信息的 星际文件系统通证 参与者收取费用的机会。

  存储存储提供者如果在必要的时间窗口内没按要求做到,将失去生产区块的机会,但不会因为没产出区块而受到其他惩罚。

  WindowPoSt是 星际文件系统通证 区块链对存储存储提供者做出的承诺进行审核的机制。

  每个存储存储提供者都应该维护他们的承诺扇区。这些扇区包含与用户达成的交易,或也可能为空。后者被称为承诺容量,也就是说,存储提供者可以做出容量承诺,用任意数据填充一个扇区,而非用户数据。维护这些扇区可以让存储存储提供者证明他们在代网络预留空间。

  每天被分成几个时间窗口。目前,有48个时间窗口,每个窗口持续30分钟(60个时代,因为一个时代等于30秒)。

  每个技术服务提供商的承诺部门被分成若干组,每组对应一个时间窗口。

  在一个时间窗口(30分钟)内,每个存储存储提供者必须提交该时间窗口内每个扇区的时空证明。这需要随时访问时间窗口的每个扇区,生成ZK snark-proof,并将连接块发布到filecoin区块链。通过这种方式,每24小时将至少对承诺储存的每个部门进行一次审计,并保存一份永久、可核实和公开的记录,以证明每个储存存储提供者的保守承诺。

  filecoin网络希望存储的数据能够持续可用。未能提交扇区的windowcast将导致失败,并且提供该扇区的存储存储提供者将受到惩罚。这有助于储存存储提供者的健康运营。

X

截屏,微信识别二维码

微信号:ipfs1198

(点击微信号复制,添加好友)

打开微信

微信号已复制,请打开微信添加咨询详情!
  • 首页
  • 微信
  • 电话
  • 返回顶部