local-network 2k 本地2k测试网搭建

  • 一. 2k测试网
    • 1. 下载源代码
    • 2. 选择分支
    • 3. 设置环境变量
    • 4. 清理环境
    • 5. 编译2k
    • 6. 下载证明参数
    • 7. 预密封两个 2KiB 大小的扇区
    • 8. 生成创世块
    • 9. 创建默认地址
  • 二. 启动节点
    • 1. 启动创世节点
    • 2. 查看环境变量
    • 3. 导入创世节点的钱包
    • 4. 初始化创世旷工
    • 5. 启动创世旷工
    • 6. 重启创世旷工
  • 三. 启动其它节点
    • 1. 拷贝同步数据
    • 2. 启动节点
    • 3. 查看创始节点连接信息
    • 4. 连接到创世节点
    • 5. 创建钱包
    • 6. 从创世节点发送一些fil
    • 7. 查看钱包
    • 8. 初始化新节点
    • 9. 启动新节点
    • 10. 查看新节点
  • 参考

一. 2k测试网

  • 安装依赖
mkdir -p /var/log/2k
mkdir /2k
apt install mesa-opencl-icd ocl-icd-opencl-dev gcc git bzr jq pkg-config curl clang build-essential hwloc libhwloc-dev wget -y
  • rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • go
wget https://studygolang.com/dl/golang/go1.16.4.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.16.4.linux-amd64.tar.gz
  • .profile 添加环境变量
export PATH=$PATH:/usr/local/go/bin
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GO111MODULE=on

1. 下载源代码

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

2. 选择分支

git checkout v1.15.2-rc1

3. 设置环境变量

  • cat .bashrc
# lotus 2k
export LOTUS_PATH=/2k/lotus-local-net
export LOTUS_MINER_PATH=/2k/lotus-miner-local-net
export LOTUS_SKIP_GENESIS_CHECK=_yes_
export CGO_CFLAGS_ALLOW="-D__BLST_PORTABLE__"
export CGO_CFLAGS="-D__BLST_PORTABLE__"export IPFS_GATEWAY=https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/

4. 清理环境

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

5. 编译2k

# make 2k
rm -f lotus
go build  -ldflags="-X=github.com/filecoin-project/lotus/build.CurrentCommit=+git.dcf6f6414" -tags=2k -o lotus ./cmd/lotus
rm -f lotus-miner
go build  -ldflags="-X=github.com/filecoin-project/lotus/build.CurrentCommit=+git.dcf6f6414" -tags=2k -o lotus-miner ./cmd/lotus-miner
rm -f lotus-worker
go build  -ldflags="-X=github.com/filecoin-project/lotus/build.CurrentCommit=+git.dcf6f6414" -tags=2k -o lotus-worker ./cmd/lotus-worker
rm -f lotus-seed
go build  -ldflags="-X=github.com/filecoin-project/lotus/build.CurrentCommit=+git.dcf6f6414" -tags=2k -o lotus-seed ./cmd/lotus-seed
rm -f lotus-shed
go build  -ldflags="-X=github.com/filecoin-project/lotus/build.CurrentCommit=+git.dcf6f6414" -tags=2k -o lotus-shed ./cmd/lotus-shed
rm -f lotus-wallet
go build -o lotus-wallet ./cmd/lotus-wallet
rm -f lotus-gateway
go build  -ldflags="-X=github.com/filecoin-project/lotus/build.CurrentCommit=+git.dcf6f6414" -tags=2k -o lotus-gateway ./cmd/lotus-gateway
## make install

6. 下载证明参数

lotus fetch-params 2048

7. 预密封两个 2KiB 大小的扇区

# lotus-seed pre-seal --sector-size 2KiB --num-sectors 2
[flexi_logger][ERRCODE::Time] flexi_logger has to work with UTC rather than with local time, caused by IndeterminateOffsetSee https://docs.rs/flexi_logger/latest/flexi_logger/error_info/index.html#time
sector-id: {{1000 0} 5}, piece info: {2048 baga6ea4seaqmfrefe7lz2opiur24pu4eigjntbxzblwrvwtstviy36vf5z5h4ei}
2022-04-25T03:20:32.445Z    WARN    preseal seed/seed.go:178    PreCommitOutput: {{1000 0} 5} bagboea4b5abcampmod6ppp2tzbrm6mje3owdgqz2kwbbi7t6qp3f6px2jt4iibjy baga6ea4seaqmfrefe7lz2opiur24pu4eigjntbxzblwrvwtstviy36vf5z5h4ei
sector-id: {{1000 1} 5}, piece info: {2048 baga6ea4seaqhmnbwed53xqpml7svo24dbw3l7ettu4rz6hapygrooqabvwlnkfy}
2022-04-25T03:20:32.500Z    WARN    preseal seed/seed.go:178    PreCommitOutput: {{1000 1} 5} bagboea4b5abcaxb3tizv4nitoz4jq5iwnqphad7zk2254xfczq7ypbedydcdsvzg baga6ea4seaqhmnbwed53xqpml7svo24dbw3l7ettu4rz6hapygrooqabvwlnkfy
2022-04-25T03:20:32.501Z    WARN    preseal seed/seed.go:103    PeerID not specified, generating dummy
2022-04-25T03:20:32.501Z    INFO    preseal seed/seed.go:232    Writing preseal manifest to /root/.genesis-sectors/pre-seal-t01000.json
  • 预密封好的数据
