69  
安全重启矿工守护程序进程lotus-miner
作者: 文艺范儿 于 2021年08月21日 发布在分类 / 挖矿 / wd 下,并于 2021年08月21日 编辑
lotus

安全重启矿工守护程序进程

关闭矿工程序并重新启动它的过程很复杂。 要想在所有保证中都能做到这一点,需要考虑以下几个因素:

  • 矿工程序计划离线多长时间。
  • 矿工程序证明期限(即截止日期 - Deadline)的存在和分布。
  • 开放的支付渠道和正在进行的检索交易的存在。
  • 正在进行的密封操作。

减少离线时间

考虑到需要不断向网络发送证明,矿工应该尽可能少地处于离线状态。 离线时间 Offline-Time 包括计算机完全重新启动矿工守护程序所需的时间。 由于这些原因,我们建议您按照以下步骤操作:

  1. 重新启动 Lotus Miner 进程之前,请重新构建并安装所有升级。
  2. 确保证明参数位于快速存储驱动器(例如 NVMe 驱动器或 SSD)上。 这些是首次启动矿工程序时下载的证明参数,并且已经保存到 var/tmp/filecoin-proof-parameters,或者 $FIL_PROOFS_PARAMETER_CACHE (如果定义了环境变量)。

确保当前截止日期(Deadline)的证明已发送

在仍有待处理操作的情况下关闭矿工程序可能会导致矿工被惩罚。 通过运行 lotus-miner proving info 来检查是否有未决操作。 如果任何截止日期(Deadline)显示了过去的 区块高度 block height ,请不要重新启动。

在下面的例子中,Deadline Open 是 454, 早于 Current Epoch (当前纪元)的 500。这时不应关闭或重启该矿工程序:

$ lotus-miner proving info

Miner: t01001
Current Epoch:           500
Proving Period Boundary: 154
Proving Period Start:    154 (2h53m0s ago)
Next Period Start:       3034 (in 21h7m0s)
Faults:      768 (100.00%)
Recovering:  768
Deadline Index:       5
Deadline Sectors:     0
Deadline Open:        454 (23m0s ago)
Deadline Close:       514 (in 7m0s)
Deadline Challenge:   434 (33m0s ago)
Deadline FaultCutoff: 384 (58m0s ago)

在下一个示例中,由于没有 Deadlines 早于 Current Epoch,因此可以安全地重启矿机。 您需要大约 45 分钟的时间,矿工程序才能恢复在线以声明故障。 这称为 Deadline FaultCutoff。 如果矿工程序没有故障,那么您大约有一个小时的时间。

$ lotus-miner proving info

Miner: t01000
Current Epoch:           497
Proving Period Boundary: 658
Proving Period Start:    658 (in 1h20m30s)
Next Period Start:       3538 (in 25h20m30s)
Faults:      0 (0.00%)
Recovering:  0
Deadline Index:       0
Deadline Sectors:     768
Deadline Open:        658 (in 1h20m30s)
Deadline Close:       718 (in 1h50m30s)
Deadline Challenge:   638 (in 1h10m30s)
Deadline FaultCutoff: 588 (in 45m30s)

上面的 proving info(证明信息)示例显示了当前证明窗口和截止日期 Deadline 的信息。 如果您希望看到任何即将到来的截止日期 Deadline ,可以使用:

$ lotus-miner proving deadlines

每行对应一个截止日期(30 分钟,涵盖 24 小时)。 当前的已标记。 这有时对于查找一天中的矿工不必向链提交任何证明的时间很有用。

检查并暂时禁止交易

在停止该矿工程序之前,请检查交易状态,以确保该矿工程序未正在接收客户的数据或未正在检索客户的数据:

lotus-miner storage-deals list
lotus-miner retrieval-deals list
lotus-miner data-transfers list

为了防止在等待当前截止日期 Deadline 之前完成新交易时,可以暂时禁止存储交易和检索交易。 这样可以确保关闭时,矿工程序不会发现自己正处于新交易期间:

lotus-miner storage-deals selection reject --online --offline
lotus-miner retrieval-deals selection reject --online --offline

矿工程序完成重启后,可以使用以下方式重置交易:

lotus-miner storage-deals selection reset
lotus-miner retrieval-deals selection reset

检查正在进行的密封操作

要获得当前扇区和状态的概述,请运行:

lotus-miner sectors list

任何正在进行的密封操作将从最后一个检查点重新开始,通常对应于当前密封阶段的开始。 鉴于密封非常耗时,因此在重新启动矿工程序之前,应等待接近完成的某些阶段。

Restarting the miner

考虑到上述所有因素,您可以决定关闭矿工程序的最佳时机:

lotus-miner stop

您可以根据需要尽快重启矿工程序。 工作者程序不需要重新启动,因为他们会在矿工程序恢复运行时自动重新连接到该矿机。 但是,如果要在关闭矿工程序的同时升级节点,则需要重新启动机器。

重启工作者程序

可以随时重新启动 Lotus 密封工作者程序(Seal Worker),但是如果他们处于其中一个密封步骤的期间,则该操作将再次开始(从最后一个检查点开始)。

WARNING

在从头开始完全密封之前 (PreCommit1 阶段) ,最多可以尝试三种操作来完成 PreCommit2 操作。




 推荐知识

 历史版本

修改日期 修改人 备注
2021-08-21 22:58:50[当前版本] 文艺范儿 格式调整
2021-08-21 22:56:33 文艺范儿 创建版本

  目录
    文艺知识分享平台 - 4.3.0 - 文艺范儿