搭建filecoin lotus私有网络及vscode下调试源码

软硬件配置

  • 6核/16G内存/Radeon Pro 555X 4 GB
  • macOS catalina 10.15.3
  • vscode 1.42.0
  • golang 1.14
  • Homebrew 2.2.10-42-gf5ba503

搭建私有网络

1.依赖安装

brew install go bzr jq pkg-config rustup

2. 调试工具更新

xcode-select --install
go get -u github.com/go-delve/delve/cmd/dlv
sudo /usr/sbin/DevToolsSecurity -enable

3.下载源码、编译

git clone https://github.com/filecoin-project/lotus.git
cd lotus/
export GO111MODULE=on
export GOPROXY=https://goproxy.io
make debug

如若编译时出错,请更换rust Crates源

+ cargo +nightly-2019-11-06 build --release
+ tee /var/folders/cq/vv_zdwd902d2y1j36zgsxk_w0000gn/T/tmp.u4LT35gu
    Updating crates.io index
warning: spurious network error (2 tries remaining): early EOF; class=Net (12); code=Eof (-20

在 $HOME/.cargo/config 中添加如下内容,再重新make

[source.crates-io]
replace-with = 'ustc'

[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index

4. 预密封扇区

这里设置为1k,扇区越大,时间越久

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

5. 启动lotus deamon

设置一下环境变量IPFS_GATEWAY,从国内下载证明参数文件

IPFS_GATEWAY="https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/"  \
./lotus daemon --lotus-make-random-genesis=genesis.car  \
--genesis-presealed-sectors=~/.genesis-sectors/pre-seal-t0101.json  \
--bootstrap=false

6. 创世矿工初始化设置

设置一下环境变量IPFS_GATEWAY,从国内下载

IPFS_GATEWAY="https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/"  \
./lotus-storage-miner init --genesis-miner --actor=t0101 --sector-size=1024  \
--pre-sealed-sectors=~/.genesis-sectors --nosync

7. 启动矿工

./lotus-storage-miner run --nosync

8. 启动远程矿工

./lotus-seal-worker run

9. 创建一个新的扇区

./lotus-storage-miner pledge-sector

源码调试

vscode调试配置

buildFlags参数根据Makefile编写,必须设置-tags=debug,否则将载入测试网络配置

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "pre-seal",
                "type": "go",
                "request": "launch",
                "mode": "debug",
                "port": 2344,
                "host": "127.0.0.1",
                "program": "${workspaceRoot}/cmd/lotus-seed",
                "env": {},
                "buildFlags":"-ldflags=-X='github.com/filecoin-project/lotus/build'.CurrentCommit=954085d3 -tags=debug",
                "args": ["pre-seal", "--sector-size", "1024", "--num-sectors", "2"]
            },
        {
        "name": "lotus daemon",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "port": 2345,
            "host": "127.0.0.1",
            "program": "${workspaceRoot}/cmd/lotus",
            "env": {
                "IPFS_GATEWAY":"https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/"
            },
            "showLog": true,
            "buildFlags":"-ldflags=-X='github.com/filecoin-project/lotus/build'.CurrentCommit=954085d3 -tags=debug",
            "args": ["daemon","--lotus-make-random-genesis=genesis.car", "--genesis-presealed-sectors=~/.genesis-sectors/pre-seal-t0101.json", "--bootstrap=false"]
        },
        {
            "name": "lotus-storage-miner init",
                "type": "go",
                "request": "launch",
                "mode": "debug",
                "port": 2346,
                "host": "127.0.0.1",
                "program": "${workspaceRoot}/cmd/lotus-storage-miner",
                "env": {
                    "IPFS_GATEWAY":"https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/"
                },
                "showLog": true,
                "buildFlags":"-ldflags=-X='github.com/filecoin-project/lotus/build'.CurrentCommit=954085d3 -tags=debug",
                "args": ["init", "--genesis-miner", "--actor=t0101", "--sector-size=1024", "--pre-sealed-sectors=~/.genesis-sectors", "--nosync"]
            },
            {
                "name": "lotus-storage-miner run",
                    "type": "go",
                    "request": "launch",
                    "mode": "debug",
                    "port": 2347,
                    "host": "127.0.0.1",
                    "program": "${workspaceRoot}/cmd/lotus-storage-miner",
                    "env": {
                        "IPFS_GATEWAY":"https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/"
                    },
                    "showLog": true,
                    "buildFlags":"-ldflags=-X='github.com/filecoin-project/lotus/build'.CurrentCommit=954085d3 -tags=debug",
                    "args": ["run","--nosync"]
                },
              {
            "name": "lotus-seal-worker run",
                "type": "go",
                "request": "launch",
                "mode": "debug",
                "port": 2348,
                "host": "127.0.0.1",
                "program": "${workspaceRoot}/cmd/lotus-seal-worker",
                "env": {
                    "IPFS_GATEWAY":"https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/"
                },
                "showLog": true,
                "buildFlags":"-ldflags=-X='github.com/filecoin-project/lotus/build'.CurrentCommit=954085d3 -tags=debug",
                "args": ["run"]
            }
    ]
}

删除数据

rm -rf ~/.genesis-sectors
rm -rf ~/.lotus/    
rm -rf ~/.lotusstorage/ 
rm -rf ~/.lotusworker/
发布了14 篇原创文章 · 获赞 0 · 访问量 150

猜你喜欢

转载自blog.csdn.net/kk3909/article/details/104832715