# tree .genesis-sectors/
.genesis-sectors/
├── cache
│   ├── s-t01000-0
│   │   ├── p_aux
│   │   ├── sc-02-data-tree-r-last.dat
│   │   └── t_aux
│   └── s-t01000-1
│       ├── p_aux
│       ├── sc-02-data-tree-r-last.dat
│       └── t_aux
├── pre-seal-t01000.json
├── pre-seal-t01000.key
├── sealed
│   ├── s-t01000-0
│   └── s-t01000-1
├── sectorstore.json
├── unsealed
├── update
└── update-cache7 directories, 11 files

8. 生成创世块

lotus-seed genesis new localnet.json

9. 创建默认地址

# lotus-seed genesis add-miner localnet.json /root/.genesis-sectors/pre-seal-t01000.json
2022-04-25T03:22:25.652Z    INFO    lotus-seed  lotus-seed/genesis.go:129   Adding miner t01000 to genesis template
2022-04-25T03:22:25.652Z    INFO    lotus-seed  lotus-seed/genesis.go:146   Giving t3wmxcnxmvz3yo2o2cqqkhehfw26opxtubwmdophp3ookx67mxhkluhxyfklmpzw7pinikrg2qzyonnrxsprra some initial balance

二. 启动节点

1. 启动创世节点

nohup lotus daemon --lotus-make-genesis=devgen.car --genesis-template=localnet.json --bootstrap=false >> /var/log/2k/daemon.log 2>&1 &

2. 查看环境变量

  • 设置LOTUS_PATHLOTUS_MINER_PATH
# lotus 2k
export LOTUS_PATH=/2k/lotus-local-net
export LOTUS_MINER_PATH=/2k/lotus-miner-local-net
export LOTUS_SKIP_GENESIS_CHECK=_yes_
export CGO_CFLAGS_ALLOW="-D__BLST_PORTABLE__"
export CGO_CFLAGS="-D__BLST_PORTABLE__"export IPFS_GATEWAY=https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/

3. 导入创世节点的钱包

# lotus wallet import --as-default ~/.genesis-sectors/pre-seal-t01000.key
imported key t3wmxcnxmvz3yo2o2cqqkhehfw26opxtubwmdophp3ookx67mxhkluhxyfklmpzw7pinikrg2qzyonnrxsprra successfully!
# lotus wallet list
Address                                                                                 Balance                          Nonce  Default
t3wmxcnxmvz3yo2o2cqqkhehfw26opxtubwmdophp3ookx67mxhkluhxyfklmpzw7pinikrg2qzyonnrxsprra  49999999.999996757993460764 FIL  0      X

4. 初始化创世旷工

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
2022-04-25T03:26:12.296Z INFO    main    lotus-miner/init.go:517 Importing pre-sealed sector metadata for t01000
2022-04-25T03:26:12.333Z    INFO    main    lotus-miner/init.go:278 Miner successfully created, you can now start it with 'lotus-miner run'

5. 启动创世旷工

[IndexProvider]Enable = false
nohup lotus-miner run --nosync >> /var/log/2k/miner.log 2>&1 &
  • sync behind! 过一段时间之后就会同步上
