LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 6Block:一文读懂FilecoinV13HyperDrive

6Block:一文读懂FilecoinV13HyperDrive

2021-06-22 石榴数科6Block 来源:区块链网络

背 景

自Filecoin主网上线以来,目前已有超过2400个活跃矿工在网络提供数百PiB的有效存储,总存储已经达到EiB级。由于Filecoin网络对存储服务的巨大需求,存储容量的增长一直受到Filecoin链容量的限制。区块目前充满了新的存储证明,存储交易和不断的存储验证(Window PoSts),限制了矿工提交给Filecoin网络的新存储,并且使链上交易由于gas fee更加昂贵。

为此,CryptoNetLab 一直致力于增加链容量。增加链容量有以下几个好处:

允许现有矿工更低成本进行封装

为新矿工提供存储空间

提高其他关键功能,如进行中的存储验证,交易等的链带宽

降低封装新的存储交易的Gas费,使在 Filecoin 上存储有效数据的成本更低

V13 'HyperDrive'

Filecoin 官方发布公告,宣布6月下旬将进行Network V13 'HyperDrive'的网络升级,这次升级主要是执行两个提案:FIP-0013、FIP-0008,降低复制证明与时空证明的Gas消耗,提高链的利用效率;其次修正FIP-10方案之前造成共识错误;以及更改DataCap发放管理方式。

官方表示,本次升级将会使 Filecoin 网络的存储和验证效率提高 10-25 倍。

同时在该消息中,官方还提到最新发布了lotus V1.10.0-rc1,矿工可以将此作为即将升级的网络版本预览,同时根据这个“预览”进行配置尝试与升级。

Upgrade timeline

6月3日:lotus V1.10.0-rc1

6月9日:lotus V1.10.0-rc2

6月11日:calibration 更新

6月24日:lotus V1.10.0

TBD:主网V13 HyperDrive 更新

目前,首个具有证明聚合功能的lotus V1.10.0-rc1已经上线,calibration net测试网已经更新。网络升级的时间还未确定,可能是6月的最后一周。

实 现

这次升级主要是CryptoNetLab 和 CryptoComputeLab对Filecoin证明机制进行了改进,促成了两项FIP提案:

FIP-0008:增加PreCommitSectorBatch方法,允许矿工批量扇区进行pre-commit

FIP-0013:通过 SnarkPack 方案,增加ProveCommitAggregated方法,将多条证明聚合至一条链上消息,以改善链上拥堵

FIP-008

概念

主要是针对pre-commit消息。现有方法每次只能提交一个扇区的pre-commit消息,假如网络增速大时,需要支付高昂的Gas费去完成提交,会导致网络更拥堵。

改变

以PreCommitSectorBatch方法来实现多个扇区共同提交,减少一些非必要的证明和冗余的检查;

批处理的扇区个数需小于256;

批量扇区里的扇区相对比较独立,不过还是会因为一些不当操作而导致失败,如miner余额不足等;

现有的PreCommitSector仍然可以使用,但未来可能将不再支持。

总体而言,FIP-008主要使分摊到每个扇区的费用降低,减少上链的总成本,避免网络消息过多造成的拥堵。

FIP-0013

概念

现有的ProveCommitSector策略只支持一次提交一个扇区的信息。CryptoNetLab 和 CryptoComputeLab推出了SnarkPack(一种聚合拓展的zk-SNARK方案)。SnarkPack为FIP0013提供了一个解决方案——添加ProveCommitAggregate方法,允许矿工将多个扇区ProveCommit消息集成为一条链上消息。核心思想是通过集成以及缩减多个证明验证(以SNARK形式存在链上)以形成占用链带宽更少的集成消息。

新方法不需要冗余的检查,Gas费可由多个扇区摊销,显著减少每个扇区的证明大小和验证时间。为确保小型矿工也能从优化中受益,提交PreCommit和ProveCommit消息的窗口期将被延长 ,保证小型矿工可集成窗口期内所有证明,生成一条链上消息。

性能指标

使用 32核,64线程AMD锐龙 Threadripper CPU运行,SnarkPack可在8秒内集成8192个SNARK证明,生成的证明大小是原来的1/38,验证只需33毫秒。

改变

聚合扇区的最大个数为819个,定义在specs-actors/actors/builtin/miner/policy.go,但是miner可以在一个epoch提交多个batch。

pre-commit 和 prove-commit间的延时由1天增加到30天。

