lotus 常用命令
Filecoin is a peer-to-peer network that stores files on the internet, with built-in economic incentives to ensure files are stored reliably over time.
lotus启动停止
# 首次启动,从快照导入链数据
lotus daemon --import-snapshot <filename>
# 普通启动
lotus daemon
# 停止
lotus daemon stop
# 导入快照不启动
lotus daemon --import-snapshot --halt-after-import <filename>
lotus导出链数据快照
lotus chain export --recent-stateroots=900 --skip-old-msgs snapshot.car
压缩链数据以减少磁盘占用
# 共三步
# step1
lotus daemon stop #停止lotus节点
# step2
rm $LOTUS_PATH/datastore/char/* # 删除链数据
# step3
lotus daemon --import-snapshot <filename> # 从新的快照同步链
修改矿工地址(owner、worker、control)
# 查看矿工关联的地址信息
lotus-miner actor control list
# 修改owner地址
lotus-miner actor set-owner --really-do-it <address>
# 修改control地址
lotus-miner actor control set --really-do-it <address1 address2 ...>
# 修改worker地址
lotus-miner actor propose-change-worker <address>
lotus-miner actor confirm-change-worker <address>
从矿工账户转FIL到owner地址
lotus-miner actor withdraw <amount>
管理钱包
# 创建钱包
lotus wallet new bls # BLS wallet
lotus wallet new # secp256k1 wallet
lotus msig create singeraddress1 signersaddress2.. # multisig wallet
# 备份钱包
lotus wallet export <address> > <address>.key
# 导入钱包
lotus wallet import <address>.key
# 查看钱包地址
lotus wallet list
# 默认钱包地址
lotus wallet deault # 查看默认钱包地址
lotus wallet set-default <address> # 更改默认钱包地址
# 查看钱包余额(default)
lotus wallet balance
# 发送FIL
lotus send <receive address> 3 #从默认钱包发送
lotus send --from <send address> <receive address> 3 #从指定钱包发送
安全重启miner daemon
# tips1 尽量缩短miner离线时间
# tips2 确保current deadline窗口的证明已经提交
lotus-miner proving deadlines
# tips3 检查并暂时停止交易(deals)
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
# tips4 检查正在进行中的封装操作
lotus-miner sectors list
# tips5 重启miner
lotus-miner stop
lotus-miner start
封装承诺扇区(pledge sectors)
# 提交封装任务
lotus-miner sectors pledge
# 查看封装sector时间长度
lotus-miner sectors status --log <id>
# 升级承诺扇区到包含交易的新扇区
lotus-miner sectors mark-for-upgrade <sector number>
自定义存储位置
# 自定义封装(sealing)位置
lotus-miner storage attach --init --seal <PATH_FOR_SEALING_STORAGE>
# 自定义存储(storing)位置
lotus-miner storage attach --init --store <PATH_FOR_LONG_TERM_STORAGE>
# 查看存储路径
订单
查看接单情况
lotus-miner storage-deals selection list
关闭订单
lotus-miner storage-deals selection reject --online --offline
恢复接单
lotus-miner storage-deals selection reset
备份和恢复Lotus Miner
# 备份
# step1 创建备份文件夹
mkdir -p ~/lotus-backups/2020-12-15
# step2 备份
lotus-miner backup ~/lotus-backups/2020-12-15/backup.cbor # 需要设置LOTUS_BACKUP_BASE_PATH
lotus-miner backup --offline ~/lotus-backups/2020-12-15/backup.cbor
# step3 备份config.toml 和 storage.json
cp ~/.lotusminer/config.toml ~/.lotusminer/storage.json ~/lotus-backups/2012-12-15
# 恢复
# step1 拷贝backup.cbor, config.toml, storage.json到miner所在的机器
# step2 从备份文件恢复
lotus-miner init resotre ~/lotus-backups/2020-12-15/backup.cbor
# step3 拷贝覆盖config.toml 和 storage.json
cp ~/lotus-backups/2020-12-15/config.toml ~/lotus-backups/2020-12-15/storage.json $LOTUS_MINER_PATH/
# step4 启动miner
lotus-miner run
连接其他lotus daemon
# 设置FULLNODE_API_INFO 环境变量
export FULLNODE_API_INFO="TOKEN:/ip4/<ip>/tcp/<port>/http"
# FULLNODE_API_INFO 值通过如下命令产生, ip需要修改
lotus auth api-info --perm admin
lotus在国内运行注意
# 加速首次启动 proof parameter 下载
export IPFS_GATEWAY=https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/
# 加快lotus 构建时Go依赖模块下载
export GOPROXY=https://goproxy.cn
常用命令
# 通过ip从众多worker机器中找出没有运行的worker
lotus-miner sealing workers |grep Worker| awk '{ print $4}' | awk -F: '{print $1}' |awk -F. '{print $4}' |sort -n
# 查找存储下的tmp文件
sudo find . -maxdepth 5 -type f -name "*.tmp"
# 批量删除sealing jobs
lotus-miner sealing jobs |awk '{print $1}' > remove.job
cat remove.job |xagrs -n 1 lotus-miner sealing abort
#磁盘目录下写入挂载点内容
m=$(ls /data |xargs -n 1);for i in $m ; do touch "/data/$i/data-$i"; echo "/data/$i/" > "/data/$i/data-$i";cat "/data/$i/data-$i"; done
ip=10.0.228.201;m=$(ls /mnt/$ip |xargs -n 1);for i in $m ; do touch "/mnt/$ip/$i/mountpoint"; echo "/mnt/$i/" > "/mnt/$ip/$i/mountpoint";cat "/mnt/$ip/$i/mountpoint"; done