Gaia testnet 搭建实例
本实例教程,将会搭建 4 个 validator 的 gaia 网络。
Note: 由于 cosmos 的 gaia 项目目前(2018-01-15)还处于快速开发和迭代阶段,命令会有所不同,此文是基于 gaia 的 develop 分支进行构建的。
从 Github 上的 gaia 项目上 clone 下源代码,使用 go build
编译 gaia 所在的目录。
MYNAME=
gaiacli keys new $MYNAME
gaiacli keys list
MYADDR=
./gaia node init --home=/Users/kaifei/.cosmos-gaia-node1/ $MYADDR
./gaia node init --home=/Users/kaifei/.cosmos-gaia-node2/ $MYADDR
./gaia node init --home=/Users/kaifei/.cosmos-gaia-node3/ $MYADDR
./gaia node init --home=/Users/kaifei/.cosmos-gaia-node4/ $MYADDR
修改每个节点目录中的 config.toml
,使其在一台机器上端口不冲突并且能够组成一个网络
proxy_app = "tcp://127.0.0.1:46688" # DAPP 端口,同一台机器上端口需不一样
moniker = "gaia_node.local"
fast_sync = true
db_backend = "leveldb"
log_level = "state:info,*:error"
[consensus]
create_empty_blocks_interval = 10
[rpc]
laddr = "tcp://0.0.0.0:46687" # Tendermint 运行端口,同一台机器上端口需不一样
[p2p]
laddr = "tcp://0.0.0.0:46686" # 当前节点的地址,p2p 地址
seeds = "0.0.0.0:46656"
选任意一个节点的 home 目录下的 genesis.json
为基准,将其他节点目录下 priv_validator.json的 pub_key 依次加入该 genesis.json
的 validators 集合中(形成 4 个 validator 节点,若没有这一步,形成的网络就是 1 个 validator 节点 + 3 个普通节点),最后将修改后的文件复制到每个节点的 home 目录下,用以保证所有节点的 genesis.json
文件一致。
{
"app_hash": "",
"chain_id": "local",
"genesis_time": "0001-01-01T00:00:00.000Z",
"validators": [
{
"power": 10,
"name": "node1",
"pub_key": {
"type": "ed25519",
"data": "771269B89935EF9E0ACC99CB3899D44C7E25ED87363544AF2F47ED752514E22A"
}
},
{
"power": 10,
"name": "node2",
"pub_key": {
"type": "ed25519",
"data": "0D321CC132ADA647071FC0686CA561A1AEA4E83AF7D76BCB4697B826135EDA83"
}
},
{
"power": 10,
"name": "node3",
"pub_key": {
"type": "ed25519",
"data": "034CF4C896219B0BFA2CC65981406795CF1C4F3979C05F09FCAC20E8246F213A"
}
},
{
"power": 10,
"name": "node4",
"pub_key": {
"type": "ed25519",
"data": "AF1847FDFDE4B437EEE937D8D59CF8D9F13AB61A29F47C6907276A4D7D8CA57D"
}
}
],
"app_options": {
"accounts": [
{
"address": "8A01813CA73A388148CC315075A66F959F29031A",
"coins": [
{
"denom": "fermion",
"amount": 9007199254740987
}
]
}
],
"plugin_options": [
"coin/issuer",
{
"app": "sigs",
"addr": "8A01813CA73A388148CC315075A66F959F29031A"
},
"stake/allowed_bond_denom",
"fermion"
]
}
}
./gaia node start --home=/Users/kaifei/.cosmos-gaia-node1/ &> ./node1.log &
NODE1_PID=$!
./gaia node start --home=/Users/kaifei/.cosmos-gaia-node2/ &> ./node2.log &
NODE2_PID=$!
./gaia node start --home=/Users/kaifei/.cosmos-gaia-node3/ &> ./node3.log &
NODE3_PID=$!
./gaia node start --home=/Users/kaifei/.cosmos-gaia-node4/ &> ./node4.log &
NODE4_PID=$!
gaia client init --chain-id=local --node=tcp://localhost:46657