# lotus-miner info
Enabled subsystems (from miner API): [Mining Sealing SectorStorage Markets]
Enabled subsystems (from markets API): [Mining Sealing SectorStorage Markets]
Chain: [sync behind! (4m1s behind)] [basefee 100 aFIL]
⚠ 1 Active alerts (check lotus-miner log alerts)
Miner: t01000 (2 KiB sectors)
Power: 40 Ki / 40 Ki (100.0000%)Raw: 4 KiB / 4 KiB (100.0000%)Committed: 4 KiBProving: 4 KiB
Projected average block win rate: 20024.16/week (every 30s)
Projected block win with 99.9% probability every 41s
(projections DO NOT account for future network and miner growth)Miner Balance:    5323.843 FILPreCommit:  0Pledge:     2 aFILVesting:    3992.882 FILAvailable:  1330.961 FIL
Market Balance:   0Locked:    0Available: 0
Worker Balance:   50000000 FIL
Total Spendable:  50001330.961 FILSectors:Total: 2Proving: 2Workers: Seal(1) WdPoSt(0) WinPoSt(0)Storage Deals: 0, 0 BRetrieval Deals (complete): 0, 0 B
# lotus-miner info
Enabled subsystems (from miner API): [Mining Sealing SectorStorage Markets]
Enabled subsystems (from markets API): [Mining Sealing SectorStorage Markets]
Chain: [sync ok] [basefee 100 aFIL]
Miner: t01000 (2 KiB sectors)
Power: 40 Ki / 40 Ki (100.0000%)Raw: 4 KiB / 4 KiB (100.0000%)Committed: 6 KiBProving: 6 KiB (2 KiB Faulty, 33.33%)
Projected average block win rate: 20024.16/week (every 30s)
Projected block win with 99.9% probability every 41s
(projections DO NOT account for future network and miner growth)Miner Balance:    132540.906 FILPreCommit:  0Pledge:     59.605 nFILVesting:    99297.112 FILAvailable:  33243.793 FIL
Market Balance:   0Locked:    0Available: 0
Worker Balance:   50000000 FIL
Total Spendable:  50033243.793 FILSectors:Total: 3Proving: 3Workers: Seal(1) WdPoSt(0) WinPoSt(0)Storage Deals: 0, 0 BRetrieval Deals (complete): 0, 0 B

6. 重启创世旷工

  • 停止 lotus daemonlotus-miner
lotus daemon stop
lotus-miner stop
  • 启动
nohup lotus daemon --genesis=devgen.car --profile=bootstrapper >> /var/log/2k/daemon.log 2>&1 &
nohup lotus-miner run --nosync >> /var/log/2k/miner.log 2>&1 &

三. 启动其它节点

1. 拷贝同步数据

  • devgen.car
scp devgen.car root@192.168.2.182:/root

2. 启动节点

mkdir -p /var/log/2k/
lotus fetch-params 2048
nohup lotus daemon --genesis=devgen.car --bootstrap=false >> /var/log/2k/daemon.log 2>&1 &

3. 查看创始节点连接信息

# lotus net listen
/ip4/192.168.2.179/tcp/34597/p2p/12D3KooWEBTiNWr4wY1DaY4dYSzEzyvnn3DFX4PZuPkm3nzJfapG
/ip4/127.0.0.1/tcp/34597/p2p/12D3KooWEBTiNWr4wY1DaY4dYSzEzyvnn3DFX4PZuPkm3nzJfapG
/ip6/::1/tcp/45173/p2p/12D3KooWEBTiNWr4wY1DaY4dYSzEzyvnn3DFX4PZuPkm3nzJfapG

4. 连接到创世节点

# lotus net connect /ip4/192.168.2.179/tcp/34597/p2p/12D3KooWEBTiNWr4wY1DaY4dYSzEzyvnn3DFX4PZuPkm3nzJfapG
connect 12D3KooWEBTiNWr4wY1DaY4dYSzEzyvnn3DFX4PZuPkm3nzJfapG: success
# lotus net peers
12D3KooWEBTiNWr4wY1DaY4dYSzEzyvnn3DFX4PZuPkm3nzJfapG, [/ip4/192.168.2.179/tcp/34597]
# lotus sync wait
Worker: 2; Base: 4706; Target: 4707 (diff: 1))
State: complete; Current Epoch: 4707; Todo: 0
Validated 882 messages (48 per second)

5. 创建钱包

# lotus wallet new bls
t3sg4tcgiw2refeorxnus2irpqqzujx4oqkeeqle3mgmdinv6mpwuei5s6zym3auqhndcxvupz4kg5arh6ry4a

6. 从创世节点发送一些fil

# lotus send t3sg4tcgiw2refeorxnus2irpqqzujx4oqkeeqle3mgmdinv6mpwuei5s6zym3auqhndcxvupz4kg5arh6ry4a 1000000
bafy2bzacectn5iu4bss2reuqn2jtxphka73yubgfhvqn4vpacriiplokrmams

7. 查看钱包

# lotus wallet list
Address                                                                                 Balance      Nonce  Default
t3sg4tcgiw2refeorxnus2irpqqzujx4oqkeeqle3mgmdinv6mpwuei5s6zym3auqhndcxvupz4kg5arh6ry4a  1000000 FIL  0      X

