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