1台のVMだけで稼動していたのですが、それでは面白くないので
2台のVMでプライベートネットワークを作ってみます。
マシンの用意
1台目をVirtualBoxで構築したので2台目もVirtualBoxで構築をします。
うぶんつインストールして、gethをインストールして、VirtualBoxのネットワークを繋ぎます。
両VMを止めて内部ネットワークを作って立ち上げなおします。
マシンA:195.168.56.101
マシンB:192.168.56.102
という構成です。
enodeの取得
マシンA,Bでenodeを取得します。
これがないと最初のP2Pネットワークに参加できません。Winnyのハッシュみたいなものですね、懐かしい
> admin.nodeInfo { enode: "enode://307276d0a28c0fe5c3a672f8e6658b9692d2f59a33456a9d51b10f50c06c5aab00d6cf2862089f2ec29a74df828a262f60c559506b0debef988c72eb9d0872d1@[::]:30303", id: "307276d0a28c0fe5c3a672f8e6658b9692d2f59a33456a9d51b10f50c06c5aab00d6cf2862089f2ec29a74df828a262f60c559506b0debef988c72eb9d0872d1", ip: "::", listenAddr: "[::]:30303", name: "Geth/v1.4.0-unstable/linux/go1.5.1", ports: { discovery: 30303, listener: 30303 }, protocols: { eth: { difficulty: 13039949, genesis: "fd4af92a79c7fc2fd8bf0d342f2e832e1d4f485c85b9152d2039e03bc604fdca", head: "e81d5b82b468dda63e4a4a726f8c691a3b72a2ce392427934bd1fc4140cab48b", network: 10 } } }
と打つとわかります。
"enode://307276d0a28c0fe5c3a672f8e6658b9692d2f59a33456a9d51b10f50c06c5aab00d6cf2862089f2ec29a74df828a262f60c559506b0debef988c72eb9d0872d1@[::]:30303"
の部分ですね。
マシンBでも同じように取得します。
enode: "enode://1564b0df3a377ca3b0f987bbd85fe764d7cc6db62dea00ddca370c1a02892a1c8a1c9a35670e26d97d6f8aa2fded29f36350d4b17f79e6632caae81a4a734bcc@[::]:30303"
んで、これを相互に設定します。admin.addPeer()で設定するのですが、VMのネットワークの関係かローカルIPをみるようになっています。[::]のところ。
なのでこれを正しいIPに書き直して[192.168.56.102]:30303という感じで設定してあげます。
//マシンAに、マシンBのenodeを設定 > admin.addPeer("enode://1564b0df3a377ca3b0f987bbd85fe764d7cc6db62dea00ddca370c1a02892a1c8a1c9a35670e26d97d6f8aa2fded29f36350d4b17f79e6632caae81a4a734bcc@[192.168.56.102]:30303") > admin.peers [{ caps: ["eth/61", "eth/62", "eth/63"], id: "1564b0df3a377ca3b0f987bbd85fe764d7cc6db62dea00ddca370c1a02892a1c8a1c9a35670e26d97d6f8aa2fded29f36350d4b17f79e6632caae81a4a734bcc", name: "Geth/v1.4.0-unstable/linux/go1.5.1", network: { localAddress: "192.168.56.101:40866", remoteAddress: "192.168.56.102:30303" }, protocols: { eth: { difficulty: 131072, head: "fd4af92a79c7fc2fd8bf0d342f2e832e1d4f485c85b9152d2039e03bc604fdca", version: 63 } } }] > net.peerCount 1 >
できましたねー!!!net.peerCountも1になっているので2台でネットワークが構築できているのがわかります。
ためしにインストールして間もないマシンBでeth.blockNumberを確認してみると最初なのに
> eth.blockNumber 97
とマシンAの状態を引き継いでいることがわかります。