从技术角度分析Filecoin算力增速加快的原因
December 27th, 2021

众所周知,Filecoin项目本身是一个存储市场,Filecoin网络算力由全网数据存储量来衡量。算力越大代表存储量越大,也进一步地说明Filecoin生态越强大。就在9月1日,Filecoin算力正式突破10EiB。这是一个历史性里程碑级别的突破,截至撰稿时间,filecoin全网有效算力为10.32 EiB,这一数据已经远远超过了许多大型中心化存储服务商的容量。根据历史数据显示,Filecoin全网算力从1EiB到5EiB,历时近6个月,而从5EiB到10EiB,总历时仅仅不到4个月时间。

全网算力增速加快的原因有很多,比如市场回暖、Filecoin生态雏形开始展现、Gas费大幅降低使入场成本降低等等。本文主要从技术角度深度分析Gas费大幅降低的原因。

从Filecoin官方Github(https://github.com/filecoin-project/lotus/releases/tag/v1.10.0)可以知道6月24号发布了Lotus v1.10.0版本。这是一个强制升级的版本,即所有存储提供者必须在区块高度为892800 (北京时间2021-07-01 06:00:00)之前更新相应的客户端软件版本。此次更新引入了Filecoin network v13,代号为HyperDrive。主要升级内容包含实现以下几点:

FIP-0008:添加存储提供者批量提交 PreCommitSector消息的方法

FIP-0011:从上报共识故障中删除奖励拍卖

FIP-0012:更改Filecoin Plus中客户端地址请求获取DataCap 管理

FIP-0013:添加 ProveCommitSectorAggregated 方法以减少链上拥塞

FIP-0015:恢复 FIP-0009(免除 WindowPoSts 时销毁BaseFee )

其中FIP-0008的实现是通过 filecoin-project/specs-actors/actors/builtin/miner/miner_actor.go 中添加

PreCommitSectorBatchParams结构体

内容为原有的SectorPreCommitInfo结构体数组,SectorPreCommitInfo结构体为存储提供者提交pre-committing消息时提供的信息,包含扇区编号、CID等等信息。此实现逻辑即是将原有单个PreCommitSector方法需要填充的信息进行再一次封装成数组提交,达到可以一次性提交多个扇区pre-commit的目的。注意单个批量提交的pre-commit扇区数限制为 256 。

在此之前存储提供者密封扇区的Gas费=PreCommitSector+ProveCommitSector GAS费。并且PreCommitSector GAS费也是占比较大,故FIP0008有效地降低了pre-commit 消息提交时的GAS费。

同理,FIP-0013添加一个ProveCommitSectorAggregated方法,原理也是允许存储提供者一次性提交多个扇区的ProveCommitSector证明,目的降低了prove-commit消息提交时的GAS费。FIP-0013的实现是通过添加ProveCommitSectorAggregatedParams结构体的方法来实现。

由于时空证明采取乐观的态度相信存储提供者不会作恶,故采用链下验证的方式。故链上先相信所有存储提供者提交的时空证明为合法的,后续由链下验证参与者检查证明的合法性。Filecoin网络为了激励链下验证参与者去验证时空证明合法性,对上报共识错误的账号提供一定的奖励。在此之前奖励采用荷兰式拍卖的方法进行。FIP0011举报的奖励会进行反向拍卖(荷兰式拍卖)。FIP-0011提案指定取消此拍卖机制,奖励从 0.005 ~0.25个等额的预期区块奖励变成固定的0.25个等额的预期区块奖励,并立即提到账。奖励机制的改变和奖励额度的增加,从某种程度上也激励了链下验证参与者的活跃度,这有利于Filecoin网络健康的发展。

进而FIP-0012提出了更改Filecoin Plus中客户端地址请求获取DataCap 管理的方式。具体规格为客户端地址能够接收对指定地址的额外分配的 DataCap 。其具体实现方案是在filecoin-project/specs-actors/blob/master/actors/builtin/verifreg/verified_registry_actor.go中如下图所示

取消在AddVerifiedClientParams.Address中对 客户端是否为VerifiedClient 的检查。

如果链上地址没有 DataCap:为此新地址添加AddVerifiedClientParams.Allowance。如果链上地址当前是已验证客户端:则为此新地址添加AddVerifiedClientParams.Allowance 的DataCap余额。客户端地址应该能够接收对指定地址额外分配的 DataCap 。需要考虑的情况:链上地址,从未收到 DataCap 当前机制没有变化 - 客户端能够请求 DataCap。链上地址,之前收到的 DataCap 的客户端应该能够再次请求 DataCap。DataCap 应该被视为对现有余额的补充 。Existing DataCap Balance = Existing DataCap Balance + New Allocation。

由于之前FIP-0009提案对 SubmitWindowedPoSt 时空证明基本费用不做销毁(即,不销毁baseFee*gasUsed)并退回给存储提供者。作为短期权宜之计,以减少基础费用上涨对现有存储时空证明的 GAS 成本的影响。但是“免费”的 Window Posts gas 市场带来了扭曲影响,降低了矿工将尽可能多批处理SubmitWindowedPoSt

时空证明的动机,使得链带宽被占用变大。故FIP-0015对FIP-0009进行回退,即不返还时空证明的基础费用,照常进行销毁。虽然正常情况下单次时空证明销毁的GAS费用不多,但是随着Filecoin网络和生态的发展,时空证明消息会越来越多,销毁的FIL也会越来越多,当FIL销毁量>释放量,FIL将正式进入通缩。

最后再回到主题,FIP-0008和FIP-0013相结合,真正地降低存储提供者密封扇区时付出的GAS费成本,入场成本显著降低,可以显着提高 Filecoin 网络上的存储速率。这将有利于更多有用的数据存储在网络上,减少网络拥塞,并降低网络基本费用。FIP-0011激励了越来越多的链下验证参与者加入网络。FIP-0012降低了Filecoin Plus中客户端开发操作门槛。FIP-0015是FIL增加销毁量,减少FIL流通量。以上对于Filecoin生态、存储提供者、用户来讲都是利好信息,越来越多的存储提供者加入为全网提供算力。这也是Filecoin主网进行 v13 HyperDrive 升级后全网算力在近两个月增速加快的重要原因之一。

Subscribe to 3WebDAO
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from 3WebDAO

Skeleton

Skeleton

Skeleton