【了解】Filecoin挖矿中的密封
Filecoin是一个将云存储转变为算法市场的去中心化存储网络,矿工通过提供存储、分发和检索数据服务获得奖励,而客户则需要付费获得这些服务。
目前全球IPFS项目逐渐增加,数据存储市场的需求也在逐步加大,Filecoin 作为激励层,成为市场为IPFS 保驾护航的迫切需求。
Filecoin奖励
Filecoin的奖励目前分为存储市场,检索市场以及区块奖励。
Filecoin挖矿
Filecoin挖矿可以简单拆分为worker和miner两个步骤。
worker就是负责计算,将原始数据通过SDR算法进行数学计算,然后再将计算好的数据封装到硬盘的扇区中,并提交上链生成复制证明,矿工就获得了算力,这个过程需要消耗大量的CPU、内存和GPU资源。然后Filecoin网络再根据矿工所持有的算力分配区块打包的权利(也就是区块打包票选权),算力越大、赢票率越高,矿工在参与区块打包的时候需要重复提交时空证明,完成了时空证明的节点就可以获得区块打包的奖励。
Filecoin存储数据密封
数据封存阶段主要涉及Precommit 1,Precommit 2,Commit 1,Commit 2四个小阶段。简称P1、P2、C1、C2阶段;
1) Precommit1 阶段:
系统会把用户需要存储的文件分成一个个大小为 32GB 的 sector(扇区),P1 阶段就是矿工先对sector 进行进一步的拆分,然后再按顺序进行存储,中间需要进行 11 层计算,且无法并行计算;在该阶段,通过大容量内存的方式,就有可能同时存储多个sector,并通过软件优化存储一个sector占用的内存的大小来提高P1阶段的速度;
2) Precommit2 阶段:
P2 阶段即就是计算 Column Hash 以及生成 Replica,并构造相应的 Merkle 树,相当于解题并做出答案的过程。该阶段可以采用 GPU 加速。
3) Commit1 阶段:
C1 阶段主要是为 Sector 证明准备所需要的数据。这个时间很短,一般在一分钟以内。
4) Commit2 阶段:
C2 阶段是零知识证明的数据处理以及生成零知识证明的过程。相当于确认答案是否正确的阶段。该阶段可以采用 GPU 加速。
Filecoin挖矿密封全流程
挑选了流程中的主要步骤做出解析,配合流程图理解更佳
1、Empty--Packing(空扇区,灌入数据,形成未密封的扇区)
2、PreCommit1--PreCommit2(这里就开始密封了,文件碎片加密的方式是默克尔树列,最终要计算到默克尔树列的根值,p1预计耗时若干小时,p2预计耗时耗时几十分钟)
3、PreCommting(把PreCommit2计算得到的默克尔树根提交上链,以此证明矿机的加密能力,和能完成扇区密封)
4、WaitSeed(可以理解为等待一定时间,这里指一定的区块高度,每个区块间隔30s,这是目前主网的高度时间,具体等待的是:一个扇区计算到的随机数,用来抽查p2密封的扇区内文件碎片是否存储,零知识证明)
5、Commiting1、2(抽出对应文件碎片,计算出到默克尔根的文件路径,c1预计耗时只需数十秒,c2预计耗时25分钟左右)
6、CommitWait(提交c2计算的根,以证明文件碎片存储着)
7、FinalizeSector(扇区密封结束)
8、Proving完成密封