こんにちは。
前回の記事でEthereumの環境の準備ができましたので、早速プライベートネットを作ってみましょう。
plusplus-jp.hateblo.jp
初期化する
プライベートネットのデータフォルダを作成します。
ホームディレクトリに private-net
というフォルダを作り、その中に作成します。
$ cd
$ mkdir private-net
$ cd ~/eth-private-net/
初期化のためのファイル genesis.json を書きます。(vimじゃなくてもOKです)
$ vim genesis.json
↓そのファイルの中身
{
"config": {},
"nonce": "0x0000000000000042",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"gasLimit": "0x8000000",
"difficulty": "0x4000",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"alloc": {}
}
つなげてみる
ブロックチェーンを初期化します。
geth --datadir ~/eth-private-net/ init ~/eth-private-net/genesis.json
初期化が終わりましたら、コインベース(マイニングの際の受け取りアカウント)を作ります。
$ geth --datadir ~/eth-private-net/ account new
INFO [04-23|16:17:56] Maximum peer count ETH=25 LES=0 total=25
Your new account is locked with a password. Please give a password. Do not forget this password.
Passphrase:
Repeat passphrase:
Address: {d61a98***************************deb3826}
プライベートネットを起動します。
$ nohup geth --networkid 1234567890 --nodiscover --maxpeers 0 --datadir ~/eth-private-net/ \
--rpc --rpcaddr "0.0.0.0" --rpcport=8545 --rpccorsdomain "*" \
--ws --wsaddr "0.0.0.0" --wsport=8546 --wsorigins="*" \
--port 60303 \
--rpcapi "admin,db,eth,debug,miner,net,shh,txpool,personal,web3" \
--verbosity 6 2>> ~/eth-private-net/geth.log &
※開発するにあたって必要そうなオプションを全部つけてます。
動作しているかな・・・?
gethのJavascriptコンソールの立ち上げで動かしてみましょう。
$ geth attach ~/eth-private-net/geth.ipc
このような形でプロンプトが表示されます。
$ geth attach ~/eth-private-net/geth.ipc
Welcome to the Geth JavaScript console!
instance: Geth/v1.8.3-unstable/darwin-amd64/go1.9.2
coinbase: 0xd61a98***************************deb3826
at block: 0 (Thu, 01 Jan 1970 09:00:00 JST)
datadir: /Users/*******/eth-private-net
modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 shh:1.0 txpool:1.0 web3:1.0
>
止め方
$ ps aux | grep [g]eth
プロセスIDを確認し、kill コマンドで停止させます。
$ kill 12345
再開するときは、もう一度起動させます。初期化するとリセットされてしまいますので、注意が必要ですね。
次回は、プライベートネットでいろいろな操作をする方法を書きたいと思います。