# 原语云 Lotus 版本更新记录

如果您还在使用官方的 Lotus 程序,我们建议您可以从现在开始使用原语的 Lotus 程序,我们对 Lotus 调度层代码(Golang)和底层(Rust)都进行了一些优化,可以大大提升算力机的封装效率, 提升集群的稳定性和计算产出。

原语优化版 Lotus 软件的版本更新以及优化记录如下:

# v1.15.0(2022-04-18)

更新内容

  1. 新增 daemon 集群功能,解决 daemon 节点单点故障和负载均衡问题。
  2. 增加 Owner 私钥验证,如果 daemon 节点导入了 Owner 私钥,那么 Miner 将启动失败,可以通过导出 RUN_WITH_OWNER_KEY_ONLINE=true 环境变量强制启动。详情请参考 启动 lotus-miner
  3. 优化时空证明和爆块证明任务超时处理。
  4. 新增异常状态扇区强制删除功能,对于那些状态错误导致无法正常删除的扇区,可执行 yy_lotus-miner sectors remove --really-do-it --force <sector-num> 删除。
  5. 修复了其他若干已知的 Bug。

# v1.15.0(2022-03-25)

更新内容

  1. 优化 winning-workerwindow-worker 的启动方式,不再需要拷贝 Miner 的元数据了,你只需把主 Miner 所挂载的存储设备同时挂载一份到 winning-workerwindow-worker 上即可(注意,挂载目录必须同主 Miner 保持一致),元数据证明 Worker 会自动生成。
  2. 新增集群平滑升级的功能,大型集群可以完全做到安全平滑升级,升级过程中时空证明和爆块功能不受影响。
  3. 优化扇区文件自动备份功能,新增扇区的 update/update-cache 文件备份配置。
  4. 优化 winning-worker 的 warmup 功能,选举 winningPoSt 扇区的时候自动过滤错误扇区,避免 warmup failed 错误。
  5. 优化 winning-worker 任务调度算法,优先使用远程证明 Worker 执行 WinningPoSt 任务。
  6. 部分功能和组件的重构,修复了若干已知的 Bug。

# v1.14.1(2022-02-23)

更新内容:

  1. 新增功能: 扇区恢复功能,这是本次更新的核爆功能,对于那些不包含订单的扇区,如果数据丢失或者损坏可以不用终止扇区了,直接使用扇区恢复命令(yy_lotus-miner sectors recover <sector-number>)重新封装,恢复扇区,操作非常简单,不需要额外的配置操作。
  2. 新增功能: 新增 lotus-miner storage set 命令,无需重启即可动态设置存储的相关参数,比如你某个存储设备已经存满了,你不想再往里面存入扇区,只需将该存储的 canStore 属性设置成 false 即可。
  3. 功能优化: 重构了多 Miner 方案,引入了 Proving Worker(证明Worker) 角色,专门用于做爆块证明和时空证明,支持横向扩展,可添加多个爆块证明 Worker 和时空证明 Worker,调度程序会自动寻找可用的 Worker 并将相应的计算任务派发给它,并且支持自动冗余和错误重试。
  4. 功能优化: 时空证明 Partition 自动拆分计算,并合并结果提交,再大的集群, 管理起来也能举重若轻,只需要多启动几台 Window-post Worker 即可。
  5. 功能优化: 优化 Miner 启动验证,程序会自动校验 Miner 的相关配置,如果配置不正确则会启动失败,确保只要集群启动成功,所有的配置都是正确的,避免一些暗坑和低级错误,比如存储忘记挂载,或者主 Miner 和爆款证明 Worker 扇区声明不一致等。
  6. 功能优化: 优化集群监控功能,新增集群预警信息推送功能,只要关注原语云微信服务号,就能第一时间掌握集群动态。优化了原语云集群监控页面的布局,并新增了 证明 Worker 列表证明任务列表
  7. 功能优化: 优化证明计算的 GPU 分组程序,可以按照 GPU 数量分组,比如 2 个 GPU 一组或者 1 个 GPU 一组,也可以完全自定义分组。
  8. 其他优化: 修复了若干已知的 Bug。

# v1.13.0(2021-10-22)

