FileCoin 挖矿教程之四:日常维护

Posted weixin_46596227

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FileCoin 挖矿教程之四:日常维护相关的知识,希望对你有一定的参考价值。

自定义存储布局

本指南描述了如何根据需要和可用硬件为 Lotus Miner 指定自定义存储位置。

如果您在矿机初始化期间使用了 --no-local-storage 标志,则应指定用于密封(推荐使用快速 SSD)和长期存储的磁盘位置。

Lotus Miner 跟踪在 ~/.lotusminer/storage.json(或 $LOTUS_MINER_PATH/storage.json)中定义的存储位置,并使用 ~/.lotusminer 路径作为默认路径。

在初始化存储位置时,会创建一个 <path-to-storage>/sectorstorage.json 文件,其中包含分配给该位置的 UUID,以及它是否可用于密封或存储。

自定义密封位置

密封扇区时使用密封存储位置。它应该是一个非常快的存储介质,这样磁盘就不会成为延迟密封过程的瓶颈。它可以指定为:

lotus-miner storage attach --init --seal <PATH_FOR_SEALING_STORAGE>

自定义存储位置

密封过程完成后,密封扇区将移动到存储位置,可以指定如下:

lotus-miner storage attach --init --store <PATH_FOR_LONG_TERM_STORAGE>

该位置可以由大容量(尽管速度较慢)旋转磁盘构成。

列出存储位置

lotus-miner storage list

更新位置

要将数据从一个位置移动到另一个位置,请按照 下面的Miner 生命周期指南中的说明进行操作。

要完全删除一个位置,请手动编辑 storage.json 并重新启动您的矿工。

生命周期

如何安全地对 Lotus 矿机进行维护。

这些操作通常与维护和升级有关。鉴于矿工需要以连续的方式向链提交证明,同时运行时间长且成本高的操作,操作员熟悉如何管理矿工生命周期中的一些事件非常重要,这样才能最大程度地保证它们的执行。

安全重启矿工守护进程

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

  1. 矿工计划离线多长时间。
  2. 矿工证明期限的存在和分布。
  3. 开放的支付渠道和正在进行的检索交易正存在中。
  4. 正在进行的密封操作。

减少离线时间

鉴于需要不断地向网络发送证明,矿工应该尽可能少地离线。离线时间包括计算机完全重新启动矿工守护程序所需的时间。出于这些原因,我们建议您执行以下步骤:

  • 在重新启动 Lotus Miner 进程之前重建、安装任何升级。
  • 确保校样参数位于 NVMe 驱动器或 SSD 等快速存储驱动器上。这些是矿工第一次启动时下载的证明参数,并保存到 var/tmp/filecoin-proof-parameters$FIL_PROOFS_PARAMETER_CACHE 如果定义了环境变量。

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

在仍有待处理的操作时关闭您的矿机可能会使您的矿机遭到 惩罚。通过运行 lotus-miner 证明信息来检查没有挂起的操作。如果任何截止日期显示过去的区块高度,请不要重新启动。

在下面的例子中,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)

在下面的示例中,矿工可以安全地重新启动,因为没有任何截止日期早于 Current Epoch。您有大约 45 分钟的时间,矿工必须重新上线以宣布故障。这称为截止日期故障截止。如果矿工没有故障,你大约有一个小时。

$ 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示例显示了当前证明窗口和截止日期的信息。如果您想查看任何即将到来的截止日期,您可以使用:

$ lotus-miner proving deadlines

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

检查和暂时禁用交易

在停止矿工之前,检查您的交易状态以确保矿工没有接收数据或为客户检索数据:

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

为防止在您等待当前截止日期完成工作时出现新交易,您可以禁用存储和检索交易。这确保了矿工在关闭时不会发现自己处于新交易的中间:

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

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

重启 miner

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

lotus-miner stop

当使用 systemd 的时候,运行下面的语句:

systemctl stop lotus-miner

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

重新启动 workers

Lotus seal workers可以随时重新启动,但如果他们在其中一个封印步骤中,则操作将再次开始(从最后一个检查点开始)。

在完全从头开始密封之前(pre-commit1 阶段),最多有 3 次尝试来完成 precommit2 操作。

更改存储位置

如果您希望将 workers 相关存储的位置更改为不同的路径,对于 minerseal workers,请确保 Lotus miner 和任何 seal workers 都知道新位置。

lotus-miner storage list

上述命令将为您提供矿工已知的存储位置的概览。此信息存储在 ~/.lotusminer/storage.json (或 $LOTUS_MINER_PATH/storage.json 如果已定义)。Lotus Seal Workers 将所有数据存储在 ~/.lotusworker 文件夹(或 $LOTUS_WORKER_PATH 如果已定义)中。

如果您希望更改 Lotus 矿工的任何存储位置,请执行以下步骤:

  1. 将您的矿工设置为拒绝任何新的存储和检索交易,以便在复制期间不会修改存储。
  2. 在矿工运行时按原样复制数据,将其保留在原始位置。由于这通常涉及移动大量存储,因此需要时间。在关键时刻,我们的矿工将继续处理它的任务。
  3. 复制数据后,按照上述建议停止 miner 。
  4. 使用数据的新位置编辑 storage.json 并使旧数据对 miner 不可用(通过重命名或卸载)以确保在您启动它时不再使用它。
  5. 启动 miner
  6. 验证一切正常。如果是这样,您可以丢弃旧副本。

如果您希望扩展您的存储空间,同时保持最新状态,您可以随时通过 lotus storage attach 向 Lotus 矿工添加额外的存储位置(请参阅 --help)。

如果您想更改任何 Lotus Worker 的存储位置:

  1. 停止 Lotus Worker。
  2. 将数据移动到新位置。
  3. 相应地设置 $LOTUS_WORKER_PATH
  4. 再次启动 workers

workers 在停止之前执行的任何操作都将从最后一个检查点(可以重新启动的点,这可能对应于当前密封阶段的开始)重新启动。

当前不支持在不同 workers 之间移动数据。将 workers 存储文件夹移动到不同的 workers 机器将不起作用,因为 miner 希望正在进行的密封操作由他们首先分配的 workers 完成。

使用不同的 Lotus 节点

如果您计划在 miner 使用的 Lotus 节点上运行维护,或者如果您需要故障转移到不同的 Lotus 节点,因为当前节点不起作用,请执行以下步骤:

  1. 停止miner
  2. FULLNODE_API_INFO 环境变量设置为新节点的位置:
export FULLNODE_API_INFO=<api_token>:/ip4/<lotus_daemon_ip>/tcp/<lotus_daemon_port>/http

了解如何获取令牌

  1. 如果您尚未导出钱包,请立即从旧节点导出它们,然后将它们重新导入到新的 Lotus 节点。
  2. 启动miner。它现在应该与新的 Lotus 节点通信,并且由于它具有与旧节点相同的钱包,因此它应该能够代表miner 执行必要的操作。

确保您的新 Lotus 节点已完全同步。

以上是关于FileCoin 挖矿教程之四:日常维护的主要内容,如果未能解决你的问题,请参考以下文章

FileCoin 挖矿教程 性能瓶颈分析

FileCoin 挖矿教程 Lotus 源码大致的结构目录

FileCoin 挖矿教程之三:发送与接收 FIL

FileCoin 挖矿教程之二:钱包设置的详细说明

FileCoin挖矿教程之六:自定义存储布局

FileCoin挖矿教程之六:自定义存储布局