今天,我们主要来讲讲Filecoin gas的计算方法,P1、P2、C1、C2的定义和特点,以及Filecoin官方对于降低gas的解决措施。
一、关于Filecoin Gas费用计算
在Filecoin区块链浏览器中,我们点击并进入gas那一栏目,可以看得到gas基础费率走势图,24小时的gas数据其实就是gas费用消耗明细的展示。
gas费用的消耗主要分为两大部分:增长算力所消耗的gas以及维持算力所需要消耗的gas。
其中增长算力所消耗的gas主要在P2和C2阶段,即PreCommitSector和ProveCommitSector;由于Filecoin作为一个存储类型的公链,所以Filecoin的基本单位是Sector (也被称为扇区),1TB的有效算力由32个32GB的扇区组成(32X32=1024)。
因此,增长1TB的有效算力需要消耗的gas费用为:(0.2185+0.08)X 32=9.552 FIL
除了增长算力可以获得FIL区块奖励,保持算力并且按要求提供证明也能获得区块奖励,每TB有效算力提交时空证明参与区块奖励时产生的gas费用为:32/2349X1.5194=0.0206FIL (32是因为1TB有32个扇区,2349是因为一个时空证明消息中含有2349个扇区)。
由上,我们可以知道,新增有效算力是最为消耗gas环节,为什么呢?这还得从Filecoin的P1、P2、C1、C2说起。
二、关于P1、P2、C1、C2
作为一个存储类型的区块链,Filecoin的基本存储单位是扇区,如何证明扇区已经存储数据,如何将承诺容量转化为有效算力,这就是我们常说的 precommit1、precommit2、commit1、commit2。pre可以翻译为提前、准备,因此,又翻译为预封装一阶段、 预封装二阶段、封装一阶段,封装二阶段。
P1阶段主要是将文件进行打碎、分片,并计算原始数据的merkle树,这一阶段主要耗费的是CPU。
P2阶段需要生成Replica,计算Column Hash,并针对column hash的计算结果生成merkle树,然后还需要针对label的计算结果,再做一次encoding,生成merkle树。其中计算Column Hash还需要经过11layer、Label,并使用到poseidon Hash, 所以P2阶段不仅耗时,而且对gas的需求也比较大,这一阶段主要是GPU在工作。
C1阶段是不上链的,并且大概只需要耗费十几秒钟,因此,C1阶段可以忽略不计。
接下来我们来到最为耗费gas的C2阶段,C2阶段主要是零知识证明的电路处理以及生成零知识证明的过程,做零知识证明是为时空证明准备的,做时空证明是为获得区块奖励准备的(零知识证明:在矿工不知道文件内容的前提下,向系统证明矿工的确保存了该文件)。
总得来说,这其中的流程是从P1阶段的数据分片、封装到P2阶段的生成DHT,P2阶段完成以后,就会涉及到发消息上链,然后就进入C1和C2阶段,P1阶段预计要4个小时,C1阶段预计十几秒钟,C2预计一个小时。
由于C2阶段需要大量的并行计算,所以需要花费大量的gas,C2阶段所耗费的gas预计占了总体所耗费gas的三分之二。
三、关于Filecoin FIP-9提案
面对并不合理的gas费用,Filecoin官方在努力从多方面解决问题。
北京时间12月16日 12:10,Filecoin官方人员Aayush Rajasekaran 在slack频道发布最新公告称,将在今晚(项目方的今晚是我们的明天凌晨)发布Lotus v1.3.0 测试版本,并希望在所有实现批准之后不久发布v1.3.0正式版本。
本次将在Filecoin区块高度达到343200之前进行升级,本次升级包含了FIP-9提案,该提案主要内容在于免除成功执行SubmitWindowedPoSt的baseFee。
简而言之,如果矿工发送“ SubmitWindowedPoSt”消息,并且消息成功执行,系统将会退还矿工所消耗的gas费用。
该FIP提案能够在一定程度上降低Window PoSt拥塞,降低Filecoin矿工提交时空证明的成本。可正如上文所述,提交时空证明所消耗的gas费并不是矿工的主要gas费用支出,因此,客观的来说,该提案无法从根本上解决gas费用过高的难题。
但是,我们也不必悲观,因为目前仍属于“草拟”阶段的几个方案"FIPS42、FIPS49、FIPS50"有望从更深层次上降低Window PoSt的长期成本以及减少链的长期拥堵,只是因为这几大方案需要较大工作量的开发和测试,所以,需要一定的时间。
总之,我们需要加以明确的是,Filecoin官方和社区都在努力进一步解决问题,一切都在朝着更好的方向改进和发展。
来源:oschina
链接:https://my.oschina.net/u/4703070/blog/4812834