更新内容:

  1. 功能优化: 进一步优化 GPU 锁(Rust),支持对 GPU 进行任意分组,每组 GPU 运行一个任务,相互之间不干扰。
  2. 新增功能: 对于单 Miner 的小集群,可以分别为爆块证明和时空证明指定不同的 GPU 组,杜绝 GPU 资源竞争。
  3. 功能优化: 优化 C2 程序(Rust),自动化判断 GPU 的类型并匹配最佳的调优参数,目前已经兼容大多数主流 GPU(2080Ti/3080/3090等)。
  4. 功能优化: 优化调度层代码(Golang),支持设置任务间隔,强制错峰运行,使得任务的并行数增加,减少因任务并发导致的卡顿现象。目前 1TiB 内存 PC1 任务的并行数可以到达 14-16 个(根据任务间隔时间而定)。
  5. 新增功能: 新增 Lotus 集群监控功能,对集群的同步,任务调度,存储等进行全方位的监控,不用登录集群 Miner,通过原语的监控控制台就可以轻松了解集群的运行状况。

本次优化根据客户反馈的实跑数据,AMD7542 + 1TiB RAM + 3080GPU x 1,实跑数据每天的算力增速是:2.75TiB

# v1.11.3(2021-09-22)

更新内容:

  1. 功能优化: 优化 PC1 任务绑核功能,支持自定义 core groups。
  2. 新增功能: 支持为每个进程(PC2,C2,AP)设置 CPU affinity(绑核)。
  3. 新增功能: 优化 PC2 GPU Selector,修复 GPU 锁获取出错的 Bug。
  4. 新增功能: 支持为指定的进程设置系统参数,如 RLIMIT_CPU, RLIMIT_NOFILE, RLIMIT_CORE 等。
  5. Bug修复: lotus-miner storage attach 添加存储之后不生效的问题。
  6. 功能优化: 添加客户端 API,同时声明某个 sector 的 cache 和 sealed 文件路径。
  7. 新增功能: 原语云控制台上线集群监控模块,添加 daemon, miner 以及存储异常监控预警功能。

# v1.11.1(2021-09-02)

更新内容:

  1. 兼容官方 v1.11.1 版本所有新增功能。
  2. 修复 PC2 任务 GPU 死锁的 Bug。
  3. 优化 lotus-smart-pledge 应用的 base-fee 自动检测,如果设置为-1就不检测。
  4. 修复 miner 打开 FinalizeEarly=true 后的爆 FinalizeFailed 的 Bug。
  5. lotus-miner 启动时候自动设置好 max-open-files 参数。
  6. 添加最新版 qark-client 支持,使用 qark-clienthttpd 接口来下载 api/token
  7. 更新原语云文档,新增快速开始文档,新手也能够根据文档迅速搭建好 Lotus 集群。
  8. 优化爆块流程和算法,最大程度避免了孤块的产生,做到不丢快。

# v1.10.1(2021-08-18)

更新内容:

  1. 自定义每台 Worker 的 AP,PC1,PC2,C2 以及 Fetch 的任务数,并且支持动态调整机器的任务数量,无需重启 Worker。
  2. 支持多种任务调度策略:深度优先,广度优先,轮询以及智能调度(Smart)策略 最大限度的让你的机器做到工作饱和,提高产出。
  3. 支持 AP,PC1 任务同机器绑定,PC1,PC2 任务同机器绑定,做到零数据传输。
  4. 支持同一台机器 PC2 和 C2 分别绑定不同的 GPU 计算,优化资源利用,解决 GPU 资源锁定和抢占问题。
  5. 支持同一台机器 C2 多卡并行计算,充分利用机器的资源,减少基础投入成本。
  6. 支持手动 Declare(声明) 和 Drop(手动声明) 扇区,对扇区的存储路径进行人工调整,无需重启 Miner。
  7. 支持集群扇区文件的读写分离,解决算力增速较大的时候由于网络瓶颈带来的时空证明扇区读取超时的问题。
  8. 网关机器支持挂载多个存储路径,自动负载均衡,均衡写入各个存储设备。支持对密封后的扇区文件 Sealed 和 Cache 自动实时备份。
  9. 支持手动触发时空证明挑战,方便线下排查时空证明故障。
  10. 对于中大型集群,支持多 Miner 方案
    • full-miner: 全功能 Miner,集任务调度,时空证明,爆块等全部功能于一身,适用于小型 Miner 。
    • winpost-miner: 爆块 Miner,只运行 WinningPoSt 程序模块,只需要 1 台即可。
    • wndpost-miner: 时空证明 Miner,只运行 WindowPoSt 程序模块,根据你集群的大小,可以运行一台或者多台,数量灵活扩展。
上次更新: 2022/4/22 17:51:22