もみじに熊

日々の備忘録

ethereumで複数ノードを接続する part1

さて,ここまででethereumの大体の挙動を確認することができた.

ここまで用いたノードは一つ(=デスクトップ一台)だったが,いよいよ二つ目のノードを接続してみる.

今回,二つ目のノードとしてノートパソコンを用いて実験を行う.

まず二つのノードそれぞれが

・同じmyGenesis.jsonファイルを持っているか(要はgenesisblockが同じか)

確認してほしい

同じファイルを持っている場合,双方のノードで以下のコマンドを実行してgethを起動する

すると以下のような画面が出てきてgethを起動できる

↓一台目のノードの画面(デスクトップ)

f:id:maple_bear:20191102180852p:plain

↓二台目のノードの画面(ノートパソコン)

 f:id:maple_bear:20191102183805p:plain

 

なぜかデスクトップのほうの画面だけ,今までよりもより細かい?情報が表示された.

次にこの時点でまだ他のノードと接続されていないことを証明するために以下のコマンドを実行する.

 

2.接続へ

いよいよここから接続体制に入る.まずそれぞれのノードの情報を取得する.

ここで,筆者の場合,一台目のノード(デスクトップ)のほうは,下の画像において白でラインを引いているようにすでに情報がでていたのでそれも記しておく.

f:id:maple_bear:20191102182538p:plain

↓拡大&わかりやすいver

 

また二台目のノード(ノートパソコン)のほうではコマンドを実行することによりノード情報を得た.

 

ここまででそれぞれのノードの情報を取得することができた.

次にノード間の接続を行うため,互いの情報を打ち込む

↓一台目のノード(デスクトップ)の画面

 ↓二台目のノード(ノートパソコン)の画面

 

この結果,以下のコマンドをもって接続されているノードを確認することができる.

↓一台目のノード(デスクトップ)の画面

↓二台目のノード(ノートパソコン)の画面

 

ここまでで,二つのノードを接続することができていることを確認することができた.

なお,片方のノードを閉じるた状態でもう片方のノードにおいて

>net.peerCount

コマンドを実行すると

という値が返ってくることが確認された

f:id:maple_bear:20191102190526p:plain

よってこの二つのノードが接続されていることは,その挙動からも確認できた.

 

<追記 2019/11/04>

今回複数ノードを接続させるため,gethを起動するとき特別に

>geth --networkid 10 --datadir ./test --maxpeers 1 --nodiscover console 2&gt;&gt; node.log

というコマンドを打ち込んで実行した.

後日,従来のコマンドで通常起動した後,複数ノード接続か可能か実験してみた.

 

結果...

普通に接続できました(笑)

 

ということで,gethの起動さえできれば実のところは大丈夫らしい

では,今回のコマンドで起動することで得られるメリットは何か?

おそらく,--maxpeerという部分で,接続可能なノード数を制限することができるのではないのか?と考察する.

 

 


 

 

 

 

<参考文献>

Ethereumで複数ノードをつなげてプライベートネットワークを作ってみる | BlockChain Online ブロックチェーンオンライン