複数のノードで通信するためのセットアップ方法
作者曰く、もっと簡単に設定する方法を準備しているようだが、一旦手作業でやる方法をご紹介
設定方法の要約
validator同士を通信させるために、genesis.jsonとpriv_validators.jsonを設定して、各ノードに設置し、ethemintを–seeds で他のノードを指定して起動する。
手順
cd ethermintのレポジトリ
rm -Rf ~/.ethermint
念のためデータディレクトリが新しくするethermint init dev/genesis.json
- 以下のように表示される
2016/11/28 00:00:00 [main] Starting ethermint
I1128 00:00:00.670466 github.com/tendermint/ethermint/vendor/github.com/ethereum/go-ethereum/ethdb/database.go:83] Alloted 16MB cache and 16 file handles to /Users/user/Library/Ethermint/chaindata
I1128 00:00:00.690691 github.com/tendermint/ethermint/cmd/ethermint/main.go:110] successfully wrote genesis block and/or chain rule set: aaec7374646cecfd0b97b079b54a9cef8956414c9473127128ef4e086fd2c313
- ~/.ethermint以下に、ノードごとに違う
priv_validator.json
とgenesis.json
が生成される - 各ノードのgenesis.jsonのvalidatorsの部分をマージする。amountは一緒にする。
- ~/.ethermint/genesis.json
- config.tomlのIPアドレスを変更
- config.tomlのseedsを削除して、ethermint –seeds “他のノードのIPアドレス:46656”
genesis.jsonの例
新規に作られたgenesis.jsonの例
{
"app_hash": "",
"chain_id": "test-chain-X2tQPq",
"genesis_time": "0001-01-01T00:00:00.000Z",
"validators": [
{
"amount": 10,
"name": "",
"pub_key": [
1,
"69EBD52B344A7128CAE21741D6E4F64445F095ECFDBBB6A
D625C48981BBE3782"
]
}
]
}
validatorsの下にマージする部分
"pub_key": [
1,
"6ED8CAAE5D56FF26116006D2C1B66513F4F4F6C3C0E29F9457ED32BBB074FF5A"
]
マージしたら、これを各ノードにコピーする。
config.tomlの例
自動生成されたオリジナルなconfig.toml
# This is a TOML config file.
# For more information, see https://github.com/toml-lang/toml
proxy_app = "tcp://127.0.0.1:46658"
moniker = "anonymous"
node_laddr = "tcp://0.0.0.0:46656"
seeds = ""
fast_sync = true
db_backend = "leveldb"
log_level = "notice"
rpc_laddr = "tcp://0.0.0.0:46657"
Genesisの設定方法の参考(Tendermint wiki)
validatorの設定
Genesis · tendermint/tendermint Wiki
初期化の方法
etheremint init
これにより、priv_validator.json が生成される。2回やると2つ生成される?
tendermint gen_validator でも生成される? (要tendermintのインストール)
コマンドラインで他のノードに繋ぐ方法
--seeds オプション
--seeds value Comma delimited host:port seed nodes
IPアドレス:ポートをカンマ区切り
例: 192.168.0.2:46656
ディレクトリ
~/.ethermint
validatorのキーを生成
tendermint gen_validator
インストール方法
関連用語
- ethereum, go-ethereum, geth, イーサリアム
- tendermint, テンダーミント
- ethermint, イーサーミント