飞行的蜗牛

vuePress-theme-reco 极客学长    2013 - 2025
飞行的蜗牛 飞行的蜗牛

Choose mode

  • dark
  • auto
  • light
首页
分类
  • 技术杂谈
  • Database
  • Docker
  • PHP
  • 随笔杂谈
  • 前端开发
  • FunnyTools
  • Jekyll
  • 读书笔记
  • Java
  • SpringBoot
  • 区块链技术
  • IPFS
  • C/C++
  • Filecoin
  • Golang
  • Sharding-JDBC
  • 分布式存储
  • Lotus-源码系列
  • Lotus
  • 框架源码系列
  • Spring-源码系列
  • AI
  • ChatGPT
  • Stable Diffusion
  • DeepSeek-R1
  • DeepSeek-V3
标签
时间抽
关于作者
开源项目
GeekAI (opens new window)
author-avatar

极客学长

154

文章

151

标签

首页
分类
  • 技术杂谈
  • Database
  • Docker
  • PHP
  • 随笔杂谈
  • 前端开发
  • FunnyTools
  • Jekyll
  • 读书笔记
  • Java
  • SpringBoot
  • 区块链技术
  • IPFS
  • C/C++
  • Filecoin
  • Golang
  • Sharding-JDBC
  • 分布式存储
  • Lotus-源码系列
  • Lotus
  • 框架源码系列
  • Spring-源码系列
  • AI
  • ChatGPT
  • Stable Diffusion
  • DeepSeek-R1
  • DeepSeek-V3
