こんにちは。
前回の記事でEthereumの環境の準備ができましたので、早速プライベートネットを作ってみましょう。
初期化する
プライベートネットのデータフォルダを作成します。
ホームディレクトリに 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
再開するときは、もう一度起動させます。初期化するとリセットされてしまいますので、注意が必要ですね。
次回は、プライベートネットでいろいろな操作をする方法を書きたいと思います。