もみじに熊

日々の備忘録

windows環境でgethのプライベートネットワークを構築

 

gethにおいてプライベートネットワークを構築する.手順は主に

プライベート・ネットに接続する · Ethereum入門を参考に行う.

1.Genesisファイルの作成

ブロックチェーンにおける一番初めのブロックが記述されたファイルを作成する.bitcoinにおけるgenesis blockのようなもの.今回はプライベートネットワークにおいてEthereumを動作させるため,独自にgenesisファイルを用意する.

今回,genesisファイルは以下のコードで示した.

JSON形式で記された上記のコードをgethファイル直下に配置する.

※ここでメモ帳を用いた場合,JSON形式にすることができないので,ほかのコードファイルを用意する必要がある.(私はVisual Studio Codeをインストールし,記述した)

2.ブロックチェーン情報の初期化

以下のコードを入力し,ブロックチェーンの情報を上記のgenesisファイルの内容で初期化. 

Succesfullyの文字が見えると初期化成功となる

f:id:maple_bear:20190901205615p:plain

 ↓失敗ver.

f:id:maple_bear:20190901210020p:plain

また成功すると同時にeth_private_netというフォルダーがgethフォルダーの中に新たに追加される.

f:id:maple_bear:20190901210545p:plain

3.gethを起動する

以下のコマンドを実行するとgethを起動することができた.

 ここでコマンド中のnetworkid "15" の数字の部分は参照中のプライベート・ネットに接続する · Ethereum入門によると,genesisブロック内に記述されているIDと同一のものにする必要があるそう.しかしこの数字を変えてみてもgethの起動自体はできるので,現段階ではその重要性を感じることはできなかった.

上記コマンドを用いてgethを起動すると次のようになった. 

f:id:maple_bear:20190901212213p:plain

ここまででwindows環境でgethのプライベートネットワークを構成することができるか確認できた.ここからはどのOSを用いていても同じコマンドを打ち込めば,gethが動作するようになる.なお,筆者の環境ではここからコピペができなくなったのでとても面倒くさい(笑)

4.動作確認

ここで先程記述したgenesisファイルを読み込むことができるか確認する.

↓実行結果

f:id:maple_bear:20190901212926p:plain

ここでgenesisブロックの記述内容と同じ数値が表示されていれば,適切に反映されていることを確認できる.(nonceの値を比べるのが手っ取り早い.difficultyの値は16進数表記から10進数表記に代わっているが,意味は同じ)


<参考文献>

https://blockchain-jp.com/tech/240

https://book.ethereum-jp.net/first_use/connect_to_private_net.html