8. 初始化新节点

# lotus-miner init --sector-size=2KiB
2022-04-25T08:50:40.536Z INFO    main    lotus-miner/init.go:178 Checking if repo exists
2022-04-25T08:50:40.536Z    INFO    main    lotus-miner/init.go:194 Checking full node version
2022-04-25T08:50:40.536Z    INFO    main    lotus-miner/init.go:205 Initializing repo
2022-04-25T08:50:40.536Z    INFO    repo    repo/fsrepo.go:267  Initializing repo at '/seal/miner'
2022-04-25T08:50:40.537Z    INFO    main    lotus-miner/init.go:420 Initializing libp2p identity
2022-04-25T08:50:40.575Z    INFO    badger  v2@v2.2007.3/levels.go:183 All 0 tables opened in 0s2022-04-25T08:50:40.613Z   INFO    badger  v2@v2.2007.3/levels.go:183 All 0 tables opened in 0s2022-04-25T08:50:40.677Z   INFO    main    lotus-miner/init.go:749 Pushed CreateMiner message: bafy2bzacednez3e6enxicjtebhg3j5ciqjop5yxxyjd53da7t7cfen3mhpa6o
2022-04-25T08:50:40.677Z    INFO    main    lotus-miner/init.go:750 Waiting for confirmation
2022-04-25T08:51:10.145Z    INFO    main    lotus-miner/init.go:766 New miners address is: t01002 (t23yvqfkzvkgjo7bi5zikdvpox5tm5bmmk4s7oera)
2022-04-25T08:51:10.145Z    INFO    main    lotus-miner/init.go:554 Created new miner: t01002
2022-04-25T08:51:10.154Z    INFO    main    lotus-miner/init.go:278 Miner successfully created, you can now start it with 'lotus-miner run'

9. 启动新节点

  • cat $LOTUS_MINER_PATH/config.toml 修改配置 Enable = false
[IndexProvider]# Enable set whether to enable indexing announcement to the network and expose endpoints that# allow indexer nodes to process announcements. Disabled by default.## type: bool# env var: LOTUS_INDEXPROVIDER_ENABLE#Enable = trueEnable = false
nohup lotus-miner run >> /var/log/2k/miner.log 2>&1 &

10. 查看新节点

# lotus-miner info
Enabled subsystems (from miner API): [Mining Sealing SectorStorage Markets]
Enabled subsystems (from markets API): [Mining Sealing SectorStorage Markets]
Chain: [sync ok] [basefee 100 aFIL]
⚠ 1 Active alerts (check lotus-miner log alerts)
Miner: t01002 (2 KiB sectors)
Power: 0  / 42 Ki (0.0000%)Raw: 0 B / 6 KiB (0.0000%)Committed: 0 BProving: 0 B
Below minimum power threshold, no blocks will be won
Miner Balance:    0PreCommit:  0Pledge:     0Vesting:    0Available:  0
Market Balance:   0Locked:    0Available: 0
Worker Balance:   1000000 FIL
Total Spendable:  1000000 FILSectors:Total: 0Workers: Seal(1) WdPoSt(0) WinPoSt(0)Storage Deals: 0, 0 BRetrieval Deals (complete): 0, 0 B
# lotus-miner log alerts
active   process:fd-limitlast raised at 2022-04-25 09:11:41.21 +0000 UTC; reason: {"message":"soft FD limit is low","recommended_min":100000,"soft_limit":16384}
  • 临时修改ulimit,添加到环境变量
ulimit -n 1024000
  • 重启节点
nohup lotus daemon --genesis=devgen.car --bootstrap=false >> /var/log/2k/daemon.log 2>&1 &
lotus net connect /ip4/192.168.2.179/tcp/34597/p2p/12D3KooWEBTiNWr4wY1DaY4dYSzEzyvnn3DFX4PZuPkm3nzJfapG
nohup lotus-miner run >> /var/log/2k/miner.log 2>&1 &

参考

  1. Local network
  2. 本地搭建 2K 测试网入门教程

