Filecoin 运维(2) – 环境变量和常用运维操作

本文介绍 Filecoin 挖矿的环境变量,以及一些常用的运维操作。

## 一、常用环境变量 Lotus 数据目录: `LOTUS_PATH` “`bash export LOTUS_PATH=/gamma/lotus/data “` Miner 数据目录:`LOTUS_STORAGE_PATH` “`bash export LOTUS_STORAGE_PATH=/gamma/lotus-storage-miner/data “` IPFS 网关地址: `IPFS_GATEWAY`, 用于下载复制证明参数加速 “`bash export IPFS_GATEWAY=https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/ “` 临时文件夹路径: `TMPDIR` “`bash export TMPDIR=/cache/tmp “` proof 证明参数路径: `FIL_PROOFS_PARAMETER_CACHE` “`bash export FIL_PROOFS_PARAMETER_CACHE=/gamma/filecoin-proof-parameters “` PreCommit1 proof parents 缓存路径(可以减少 56G 内存) “`bash export FIL_PROOFS_PARENT_CACHE=/gamma/filecoin-parents “` 最大化内存参数: `FIL_PROOFS_MAXIMIZE_CACHING` “`bash export FIL_PROOFS_MAXIMIZE_CACHING=1 “` 使用 GPU 进行 Precommit2 加速: `FIL_PROOFS_USE_GPU_COLUMN_BUILDER` “`bash export FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 “` 开启 Rust 日志: “`bash export RUST_LOG=Debug “` 启用源码编译底层库: “`bash export FFI_BUILD_FROM_SOURCE=1 “` 启动小扇区支持:(一般用于本地测试网络) “`bash export FIL_USE_SMALL_SECTORS=true “` 设置自定义 GPU 参数: “`bash export BELLMAN_CUSTOM_GPU=”GeForce RTX 2070 SUPER:2560″ “` ## 二、常用运维操作 ### 1. lotus daemon 操作 #### 1.1 查看节点信息 “`bash # 查看本节点所监听的地址: lotus net listen /ip4/127.0.0.1/tcp/37103/p2p/12D3KooWNvqwb1gbgMNLFXtMAXP3ZwgTVgaLXbDUNqpWDQuKd1sh /ip4/192.168.1.101/tcp/37103/p2p/12D3KooWNvqwb1gbgMNLFXtMAXP3ZwgTVgaLXbDUNqpWDQuKd1sh /ip6/::1/tcp/46335/p2p/12D3KooWNvqwb1gbgMNLFXtMAXP3ZwgTVgaLXbDUNqpWDQuKd1sh # 查看连接的节点列表: lotus net peers “` #### 1.2 手动连接其他节点 这个在你同步的时候发现自动同步失败,无法获取可用节点的时候特别有用: “`bash lotus net connect {PEER_ADDR} “` {PEER_ADDR} 指的是节点连接地址,如 `/ip4/119.33.53.66/tcp/37103/p2p/12D3KooWNvqwb1gbgMNLFXtMAXP3ZwgTVgaLXbDUNqpWDQuKd1sh`。 这个在你同步的时候无法正常同步链上数据时候特别有用, 这时可以试下在启动 daemon 的时候禁用自动连接 peers ,然后手动连接到一个正常节点,例如: “`bash lotus daemon –bootstrap=false lotus net connect {PEER_ADDR} “` {PEER_ADDR} 可以是任意一个能够正常同步数据的节点地址。 #### 1.3 查看链同步状态 “`bash lotus sync status # 手动这是链的高度 lotus chain sethead –epoch=3960 “` 如果出现 `Error` 则说明链同步有问题,如果状态是 `completed`,则说明链同步已经完成,可以进行其他操作了。 #### 1.4 钱包操作 “`bash # 创建一个 BLS 钱包 lotus wallet new bls # 查看钱包列表 lotus wallet list # 查看钱包余额 lotus wallet balance “` #### 1.5 手动下载 proof 参数 “`bash # 首先记得开启京东云的代理 export IPFS_GATEWAY=”https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/” # 下载 2KiB 扇区对应的 Proof 参数 ./lotus fetch-params –proving-params 2KiB 下载 32GiB 扇区对应的 Proof 参数 ./lotus fetch-params –proving-params 32GiB “` 目前所有 V27 的参数是 209GB,32GB 扇区对应的参数大小为 103GB。 ### 2. lotus-storage-miner 操作 #### 2.1 查看矿工状态 “`bash lotus-storage-miner info Miner: t0109653 Sector Size: 32 GiB Byte Power: 1.812 TiB / 4.888 PiB (0.0362%) Actual Power: 1.81 Ti / 4.73 Pi (0.0374%) Committed: 1.844 TiB Proving: 1.812 TiB (32 GiB Faulty, 1.69%) Expected block win rate: 6.4627/day (every 3h42m48s) Miner Balance: 128.044817705754006786 PreCommit: 0 Locked: 128.043278061722026245 Available: 0.001539644031980541 Worker Balance: 49.947643260499744805 Market (Escrow): 0.000000000000004064 Market (Locked): 0.000000000000004064 Sectors: Total: 72 Proving: 58 PreCommit1: 12 PreCommit2: 1 SealPreCommit1Failed: 1 “` 这是我们自己测试矿工的 `info`,目前已经跑了 2 天了。这里大概解释一下各项数据的意思: * Byte Power: 已完成 Proving 的算力 * Actual Power: 实际有效算力 * Committed: 已完成 Commiting 的算力 * 32 GiB Faulty: 被标记为 Faulty 扇区总大小,也就是无效算力。 * Expected block win rate: 预期竞争出块胜出的概率,`6.4627/day` 标识平均每天可以出 6 个块。 * Miner Balance: 当前挖矿收益(广大矿工最关注的) * Locked: 挖矿收益锁仓的份额(前期的收益几乎全部锁仓了) 其他都是大家一眼都能看懂的,这里就不解释了。 #### 2.2 查看扇区状态 “`bash # 列举所有扇区信息: lotus-storage-miner sectors list # 查看某个扇区的当前状态 lotus-storage-miner sectors status {SectorID} # 查看某个扇区的历史状态 lotus-storage-miner sectors status –log {SectorID} “` #### 2.3 修改扇区的状态 “`bash lotus-storage-miner sectors update-state –really-do-it=true {SectorID} {NewState} # 例如某个 sector 密封失败一直卡在那里, # 这时你可以尝试设置其状态为 ”, 就可以跳过这扇区。 lotus-storage-miner sectors update-state –really-do-it=true 0 FailedUnrecoverable “` <div class=”custom-block danger”> 注意: update-state 需要谨慎操作,因为操作不当可能会发生一些难以预料的奇怪的错误。 </div> #### 2.4 查看 Worker 列表 “`bash lotus-storage-miner workers list “` #### 2.5 增加存储路径 “`bash # 设置数据存储路径,该路径用来存储最终密封好的数据 # 执行该命令可能需要一点时间等待 lotus-storage-miner storage attach –store –init /path/to/persistent_storage # 设置密封扇区的存储路径,密封完成之后该路径下的数据会被自动清空,相当于临时目录 # 执行该命令可能需要一点时间等待 lotus-storage-miner storage attach –seal –init /path/to/fast_cache “` **以上两个命令都是在启动了 miner 之后才可以执行,是一种动态添加存储路径的方式,非常灵活**。 你还可以在命令中添加权重 –weight=10,默认权重是 10。 执行该命令后,可通过以下命令查看存储列表: “`bash lotus-storage-miner storage list “` ### lotus-seal-worker 操作 启动 Worker 命令: “`bash lotus-seal-worker run –address=192.168.1.100:2345 –precommit1=true –precommit2=false –commit=false “` 启动 worker 需要注意以下几点: 1. 需要给 worker 指定一个在局域网可以访问的 IP 地址以及一个本机未被使用的端口。 2. precommit1、precommit2 和 commit 默认是启用的,如果想要禁用,可以设置为 false 3. **需要注意机器的内存与功能的划分**,比如: * 如果你打算让当前 Worker 参与 P1,则至少需要 128GB 内存。 * 如果你打算让当前 Worker 参与 P2,则至少需要 64GB 内存。 * 如果你打算让当前 Worker 参与 C2,则至少需要 192GB 内存。 > 本文首发于:[`小一辈无产阶级码农`](http://www.r9it.com/) 原文链接:http://www.r9it.com/20200618/filecoin-env-and-operation.html ## 参考链接 * [https://docs.lotu.sh/en+mining](https://docs.lotu.sh/en+mining) * [https://docs.lotu.sh/en+lotus-seal-worker](https://docs.lotu.sh/en+lotus-seal-worker)

