本地测试网
出于测试或开发目的,您可能需要运行本地测试网。
单节点测试网
需求
提示
对于以下示例,我们全部使用默认的主目录
iris init
初始化 genesis.json 文件,它将帮助你启动网络
iris init testing --chain-id=testing
创建一个钱包
创建一个钱包作为您的验证人帐户
iris keys add MyValidator
iris add-genesis-account
将该钱包地址添加到 genesis 文件中的 genesis.app_state.accounts 数组中
提示
此命令使您可以设置通证数量。确保此帐户有 uiris,这是 IRIShub 上唯一的质押通证
iris add-genesis-account $(iris keys show MyValidator --address) 150000000uiris
iris gentx
生成创建验证人的交易。gentx 存储在 ~/.iris/config/
中
iris gentx MyValidator 100000000uiris --chain-id=testing
iris collect-gentxs
将生成的质押交易添加到创世文件
iris collect-gentxs
iris start
修改默认token为 uiris
sed -i 's/stake/uiris/g' $HOME/.iris/config/genesis.json
现在可以启动 iris
了
iris start
iris unsafe-reset-all
可以使用此命令来重置节点,包括本地区块链数据库,地址簿文件,并将 priv_validator.json 重置为创世状态。
当本地区块链数据库以某种方式中断和无法同步或参与共识时,这是有用的。
iris unsafe-reset-all
iris tendermint
查询可以在 p2p 连接中使用的唯一节点 ID,例如在 config.toml 中 seeds
和 persistent_peers
的格式 <node-id>@ip:26656
。
节点 ID 存储在 node_key.json 中。
iris tendermint show-node-id
查询 Tendermint Pubkey,用于 identify your validator,并将用于在共识过程中签署 Pre-vote/Pre-commit。
Tendermint Key 存储在 priv_validator.json 中,创建验证人后,请一定要记得备份。
iris tendermint show-validator
查询bech32前缀验证人地址
iris tendermint show-address
iris export
请参阅导出区块状态。
多节点测试网
前提
构建和初始化
# Work from the irishub repo
cd [your-irishub-repo]
# Build the linux binary in ./build
make build-linux
# Quick init a 4-node testnet configs
make testnet-init
make testnet-init
将调用 iris testnet
命令在 build/nodecluster
目录下生成4个节点的测试网配置文件。
$ tree -L 3 build/nodecluster/
build/nodecluster/
├── gentxs
│ ├── node0.json
│ ├── node1.json
│ ├── node2.json
│ └── node3.json
├── node0
│ ├── iris
│ │ ├── config
│ │ └── data
│ └── iriscli
│ ├── key_seed.json
│ └── keys
├── node1
│ ├── iris
│ │ ├── config
│ │ └── data
│ └── iriscli
│ └── key_seed.json
├── node2
│ ├── iris
│ │ ├── config
│ │ └── data
│ └── iriscli
│ └── key_seed.json
└── node3
├── iris
│ ├── config
│ └── data
└── iriscli
└── key_seed.json
启动
make testnet-start
该命令将使用 ubuntu:16.04 的 docker 镜像创建4个节点的测试网。下表列出了每个节点的端口:
Node | P2P Port | RPC Port |
---|---|---|
irisnode0 | 26656 | 26657 |
irisnode1 | 26659 | 26660 |
irisnode2 | 26661 | 26662 |
irisnode3 | 26663 | 26664 |
要更新二进制文件,只需重新构建它并重新启动节点即可:
make build-linux testnet-start
停止
停止所有正在运行的节点:
make testnet-stop
清理
要停止所有正在运行的节点并删除 build/
目录中的所有文件:
make testnet-clean