local-network 2k 本地2k测试网搭建相关推荐

  1. 基于eth测试网搭建Chainlink节点

    基于ETH测试网搭建Chainlink节点 本文主要参考 Chainlink 官方文档(https://docs.chain.link/docs/running-a-chainlink-node) , ...

  2. eos 测试网搭建,单节点,并使用命令行完成系统合约部署、账户创建、资产转账

    学习任何的区块链,首先就需要了解其中的基本功能,而要了解基本功能当然是动手尝试一遍,但是在正式网中,很多功能是没办法测试的,或者测试成本比较高,所以就需要搭建一个测试网,可以对该测试网任意操作,并了解 ...

  3. 如何搭建Filecoin测试网挖矿节点 | 开发者专区系列01

    此前,Filecoin开发团队公布了Filecoin开发者测试网源码,意味着专业开发者可以基于源码,参与测试网挖矿. 星际鑫航开发团队经过亲自编译.测试,将整个测试网挖矿节点搭建过程跑通.已经在测试网 ...

  4. 使用Linux命令行测试网速

    2019独角兽企业重金招聘Python工程师标准>>> Speedtest.net的工作原理并不复杂:它在你的浏览器中加载JavaScript代码并自动检测离你最近的Speedtes ...

  5. python测网速_使用Linux命令行测试网速(示例代码)

    当发现上网速度变慢时,人们通常会先首先测试自己的电脑到网络服务提供商(通常被称为"最后一公里")的网络连接速度.在可用于测试宽带速度的网站中,Speedtest.net也许是使用最 ...

  6. PHA关闭测试网、预备网即将正式上线!

    PoC4 测试网作为一个过渡性的测试网络,已持续运行的 80 多天,期间有 3,000 台左右的矿机在线参与测试. 由于近期矿池协议开发需求的增加,官方决定关闭现在正在运行的 PoC4 网络.现有的 ...

  7. Linux 服务器内网搭建NTP时间服务器(Network Time Protocol)

    文章目录 Linux 服务器内网搭建NTP时间服务器(Network Time Protocol) 一.在主服务器端安装NTP时间服务器 二.在客户端安装NTP时间服务器 三.Xhell 同时控制多个 ...

  8. 【GitLab】gitlab上配置webhook后,点击测试报错:Requests to the local network are not allowed...

    gitlab上配置webhook后,点击测试报错: Requests to the local network are not allowed 操作如下: 报错: 错误原因: gitlab 10.6 ...

  9. 大数据原生集群本地测试环境搭建一

    前言 写这个微博的目的主要是有两点,一是这是我自己在用的测试环境,虽然也有自己总结文档,但是还是在网上保留一份,以防那天文档丢失,其次另一个原因也是想和大家分享一下我自己的测试环境搭建方式,如果大家有 ...

最新文章

  1. 线程同步之——互斥量及死锁问题
  2. python 计算协方差_python 线性代数:[12]求协方差矩阵
  3. Uipath 学习栏目基础教学:3Uipath条件判断(if/else)
  4. Linux 下打包报错:enospc (no space left on device)
  5. Ribbon-2通过代码自定义配置ribbon
  6. 《CDN 之我见》原理篇——CDN的由来与调度
  7. 程序的装入和链接过程
  8. 2022春招马蜂窝旅游网第一轮面试 面经
  9. elemntui icon 大小_自定义elementui中的图标
  10. 接口-----java
  11. 容器编排技术 -- Kubernetes kubectl rollout undo 命令详解
  12. Xcode6 管理provisioning profile
  13. mysql主从注意事项_mysql主从复制亲测,以及注意事项
  14. 关于Cocos2d-x中GameController的定义
  15. xp 无法用计算机名访问,WinXP工作组计算机无法访问的解决方法
  16. Azure 托管镜像和非托管镜像对比
  17. 「代码随想录」本周学习小结!(动态规划系列五)
  18. mysql关系范式试题_数据库范式练习题
  19. vant 表单按钮置灰_Vant Switch 开关
  20. python俄罗斯方块代码34行_轻松一下,500 行代码写一个俄罗斯方块游戏玩玩

热门文章

  1. kk录像机怎么剪辑视频 kk录像机视频剪辑教程
  2. 菩提树下都是宝,大家学习要趁早,不懂多问为什么,这种态度才算好
  3. 给swagger的接口添加描述
  4. 暗黑系游戏_有哪些类似暗黑破坏神的游戏_暗黑类游戏盘点
  5. 哈哈~,终于把阿里妈妈的广告申请下来了
  6. WRF模式可以做什么?天气预报、模拟分析观测气温、降水、风场、水汽和湿度、土地利用变化、土壤及近地层能量水分通量、土壤、水体、植被等相关气象变量
  7. 气相色谱仪分析常用的色谱定量方法有哪些?
  8. python import gensim error: ModuleNotFoundError: No module named ‘dataclasses‘
  9. python中文本文件和二进制文件的区别_文本文件和二进制文件的区别
  10. 2021年中国社会融资规模及融资结构分析:对实体经济发放的人民币贷款占比超60%[图]