FileCoin 挖矿教程之四:日常维护
Posted weixin_46596227
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FileCoin 挖矿教程之四:日常维护相关的知识,希望对你有一定的参考价值。
Lotus Miner: 自定义存储布局与生命周期
自定义存储布局
本指南描述了如何根据需要和可用硬件为 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 矿机进行维护。
这些操作通常与维护和升级有关。鉴于矿工需要以连续的方式向链提交证明,同时运行时间长且成本高的操作,操作员熟悉如何管理矿工生命周期中的一些事件非常重要,这样才能最大程度地保证它们的执行。
安全重启矿工守护进程
关闭矿机并重新启动它的过程很复杂。需要考虑几个因素才能在所有保证下做到这一点:
- 矿工计划离线多长时间。
- 矿工证明期限的存在和分布。
- 开放的支付渠道和正在进行的检索交易正存在中。
- 正在进行的密封操作。
减少离线时间
鉴于需要不断地向网络发送证明,矿工应该尽可能少地离线。离线时间包括计算机完全重新启动矿工守护程序所需的时间。出于这些原因,我们建议您执行以下步骤:
- 在重新启动 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 相关存储的位置更改为不同的路径,对于 miner 或seal 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 矿工的任何存储位置,请执行以下步骤:
- 将您的矿工设置为拒绝任何新的存储和检索交易,以便在复制期间不会修改存储。
- 在矿工运行时按原样复制数据,将其保留在原始位置。由于这通常涉及移动大量存储,因此需要时间。在关键时刻,我们的矿工将继续处理它的任务。
- 复制数据后,按照上述建议停止 miner 。
- 使用数据的新位置编辑
storage.json
并使旧数据对 miner 不可用(通过重命名或卸载)以确保在您启动它时不再使用它。 - 启动 miner
- 验证一切正常。如果是这样,您可以丢弃旧副本。
如果您希望扩展您的存储空间,同时保持最新状态,您可以随时通过 lotus storage attach
向 Lotus 矿工添加额外的存储位置(请参阅 --help)。
如果您想更改任何 Lotus Worker 的存储位置:
- 停止 Lotus Worker。
- 将数据移动到新位置。
- 相应地设置
$LOTUS_WORKER_PATH
- 再次启动 workers
workers 在停止之前执行的任何操作都将从最后一个检查点(可以重新启动的点,这可能对应于当前密封阶段的开始)重新启动。
当前不支持在不同 workers 之间移动数据。将 workers 存储文件夹移动到不同的 workers 机器将不起作用,因为 miner 希望正在进行的密封操作由他们首先分配的 workers 完成。
使用不同的 Lotus 节点
如果您计划在 miner 使用的 Lotus 节点上运行维护,或者如果您需要故障转移到不同的 Lotus 节点,因为当前节点不起作用,请执行以下步骤:
- 停止miner
- 将
FULLNODE_API_INFO
环境变量设置为新节点的位置:
export FULLNODE_API_INFO=<api_token>:/ip4/<lotus_daemon_ip>/tcp/<lotus_daemon_port>/http
请了解如何获取令牌。
- 如果您尚未导出钱包,请立即从旧节点导出它们,然后将它们重新导入到新的 Lotus 节点。
- 启动miner。它现在应该与新的 Lotus 节点通信,并且由于它具有与旧节点相同的钱包,因此它应该能够代表miner 执行必要的操作。
确保您的新 Lotus 节点已完全同步。
以上是关于FileCoin 挖矿教程之四:日常维护的主要内容,如果未能解决你的问题,请参考以下文章