Gas

BatchBalancer:设置GasCharge的最低值

BatchDiscount:使聚合证明原则上比单条证明消息的GasUsage 更便宜。(约便宜 1/20左右)

当 BaseFee 低于 BatchBalancer * BatchDiscount 时,提交单个证明可能更便宜。

当 BaseFee 远高于 BatchBalancer * BatchDiscount 时,提交聚合证明可能更便宜。这些参数设置保证了更大幅度的上链率,从 ~30 PiB/天到 ~2 EiB/天。

BatchProveCommit的收费计算如下:

其中,常数65733296.73来自Pre Commit和Prove Commit一个扇区的平均 GasUsage,是一个不精确的近似值,因为不同的矿工配置有不同的 GasUsage。

实验数据:

旧版本中,32G扇区手续费约为64G的两倍,而新版中,两者手续费差距并不是很大。

扇区越多,单个扇区分摊成本越低。当聚合ProveCommitSector消息达到上限,成本是最低的。(6个扇区聚合预计Gas Usage节省1.5倍,819个聚合预计节省30倍)。

当Base Fee小于0.1 nFIL时,矿工选择单一扇区较为划算。

当Base Fee大于0.1 nFIL时,矿工选择聚合扇区较为节省。并且base fee越高,聚合的优势越明显。

对矿工的影响

HyperDrive实施后,矿工可以将证明消息汇总,从而减少链上消息,既快速增加网络算力又节省链上空间。降低gas费,提高矿工的收益。

矿工需要有效的利用这次升级进行优化:

此次升级的版本V1.10.0建立在Lotus V1.9.0上,需要提前进行相应的软件升级和依赖库更新。

需要根据不同费率选择不同的扇区处理方式。

64G和32G的选择。

常见问题

1. 如果一部分batched precom或者聚合的provecommit信息上链失败,会不会全部信息都失败?

对PreCommitSectorBatch来说会;对ProveCommitAggregate会根据失败的种类。如果聚合提交中包含已经过期的PreCommit,则有 8 小时的窗口期,用来提交未过期的PreCommit。其他个别失败将导致消息失败。

2. 为了在减少gas消耗和由提交延迟造成的收益减少之间达到均衡,在设置方面有什么具体建议吗?

miner可以在miner的config file设置precommit或provecommit聚合的最大/小值。也可以设置达到批量最小值后的提交等待时间(这可以保证在deal或扇区过期前提交)。默认值在https://github.com/filecoin-project/lotus/blob/4bff4f25adf4b109c8089c956731a21a5f509474/node/config/def.go#L256

当 BaseFee 低于 BatchBalancer * BatchDiscount 时,提交单个证明可能更便宜。当 BaseFee 远高于 BatchBalancer * BatchDiscount 时,提交聚合证明可能更便宜。官方建议miner根据自己的情况来设置。

3. V13升级会影响扇区封装时间吗?

对封装时间没有影响,如果单一扇区要与其它扇区聚合消息,等待的时间会变长。

4. ProveCommitAggregate和BatchPreCom方式是可选择的还是强制的?

升级之后仍然可以选择使用之前的PreCommitSector和ProveCommitSector方式,但是新的方法总费用会更低。

5. 网络升级后,gas费用预计会减少多少?

具体数值还不确定,减少的程度可能取决于使用网络的潜在需求以及参与者的情况。如果潜在需求超过 10-25 倍,则 BaseFee 可能不会减少,因为块仍会满载。

6. Hyperdrive 允许多少存储载入?

根据节点使用聚合的方式,预计存储效率会提高 10 到 25 倍。我们可以看到网络从现在的 40 PiB/天增长到 1 或 2 EiB/天。

7. 聚合如何影响节点对区块奖励的竞争?

聚合使存储容量增加了 10 到 25 倍,因此许多节点将大大增加其存储容量,并从区块奖励中获得更大份额。我们预计许多节点将利用聚合并大大增加其存储部署,从而获得更多收入。与 ProveCommitAggregate 和 PreCommitAggregate 协议中的所有消息一样,可以使用指定的 GasPremium 发送。

8. 存储速率的增加是来自于加快各个证明阶段的速度,还是由于聚合消息而实现了更多的网络吞吐量?

存储速率的提高来自于聚合消息导致的整体网络吞吐量增加。单独的证明阶段没有加速。

—-

编译者/作者:石榴数科6Block

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...