一、常用环境变量

Lotus 数据目录: LOTUS_PATH

export LOTUS_PATH=/gamma/lotus/data

Miner 数据目录:LOTUS_STORAGE_PATH

export LOTUS_STORAGE_PATH=/gamma/lotus-storage-miner/data

IPFS 网关地址: IPFS_GATEWAY, 用于下载复制证明参数加速

export IPFS_GATEWAY=https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/

临时文件夹路径: TMPDIR

export TMPDIR=/cache/tmp

proof 证明参数路径: FIL_PROOFS_PARAMETER_CACHE

export FIL_PROOFS_PARAMETER_CACHE=/gamma/filecoin-proof-parameters

PreCommit1 proof parents 缓存路径(可以减少 56G 内存)

export FIL_PROOFS_PARENT_CACHE=/gamma/filecoin-parents

最大化内存参数: FIL_PROOFS_MAXIMIZE_CACHING

export FIL_PROOFS_MAXIMIZE_CACHING=1

使用 GPU 进行 Precommit2 加速: FIL_PROOFS_USE_GPU_COLUMN_BUILDER

export FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1

开启 Rust 日志:

export RUST_LOG=Debug

启用源码编译底层库:

export FFI_BUILD_FROM_SOURCE=1

启动小扇区支持:(一般用于本地测试网络)

