【Ethereum】Go Ethereumのインストール

Gethをインストールする · Ethereum入門

Ethereumはブロックチェーンをベースに、特別な管理者のいないP2Pシステム上で、様々な分散アプリケーション(Dapp : Decentralized Application)を開発するための基盤を提供するプラットフォーム。

そのEthereum上でDappを開発するために、ここではGo言語で実装されたEthereumプロトコルの1つである Go Ethereum をインストールして動かしてみる。

インストール

Mac OSの場合は、Homebrewでインストールできる。

$ brew tap ethereum/ethereum
$ brew install ethereum

無事インストールが完了すると geth コマンドが使えるようになる。

$ geth --help

プライベートネットワークに接続する

プライベートネットワークを立ち上げることで、安全にEthereumの動作を調べたりDappを開発したりすることができる。

まずは任意の場所にプライベートネットワークのブロック情報などの各種データを格納するディレクトリを作成する。

$ mkdir /path/to/my-eth

次にGenesisファイルと呼ばれる、ネットワークでやり取りされるブロックチェーンの最初のブロックであるGenesisブロックの情報を記述したjsonファイルを、ディレクトリ内に作成する。
ここでは myGenesis.json とする。

{
  "config": {
    "chainId": 15
  },
  "nonce": "0x0000000000000042",
  "timestamp": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "extraData": "",
  "gasLimit": "0x8000000",
  "difficulty": "0x4000",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x3333333333333333333333333333333333333333",
  "alloc": {}
}

Genesisファイルを作成したら、以下のコマンドを実行してブロックチェーン情報をGenesisファイルの内容で初期化する。

$ geth --datadir ./ init ./myGenesis.json

--datadir で指定したディレクトリ以下にブロックチェーン情報が保存される。

ここまでできたらいよいよプライベートネットワークを起動する。

$ geth --networkid "15" --nodiscover --datadir ./ console 2>> ./geth_err.log

これで立ち上がるので、例えば以下のようなコマンドを叩いてみる。

> eth.getBlock(0)

これはブロック番号0を指定してそのブロック情報を表示するというもの。
なので、Genesisブロックの情報が表示されるはず。