Tech

Ethermintの複数ノードのセットアップ(設定)

  • このエントリーをはてなブックマークに追加

複数のノードで通信するためのセットアップ方法
作者曰く、もっと簡単に設定する方法を準備しているようだが、一旦手作業でやる方法をご紹介

設定方法の要約

validator同士を通信させるために、genesis.jsonとpriv_validators.jsonを設定して、各ノードに設置し、ethemintを–seeds で他のノードを指定して起動する。

手順

  1. cd ethermintのレポジトリ
  2. rm -Rf ~/.ethermint 念のためデータディレクトリが新しくする
  3. ethermint init dev/genesis.json
  4. 以下のように表示される
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
  1. ~/.ethermint以下に、ノードごとに違う priv_validator.jsongenesis.json が生成される
  2. 各ノードのgenesis.jsonのvalidatorsの部分をマージする。amountは一緒にする。
  3. ~/.ethermint/genesis.json
  4. config.tomlのIPアドレスを変更
  5. 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, イーサーミント
  • このエントリーをはてなブックマークに追加