Gaia testnet 搭建实例

Gaia testnet 搭建实例

  • 编译 gaia 和 gaiacli
  • 初始化并启动 gaia 节点
    • 1 使用 gaiacli 生成账号Key
    • 2 初始化 gaia 节点
    • 3 启动 gaia 节点
  • 使用 gaia client 连接网络

本实例教程,将会搭建 4 个 validator 的 gaia 网络。

Note: 由于 cosmos 的 gaia 项目目前(2018-01-15)还处于快速开发和迭代阶段,命令会有所不同,此文是基于 gaia 的 develop 分支进行构建的。

1. 编译 gaia 和 gaiacli

从 Github 上的 gaia 项目上 clone 下源代码,使用 go build 编译 gaia 所在的目录。

2. 初始化并启动 gaia 节点

2.1 使用 gaiacli 生成账号(Key)

MYNAME=
gaiacli keys new $MYNAME
gaiacli keys list
MYADDR=

2.2 初始化 gaia 节点

./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"
        ]
    }
}

2.3 启动 gaia 节点

./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=$!

3. 使用 gaia client 连接网络

gaia client init --chain-id=local --node=tcp://localhost:46657

你可能感兴趣的:(Blockchain)