export FIL_USE_SMALL_SECTORS=true

设置自定义 GPU 参数:

export BELLMAN_CUSTOM_GPU="GeForce RTX 2070 SUPER:2560"

二、常用运维操作

1. lotus daemon 操作

1.1 查看节点信息

# 查看本节点所监听的地址:
lotus net listen

/ip4/127.0.0.1/tcp/37103/p2p/12D3KooWNvqwb1gbgMNLFXtMAXP3ZwgTVgaLXbDUNqpWDQuKd1sh
/ip4/192.168.1.101/tcp/37103/p2p/12D3KooWNvqwb1gbgMNLFXtMAXP3ZwgTVgaLXbDUNqpWDQuKd1sh
/ip6/::1/tcp/46335/p2p/12D3KooWNvqwb1gbgMNLFXtMAXP3ZwgTVgaLXbDUNqpWDQuKd1sh
# 查看连接的节点列表:
lotus net peers

1.2 手动连接其他节点

这个在你同步的时候发现自动同步失败,无法获取可用节点的时候特别有用:

lotus net connect {PEER_ADDR}

{PEER_ADDR} 指的是节点连接地址,如 /ip4/119.33.53.66/tcp/37103/p2p/12D3KooWNvqwb1gbgMNLFXtMAXP3ZwgTVgaLXbDUNqpWDQuKd1sh

这个在你同步的时候无法正常同步链上数据时候特别有用, 这时可以试下在启动 daemon 的时候禁用自动连接 peers ,然后手动连接到一个正常节点,例如:

lotus daemon --bootstrap=false
lotus net connect {PEER_ADDR}

{PEER_ADDR} 可以是任意一个能够正常同步数据的节点地址。

1.3 查看链同步状态

lotus sync status
# 手动这是链的高度
lotus chain sethead --epoch=3960

如果出现 Error 则说明链同步有问题,如果状态是 completed,则说明链同步已经完成,可以进行其他操作了。

1.4 钱包操作

# 创建一个 BLS 钱包
lotus wallet new bls
# 查看钱包列表
lotus wallet list 
# 查看钱包余额
lotus wallet balance

1.5 手动下载 proof 参数

# 首先记得开启京东云的代理
export IPFS_GATEWAY="https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/"
# 下载 2KiB 扇区对应的 Proof 参数
./lotus fetch-params --proving-params 2KiB    
下载 32GiB 扇区对应的 Proof 参数
./lotus fetch-params --proving-params 32GiB  

目前所有 V27 的参数是 209GB,32GB 扇区对应的参数大小为 103GB。

2. lotus-storage-miner 操作

2.1 查看矿工状态

