Ethereumを動かす ~Part2~

前回、自分のPCにgethに導入するまでを説明しました。今回はさらに進めていきたいと思います。前回をご覧になっていない方は是非そちらから進めてください。
ディレクトリ、genesis.json作成
gethを導入したらすぐさまテストネットでEthereumを動かせるようになるかというと実はそういうわけではなく、gethを利用して色々と環境を整えてあげる必要があります。まずはEthereumのアカウント情報やブロックの記録を保持しておくためのディレクトリ(フォルダ)を作っておきます。やることは単純で、
$ mkdir testnet
とテストネットのデータを保持するディレクトリを作り、
$ cd testnet
と作ったディレクトリまで移動します。作成するディレクトリの名前は任意ですが、テストネットのデータを保持しておくディレクトリだとわかりやすい名前をつけておくと後々わかりやすいでしょう。
作成したディレクトリを移動して何をするのかというと、テストネットで用いるブロックチェーンの0番目のブロックを作ります。0番目のブロックの情報が書いてあるファイルをgenesis.jsonと呼びます。viコマンドで移動したディレクトリ内にgenesis.jsonを作成します。
$ vi genesis.json
とコマンドを打つとviエディタが開くので”i”を押してINSERTモードにし、
{
"config": {
"chainId": 2222
},
"difficulty": "0x400",
"gasLimit": "2100000",
"coinbase": "0x0000000000000000000000000000000000000000",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"alloc": {}
}
と書いてください。コピペで結構です。
それぞれの意味について説明するとかなり深い内容になってしまうので今回は割愛しますが、”difficulty”というのはマイニング(PART3で説明します)の難易度の設定です。マイニングの難易度を調整できるのもテストネットの特徴です。しかしあまりに時間がかかったり、逆に速すぎたりしても後々制御しにくくなるので”0x400″と設定しておくのが良いかと思われます。
そして、gethコマンドでこのgenesis.jsonファイルからEthereumを起動させようと思うのですが、そのためにはgenesis.jsonのファイルがある場所(PATH)を把握しておく必要があります。ですので、testnetフォルダにいる状態で
$ pwd
というコマンドを打って表示された文字列を覚えておいて下さい(本記事ではこの文字列を以下PATHと表現します)。PATHが確認できましたら
$ geth --datadir PATH init PATH/genesis.json
(PATHは表示された文字列を適宜当て嵌めてください)
と打ち込んでみてください。エラーではない文字列が表示され、testnetフォルダ内を確認したら、genesis.json以外にもgethフォルダとkeystoreフォルダが生成されていたら成功です。
今回はここまでにします。