1. 软硬件配置
- 8核/128G内存/2个1.7T本地ssd硬盘/无显卡/20M带宽(阿里云ecs.i2.4xlarge)
- ubuntu1804
注:官方推荐使用RTX2080、GTX1080以上的显卡
2. 编译安装
2.1 更新升级系统软件
apt update
apt-get upgrade -y
2.2 安装构建依赖
apt-get install software-properties-common -y
add-apt-repository ppa:longsleep/golang-backports
apt install golang-go build-essential manpages-dev git bzr jq pkg-config ocl-icd-* mesa-opencl-icd opencl-headers -y
2.3 安装rustup (proofs build)
curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
rustup
2.4 安装lvm、clang (proofs build)
echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic main" >> /etc/apt/sources.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
apt update
apt-get install clang-7 lldb-7 lld-7
apt install llvm-runtime
clang-7 --version
2.5 下载源码,开始编译安装
export GO111MODULE=on
export GOPROXY=https://goproxy.io
git clone https://github.com/filecoin-project/lotus.git
cd lotus/
make clean && make all &&make install
3. 创建工作目录、设置环境变量
3.1 挂载磁盘及创建目录
## 数据挂载目录
mkdir /data
## 提前分好区(略过),推荐使用lvm,后面可扩容
mount /dev/vdXX /data
##存储矿工工作目录
mkdir -p /data/lotuswork/lotusstorage
##全节点lotus deamon工作目录
mkdir -p /data/lotuswork/lotus
##矿工远程工作节点工作目录
mkdir -p /data/lotuswork/lotusworker
## 复制证明参数目录
mkdir -p /data/filecoin-proof-parameters-v20
mkdir -p /data/lotuswork/tmpdir
3.2 设置系统环境变量
vim ~/.bashrc
export LOTUS_PATH=/data/lotuswork/lotus
export LOTUS_STORAGE_PATH=/data/lotuswork/lotusstorage
export WORKER_PATH=/data/lotuswork/lotusworker
export FIL_PROOFS_PARAMETER_CACHE=/data/filecoin-proof-parameters-v20
export TMPDIR=/data/lotuswork/tmpdir
source ~/.bashrc
echo $LOTUS_STORAGE_PATH
4 启动全节点、创建钱包和矿工
4.1 启动全节点守护进程
nohup lotus daemon >> /data/lotus.log 2>&1 &
4.2 查看peer状态及区块同步状态
很耗时,需要几个小时
lotus net peers
lotus sync status
lotus sync wait
查看测试链最新状态(区块高度等):https://stats.testnet.filecoin.io/
4.3 创建钱包地址
lotus wallet new bls
lotus wallet list
4.4 领取测试币
点击[Send Funds],复制钱包地址
4.5 创建矿工地址
点击[Create Miner],复制钱包地址,点击创建后,需要等待几分钟
wallet adress:t3vfa6hi2oiut3ev7c6iar2qtvpodyqeiusvsk4bdxj4w57rx53egobngw3bp5pyvx6jim7gmfdqkexmmcbiua
Gas Funds: bafy2bzacednewasxqz5ncds2umpjj72rqkwekl2kxrmwkicb75qhh3gkicvn6 - OK
Miner Actor: bafy2bzaceczbeynliazu45vjnvzjwiuzwtvc3lmmwfalsg2b7iqwqzpxihdpa - OK
New storage miners address is: t021449
4.6 查看账户余额
lotus wallet balance t021449
lotus wallet balance t3vfa6hi2oiut3ev7c6iar2qtvpodyqeiusvsk4bdxj4w57rx53egobngw3bp5pyvx6jim7gmfdqkexmmcbiua
4.7 查看抵押代币
查看矿工抵押的代币数量
lotus state pledge-collateral
5. 开始挖矿
5.1 下载Filecoin证明参数
注: 约60GB数据,耗时较长
- 使用lotus命令下载
IPFS_GATEWAY="https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/" lotus fetch-params --proving-params 32GiB &
- 使用wget下载
这里从京东云节点下载,下载后,解压到/data/filecoin-proof-parameters-v20
,推荐使用wget下载,因为参数文件有十多个,压缩过,体积要小,比从ipfs下载快。
wget https://s3.cn-south-1.jdcloud-oss.com/proof-parameters/filecoin-proof-parameters-v20-testnet.tar.gz
5.2 初始化存储矿工
lotus-storage-miner init --actor=t021449 --owner=t3vfa6hi2oiut3ev7c6iar2qtvpodyqeiusvsk4bdxj4w57rx53egobngw3bp5pyvx6jim7gmfdqkexmmcbiua
5.3 启动存储矿工
nohup lotus-storage-miner run >/data/miner.log 2>&1 &
5.4 启动远程工作矿工
待存储矿工启动成功后,再启动远程工作矿工
nohup lotus-seal-worker run >/data/work.log 2>&1 &
远程工作矿工主要分担存储矿工的密封压力,当然这件事存储矿工也可以做。
这里存储矿工和远程矿工在同一个节点,如果远程矿工在另外一个节点,启动远程节点时需要配置STORAGE_API_INFO=token:TOKEN:STORAGE_NODE_MULTIADDR
,以便和存储矿工通信,组件工作集群。
TOKEN创建lotus auth create -perm admin
5.5 创建扇区及自动挖矿
扇区序号从1开始,以当前的配置密封完一个扇区(32G)大概需要12个小时,配置低的话更慢,密封完后再执行一遍就会开始密封第二个扇区,一共需要密封512G数据,才会显示算力(Power)
lotus-storage-miner pledge-sector
查看矿工节点信息(挖矿情况)
lotus-storage-miner info
tail -f /data/miner.log
tail -f /data/work.log
6. 更新到master最新版本
git pull
rm -f /usr/local/bin/lotus
rm -f /usr/local/bin/lotus-storage-miner
rm -f /usr/local/bin/lotus-seal-worker
make clean all && make all && make install
遇到的问题
- 在存储节点上,如果一个扇区正在证明,此时创建一个新的扇区,会导致正在证明的扇区无法再证明
- 工作节点异常退出或出错,此时如果正在密封,这个扇区下载启动也不会再密封