FileCoin 挖矿实战-基础命令

启动

lotus daemon > daemon.log

创建完整的 CAR 快照

lotus chain export <filename> 

命令你可以导出一个完整的 lotus chain 快照。不过这个快照比较大,可能超过 100 GB。你也可以只导出最新的区块,跳过以前的旧消息。–recent-stateroots 参数指定要导出的状态根数。 --skip-old-msgs 参数表示只导出那些 stateroots 直接引用的区块。

# usage
lotus chain export --skip-old-msgs --recent-stateroots=<stateroots-num> <filename>
# e.g
lotus chain export --skip-old-msgs --recent-stateroots=2000 lotus-chain.car

在首次启动 daemon 的时候执行导入快照

# 跳过验证
lotus daemon --import-snapshot <filename>
# 包含验证
lotus daemon --import-chain <filename>
# 如果你希望在快照导入之后就立即退出守护进程,(例如在docker环境中很有用),请在命令中添加 --halt-after-import 标志
lotus daemon --import-snapshot --halt-after-import <filename>

初始化矿工

# 等 lotus daemon 完成区块同步,检查区块是否同步完成
# 该命令会显示当前同步多少区块了,还有多少没有同步完成,以及你现在的同步速度。
# 如果没有同步完成,会一直处于阻塞状态,等待同步完成了该命令才会退出。
lotus sync wait

重写 lotus-miner 脚本

vim /usr/local/bin/lotus-miner
FIL_PROOFS_PARAMETER_CACHE=/gamma/filecoin-proof-parameters \ # proof 参数路径
IPFS_GATEWAY=https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/ 
LOTUS_PATH=/data/lotus \ # daemon 数据根路径
LOTUS_MINER_PATH=/data/lotus-miner  \ # miner 数据存储跟路径
FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 \ # 启用 GPU加速 COLUMN hash 计算
FIL_PROOFS_USE_GPU_TREE_BUILDER=1 \ # 启用 GPU 构造 Merkle 树
RUST_LOG=Trace \
FIL_PROOFS_MAXIMIZE_CACHING=1 \
/opt/lotus/lotus-miner $*
创建钱包
lotus wallet new bls
备份钱包
lotus wallet export {钱包地址}
创建矿工
# usage
lotus-miner init --owner={钱包地址} --sector-size=<val>
# e.g
lotus-miner init --owner={钱包地址} --sector-size=32GiB

修改 Miner 配置

miner 的配置文档在 $LOTUS_MINER_PATH/config.toml,如果你是跑单节点的话,那么无需修改配置文档,但是如果你是需要跑集群的话, 那么你需要修改下面几个地方:

修改 API 连接配置,主要用于 worker 连接 miner
# e.g
 [API]
 ListenAddress = "/ip4/{miner 的内网 IP 地址}/tcp/2345/http"
 RemoteListenAddress = "{miner 的内网 IP 地址}:2345"
修改 [Storage] 选项,将密封相关的任务全部分配给 worker 去做
 [Storage]
 #  ParallelFetchLimit = 10
 AllowAddPiece = false
 AllowPreCommit1 = false
 AllowPreCommit2 = false
 AllowCommit = false
 #  AllowUnseal = true

使用远程 lotus daemon

配置你的 lotus daemon config.toml 文件
# e.g
 [API]
 ListenAddress = "/ip4/{lotus daemon 的内网 IP 地址}/tcp/1234/http"
 RemoteListenAddress = "{lotus daemon 的内网 IP 地址}:1234"

同时需要拷贝 lotus dameon 的 api 和 token 文件到 miner 机器的 $LOTUS_PATH 目录下

启动 lotus-miner

lotus-miner run

启动 lotus-worker

同样的,我们也需要重写 lotus-worker 脚本

FIL_PROOFS_PARAMETER_CACHE=/gamma/filecoin-proof-parameters \ # proof 参数路径
IPFS_GATEWAY=https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/ 
LOTUS_WORKER_PATH=/data/lotus-worker \ # worker 数据存储目录
LOTUS_MINER_PATH=/data/lotus-miner  \ # 保存 miner api 和 token 的目录
FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 \ # 启用 GPU加速 COLUMN hash 计算
FIL_PROOFS_USE_GPU_TREE_BUILDER=1 \ # 启用 GPU 构造 Merkle 树
RUST_LOG=Trace \
FIL_PROOFS_MAXIMIZE_CACHING=1 \
/opt/lotus/lotus-worker $*
  1. 拷贝 miner 的 api 和 token 文件到 $LOTUS_MINER_PATH 目录下。
  2. 启动 worker 程序,可以根据传入不同的参数来定义 worker 的类型。
(1) 启动一个只接 P1 任务的 worker
lotus-worker run --listen={worker 的内网 IP 地址}:2345 --precommit1=true --precommit2=false -commit=false
(2) 启动一个可以同时接 P1 和 P2 任务的 worker
lotus-worker run --listen={worker 的内网 IP 地址}:2345 --precommit1=true --precommit2=true -commit=false
(3) 启动一个只接 C2 任务的 worker
lotus-worker run --listen={worker 的内网 IP 地址}:2345 --precommit1=false --precommit2=false -commit=true

worker 启动之后会连接到 miner 领取任务

查看已经连接到 miner 的 worker 列表
lotus-miner sealing workers
质押扇区,启动挖矿
lotus-miner sectors pledge # 质押一个随机数据的扇区,开始密封
查询当前集群的任务分配情况
lotus-miner sealing jobs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妇男主任

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值