【Ethereum】Go 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ブロックの情報が表示されるはず。