lotus本地测试网2K环境多节点搭建

设置环境变量

因为参数默认托管在国外,因此设置环境变量提速

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

安装lotus(Linux环境)

因为此处使用的是从源代码安装,因此先安装系统依赖,这里本机电脑使用的是Ubuntu20.04

sudo apt install mesa-opencl-icd ocl-icd-opencl-dev gcc git bzr jq pkg-config curl clang build-essential hwloc libhwloc-dev wget -y && sudo apt upgrade -y

在这里插入图片描述

安装RustUp

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

在这里插入图片描述

安装Go,我本地安装的是1.16.6版本的golang

wget -c https://golang.org/dl/go1.16.4.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local

构建和安装lotus

git clone https://github.com/filecoin-project/lotus.git
cd lotus/

选择最新代码以及使用主分支代码进行编译

git checkout v1.13.0

在这里插入图片描述

编译

我们使用的是测试网环境,因为要在2K环境中启动结点

make clean calibnet

make sudo install

这将把lotus,lotus-miner和lotus-worker 放入 /usr/local/bin 目录中。

确保lotus安装成功

lotus –version

在这里插入图片描述
编译好的测试网版本的lotus如下
在这里插入图片描述

下载证明参数

在启动lotus结点之前,还需要下载证明参数,没有证明参数,lotus是启动不了的

2KiB 表示我们要下载的证明参数是 2KiB 大小的扇区所需要的证明参数

lotus fetch-params 2KiB

下载过程大致如下:

在这里插入图片描述
下载好的证明参数放在/var/tmp/filecoin-proof-parameters/目录下

lotus fetch-params 2KiB

在这里插入图片描述

屏蔽源头数据

export LOTUS_SKIP_GENESIS_CHECK=yes

预先封装两个2K扇区

./lotus-seed pre-seal --sector-size 2048 --num-sectors 2

在这里插入图片描述

启动创世节点,并启动节点

./lotus-seed genesis new localnet.json
为默认账户提供资金
./lotus-seed genesis add-miner localnet.json ~/.genesis-sectors/pre-seal-t01000.json

Giving
t3syv3yl63a2dmo3aebbqtpvsnderifr3mmvzn6cak7i4mfyw25ar5uhibqq62rbrjp47ocwluz3e54txforsa successfully!

启动创世节点
./lotus daemon --lotus-make-genesis=dev.gen --genesis-template=localnet.json --bootstrap=false

这里遇到了一个ERROR:

在这里插入图片描述
查阅官方解答后得到的结果:

在这里插入图片描述
成功启动后:

在这里插入图片描述
在启动创世节点之前,如果已经创建过创世节点,要先清理掉之前的旧数据

rm -rf ~/.lotus/
rm -rf ~/.lotusminer/
rm -rf ~/.genesis-sectors/
rm -rf ~/devgen.car
rm -rf ~/localnet.json

节点启动后,继续运行,开启另一个命令行窗口,初始化创世矿工,导入创世矿工的秘钥

导入创世节点的钱包

~/git/lotus/lotus wallet import --as-default ~/.genesis-sectors/pre-seal-t01000.key
~/git/lotus/lotus wallet list

在这里插入图片描述

设置创世矿工,需要几分钟

./lotus-miner init --genesis-miner --actor=t01000 --sector-size=2KiB --pre-sealed-sectors=~/.genesis-sectors --pre-sealed-metadata=~/.genesis-sectors/pre-seal-t01000.json –nosync

在这里插入图片描述
最后看到Miner successfully created, you can now start it with ‘lotus-miner run’

这里我们就可以正式启动miner了

启动miner

./lotus-miner run –nosync