软硬件配置
- 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/