FileCoin是IPFS的代币,在这个体系中有两类矿工,一类是存储矿工,一类是检索矿工,本文主要对这两类矿工的挖矿周期做简要介绍
存储矿工挖矿周期
抵押:存储矿工向网络抵押存储
存储矿工通过在抵押交易中存放抵押品来保证向区块链提供存储。如果矿工为交存储的数据生成存储证明,抵押品就回返还给他们。如果存储证明失败了,一定数量的抵押品就会损失。他们设定价格并向市场订单簿提交报价订单,一旦抵押交易在区块链中出现,矿工就能在存储市场中提供他们的存储。
inputs:
– current allocation table allocTable
– pledge request pledge
outputs:
- allocTable
接收订单:矿工从存储市场获取存储请求
矿工设定价格并向市场订单簿提交报价订单,一旦抵押交易出现在区块链中,矿工就能在存储市场中提供他们的存储。
inputs:
- list of orders O1..On
outputs:
- bit b, equals 1 if successful
检查是否和客户的报价订单一致
inputs:
– the current Storage Market OrderBook
– query order to match Oq
outputs:
- matching orders O1..On
订单如果匹配,用户会将数据发给矿工,数据接收完之后,矿工和用户签收订单并将其提交到区块链
inputs:
– signing key for Mj
– current orderbook OrderBook
– ask order Oask
– bid order Obid
– piece p
outputs:
- deal order Odealsigned by Ciand Mj
密封:存储矿工为未来的证明准备碎片
存储矿工的存储切分为扇区,每个扇区包括了分配给矿工的碎片。网络通过分配表来跟踪每个存储矿工的扇区。当存储矿工的扇区填满了,这个扇区就被密封起来。密封是一种缓慢的顺序操作。将扇区中的数据转换成为副本,然后将数据的唯一物理副本与存储矿工的公钥相关联。在“复制证明”期间密封是必须的操作。如下所述在第3.4节。
inputs:
– miner public/private key pair M
– sector index j– challenge c
outputs:
a proof πPOS
证明:存储矿工证明他们正在存储数据
当存储矿工分配数据时,必须重复生成复制证明以保证他们正在存储数据,证明发布在区块链中,并由网络来验证。‘
inputs:
– miner public/private key pair M
– sector index j
– challenge c
outputs:
- a proof πPOS
检索矿工挖矿周期
收到订单:检索矿工从检索市场获取数据请求
检索矿工设置价格并向市场订单簿增加报价订单,并通过向网络发送报价单来提供数据。
inputs: list of orders O1..On
outputs: none
检索矿工检查是否与客户的报价订单匹配一致。
inputs:
– the current Retrieval Market OrderBook
– query order to match Oq
outputs:
matching orders O1..On
发送:检索矿工向客户发送数据碎片
一旦订单匹配,检索矿工就将数据发送给客户。当数据被接收完成,矿工和客户就签署交易并提交到区块链。
inputs:
– an ask order Oask
– a bid order Obid
– a piece p
outputs:
a deal order Odeal signed by Mi