标签
时间抽
关于作者
开源项目
GeekAI (opens new window)
  • Lotus 网络升级 v1.10.0 - 将大大降低质押 Gas 成本

    • 1. 消息聚合配置
      • 2. 消息聚合操作
        • 参考阅读

        Lotus 网络升级 v1.10.0 - 将大大降低质押 Gas 成本

        vuePress-theme-reco 极客学长    2013 - 2025

        Lotus 网络升级 v1.10.0 - 将大大降低质押 Gas 成本


        极客学长 2021-06-25 0 Lotus FIP

        阳光劫匪

        奇怪的动物会被人保护起来,但是奇怪的人确通常都会被大家所排斥。

        北京时间 2021年06月24日,Lotus Github 仓库发布了 v1.10.0 Release (opens new window) 版本。

        Lotus v1.10.0 版本发布

        如图所示,这是一个强制更新版本,更新高度为 892800,UTC 时间 2021-06-30 22:00,北京时间为: 2021-07-01 06:00,主要更新为引入 Filecoin network v13 (opens new window),代号为 HyperDrive 升级。

        本文将对本次网络升级进行解读,尤其重点解读大家可能比较关注的关于扇区批量提交的新的 API 的使用。

        首先咱们先看看本次更新的主要内容,其实主要就是新增了几个重要 FIP 的实现(上面截图上面有写明)。

        1. FIP-0008: 增加 PreCommitSector 消息批量提交的方法(PreCommitSector 消息聚合)
        2. FIP-0011: 删除报告共识错误的奖励
        3. FIP-0012: DataCap 充值 FIL(之前 DataCap 是一次性分配的,容量用完了要新增地址) + 客户端地址
        4. FIP-0013: 添加 ProveCommitSectorAggregated 方法(ProveCommitSector 消息聚合)以减少链上拥堵
        5. FIP-0015: 重新启用 FIP-0009(从 BaseFee 销毁中免除 Window PoSts,Window PoSts 消息手续费不再收 BaseFee 影响)

        具体详情大家可以到官方 GitHib filecoin-project/FIPS (opens new window) 项目中查看原型,也可以看下我之前的一篇博客 矿工应该了解的几个 Filecoin 重要的 FIP。

        接下来咱们重点讲一下本次的 FIP-0008 和 FIP-0013 实现,因为这个是跟矿工运维人员密切相关的内容。

        备注:本文所用到的代码为 filecoin-project/lotus (opens new window) 项目 的 Master 分支 CommitID 为: 715176698ffa1ac089963765d65a2dd355364114

        # 1. 消息聚合配置

        # Sealing 新增配置

        [Sealing]
          FinalizeEarly = false
          BatchPreCommits = true
          MaxPreCommitBatch = 256
          MinPreCommitBatch = 1
          PreCommitBatchWait = "24h0m0s"
          PreCommitBatchSlack = "3h0m0s"
          AggregateCommits = true
          MinCommitBatch = 4
          MaxCommitBatch = 819
          CommitBatchWait = "24h0m0s"
          CommitBatchSlack = "1h0m0s"
          TerminateBatchMax = 100
          TerminateBatchMin = 1
          TerminateBatchWait = "5m0s"
        
        参数名称 参数说明
        FinalizeEarly 是否提前发起 FinalizeSector 操作,也就是在 C2 上链之前就执行 FinalizeSector 操作。
        BatchPreCommits 是否启用 PreCommitSector 消息聚合功能
        MaxPreCommitBatch 单条 SubmitPreCommitBatch 消息最多聚合 PreCommitSector 消息条数,注意: 每个矿工每年聚合消息的数量最多不得超过 1EiB 的算力。
        MinPreCommitBatch 单条 SubmitPreCommitBatch 消息最少聚合 PreCommitSector 消息条数
        PreCommitBatchWait SubmitPreCommitBatch 消息最大等待时长,超过时间自动提交
        PreCommitBatchSlack SubmitPreCommitBatch 强制提交缓存时间,默认 3h,也就是说如果当前 SubmitPreCommitBatch 聚合消息中有扇区在 3 小时内过期的话就立即强制提交。该值不得超过 31.5h
        AggregateCommits 是否启动 ProveCommitSector 消息聚合功能
        MinCommitBatch 单条 SubmitCommitAggregate 消息少多聚合 ProveCommitSector 消息条数
        MaxCommitBatch 单条 SubmitCommitAggregate 消息最多聚合 ProveCommitSector 消息条数
        CommitBatchWait SubmitCommitAggregate 消息最大等待时长,超过时间自动提交。最大值为 30 天
        CommitBatchSlack SubmitCommitAggregate 强制提交缓冲时间,默认 1h,也就是说如果当前 SubmitCommitAggregate 聚合消息中有扇区/订单在 1 小时内过期的话就立即强制提交。该值设置的越小,消息提交的失败率越高。
        TerminateBatchMax 批量终止扇区聚合消息最多条数
        TerminateBatchMin 批量终止扇区聚合消息最少条数
        TerminateBatchWait 批量终止扇区聚合消息最长等待时间,超时自动提交

        # Gas Fee 新增配置

        [Fees]
        
          [Fees.MaxPreCommitBatchGasFee]
            Base = "0.025 FIL"
            PerSector = "0.025 FIL"
          [Fees.MaxCommitBatchGasFee]
            Base = "0.05 FIL"
            PerSector = "0.05 FIL"
        

        这些配置都非常容易看懂,就不解释了。

        另外:配置的定义的源码分别在 lotus 项目中 node/config/def.go (opens new window) 以及 specs-actors 项目中的 policy.go (opens new window) 文件中,有兴趣的同学可以去看下源码。

        # 2. 消息聚合操作

        由于线上的网络目前还不支持新代码,因此我们在本地搭建 dev-net 测试。由于篇幅原因,怎么搭建本地测试网络这里就略过了, 如果不知道怎么搭建本地网络的,请参考官方文档 Run a Filecoin local dev-net (opens new window)。

        1. 批量操作的命令在 lotus-miner sectors batching 子命令中:

        2. 查看 lotus-miner info 的时候会多出两种状态的扇区 SubmitPreCommitBatch 和 SubmitCommitAggregate

        3. 查看 SubmitPreCommitBatch 和 SubmitCommitAggregate 消息

          sector list 里面也可以看到:

        4. 默认 SubmitPreCommitBatch 和 SubmitCommitAggregate 消息是要累积到最大扇区数或者有扇区过期的时候才会提交的,你也可以通过下面的命令手动提交:

          提交 SubmitPreCommitBatch 消息:

          提交 SubmitCommitAggregate 消息:

        # 参考阅读

        • https://github.com/filecoin-project/lotus/releases/tag/v1.10.0
        • https://github.com/filecoin-project/community/discussions/74#discussioncomment-885578

        本站博文如非注明转载则均属作者原创文章,引用或转载无需申请版权或者注明出处,如需联系作者请加微信: geekmaster01

        2021 年最佳和最快的 SSD Lotus 1.10.0 FinalizeFailed Bug 修复方法