• 您现在的位置: 首页 IPFS资讯 kok软件 查看内容
  • 6Block:一文读懂 Filecoin V13 HyperDrive

    2021-6-15 18:58| 发布者: admin| 查看: 244| 评论: 0

    背 景


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

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

    合作、关注腾盛科技公众号添加客服

     
    QQ在线咨询
    售前咨询热线
    400-888-8888
    售后服务热线
    010-12345678
    返回顶部