Paoの技術力を磨くブログ

機械学習やブロックチェーン等の技術を身に付けていくブログです。

【Ethereum】Gethで起動したプライベートネットをMetaMaskと連携

開発時にGethから立てたプライベートネットでのテストでもRopstenのようなテストネットやメインネットを想定して、 MetaMaskからアクセスできるようにしておいた方がいいと今更ながら思ったので、その対応のメモ。
特に難しい話ではないけど。

Gethのインストールやプライベートネット、MetaMaskのインストールの方法は割愛。

1. Gethの起動。

まずはGethの起動。このとき、MetaMaskからネットワークにアクセスできるようrpscorsdomain=*などにしてアクセスできるようにしておくこと。 以下は一例。

geth --networkid [genesis.jsonで指定したnetworkID] --rpc --rpccorsdomain "*" --rpcport "8545" --rpcapi web3,eth,net,db,personal --datadir "プライベートネットのブロック格納先パス" --nodiscover --unlock 0,1 console 2>> ./geth.log

2. MetaMaskを起動。

MetaMaskをブラウザから起動。MetaMaskの左上の接続先からLocalHost 8545を選択。 この時点でネットワークには繋がるが、Geth側で作成したアカウントはMetaMaskには表示されない。

3. アカウントのインポート

右上の人+更新マークみたいなのをクリックし、「Import Account」を選択。 f:id:go5paopao:20180711012344p:plain

SELECT TYPEを「JSON File」にして、ファイルを選択。 (もし秘密鍵が分かるのであれば、Private Keyを選択してコピペでも良い)
f:id:go5paopao:20180711012349p:plain

ここで、Gethでプライベートネットを立ち上げたブロック格納先パス(datadirで指定するとこ)の中に「keystore」ディレクトリがあるので その中の該当アカウントのJSONファイルを選択。

f:id:go5paopao:20180711013503p:plain

これでアカウントがインポートされ、MetaMaskにも表示される。 アカウント同士の送金もMetaMaskから普通にできる。