lotus-storage-miner info
Miner: t0109653
Sector Size: 32 GiB
Byte Power:   1.812 TiB / 4.888 PiB (0.0362%)
Actual Power: 1.81 Ti / 4.73 Pi (0.0374%)
    Committed: 1.844 TiB
    Proving: 1.812 TiB (32 GiB Faulty, 1.69%)
Expected block win rate: 6.4627/day (every 3h42m48s)

Miner Balance: 128.044817705754006786
    PreCommit:   0
    Locked:      128.043278061722026245
    Available:   0.001539644031980541
Worker Balance: 49.947643260499744805
Market (Escrow):  0.000000000000004064
Market (Locked):  0.000000000000004064

Sectors:
    Total: 72
    Proving: 58
    PreCommit1: 12
    PreCommit2: 1
    SealPreCommit1Failed: 1

这是我们自己测试矿工的 info,目前已经跑了 2 天了。这里大概解释一下各项数据的意思:

  • Byte Power: 已完成 Proving 的算力
  • Actual Power: 实际有效算力
  • Committed: 已完成 Commiting 的算力
  • 32 GiB Faulty: 被标记为 Faulty 扇区总大小,也就是无效算力。
  • Expected block win rate: 预期竞争出块胜出的概率,6.4627/day 标识平均每天可以出 6 个块。
  • Miner Balance: 当前挖矿收益(广大矿工最关注的)
  • Locked: 挖矿收益锁仓的份额(前期的收益几乎全部锁仓了)

其他都是大家一眼都能看懂的,这里就不解释了。

2.2 查看扇区状态

# 列举所有扇区信息:
lotus-storage-miner sectors list
# 查看某个扇区的当前状态
lotus-storage-miner sectors status {SectorID}
# 查看某个扇区的历史状态
lotus-storage-miner sectors status --log {SectorID}

2.3 修改扇区的状态

lotus-storage-miner sectors update-state --really-do-it=true {SectorID} {NewState}
# 例如某个 sector 密封失败一直卡在那里,
# 这时你可以尝试设置其状态为 '', 就可以跳过这扇区。
lotus-storage-miner sectors update-state --really-do-it=true 0 FailedUnrecoverable

注意: update-state 需要谨慎操作,因为操作不当可能会发生一些难以预料的奇怪的错误。

2.4 查看 Worker 列表

lotus-storage-miner workers list

2.5 增加存储路径

# 设置数据存储路径,该路径用来存储最终密封好的数据
# 执行该命令可能需要一点时间等待
lotus-storage-miner storage attach --store --init /path/to/persistent_storage

# 设置密封扇区的存储路径,密封完成之后该路径下的数据会被自动清空,相当于临时目录
# 执行该命令可能需要一点时间等待
lotus-storage-miner storage attach --seal --init /path/to/fast_cache

以上两个命令都是在启动了 miner 之后才可以执行,是一种动态添加存储路径的方式,非常灵活。 你还可以在命令中添加权重 –weight=10,默认权重是 10。 执行该命令后,可通过以下命令查看存储列表:

lotus-storage-miner storage list

lotus-seal-worker 操作

启动 Worker 命令:

lotus-seal-worker run --address=192.168.1.100:2345 --precommit1=true --precommit2=false --commit=false

启动 worker 需要注意以下几点:

  1. 需要给 worker 指定一个在局域网可以访问的 IP 地址以及一个本机未被使用的端口。
  2. precommit1、precommit2 和 commit 默认是启用的,如果想要禁用,可以设置为 false
  3. 需要注意机器的内存与功能的划分,比如:
    • 如果你打算让当前 Worker 参与 P1,则至少需要 128GB 内存。
    • 如果你打算让当前 Worker 参与 P2,则至少需要 64GB 内存。
    • 如果你打算让当前 Worker 参与 C2,则至少需要 192GB 内存。

本文首发于:小一辈无产阶级码农 原文链接:http://www.r9it.com/20200618/filecoin-env-and-operation.html

参考链接

本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

  • 发表于 2020-09-18 16:58
  • 阅读 ( 315 )
  • 学分 ( 50 )
  • 分类:FileCoin

该内容来自于互联网公开内容,非区块链原创内容,如若转载,请注明出处:https://htzkw.com/archives/27710

联系我们

aliyinhang@gmail.com