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

NO IMAGE

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

設定方法の要約

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, イーサーミント
     

免責事項

本記事に掲載されている記事の内容につきましては、正しい情報を提供することに務めてはおりますが、提供している記事の内容及び参考資料からいかなる損失や損害などの被害が発生したとしても、弊社では責任を負いかねます。実施される際には、法律事務所にご相談ください。

技術・サービス・実装方法等のレビュー、その他解説・分析・意見につきましてはblock-chani.jp運営者の個人的見解です。正確性・正当性を保証するものではありません。本記事掲載の記事内容のご利用は読者様個人の判断により自己責任でお願いいたします。

     

コンセンサス・ベイス(株)とブロックチェーン事業を行なってみませんか?

当サイトを運営するコンセンサス・ベイス株式会社は、2015年設立の国内で最も古いブロックチェーン専門企業です。これまでに、大手企業の顧客を中心に、日本トップクラスのブロックチェーンの開発・コンサルティング実績があります。

ブロックチェーンに関わるビジネスコンサル・システム開発・教育・講演などご希望でしたら、お気軽にお問い合わせください。

     
     

ブロックチェーン学習に最適の書籍の紹介

図解即戦力 ブロックチェーンのしくみと開発がこれ1冊でしっかりわかる教科書

ブロックチェーン イーサリアムへの入り口 第二版 (ブロックチェーン技術書籍)

本書は、ブロックチェーン技術に興味を持ったエンジニアや、その仕組みを学び、自分の仕事に活かしたいビジネスパーソンを対象にして、ブロックチェーンのコア技術とネットワーク維持の仕組みを平易な言葉で解説しています。この本を読んだうえで、実際にコードを書くような専門書、ブロックチェーンビジネスの解説書を読むことで、理解度が飛躍的に高まるでしょう。(はじめにより)

イーサリアム(Ethereum)カテゴリの最新記事