自分の仮想通貨を作る!イーサリアムのプライベートネットワーク作成 Geth入門!


はじめに

最近何かとニュースを賑わせている仮想通貨ですね。
乗るしかない、このビッグウェーブに!と思っている私ですが、投資でお金をスるのは嫌だし、
リスクはとりたくない。ちょっと便乗したいだけなんです。

そこで、私は技術を勉強してちょっと違う方向でブームに乗っかってみることにしました。
手を進めることだけを考えた記事なので、概念的な理解は他の記事を参照してください。

Gethのインストール

Gethはイーサリアムのブロックチェーンのダウンロードや、マイニング、トランザクションの発行などを行うクライアントツールです。他にも、EthやPyethappなどがありますが、ポピュラーなのでGethを選択しました。

geth official install guide

brew tap ethereum/ethereum
brew install ethereum

私はmacOSでhomebrewを入れていたので、この手順で入れました。
homebrewがない場合はこちらでインストールしてください
自分の環境にはGoが元々入っていたので、もしかしたらGoを入れる必要があるかも?

プライベートネットの作成

まずは、genesisというファイルをjson形式で作成します。
これは全てのブロックチェーンの元になる設定などを記述しておくもので、
このgenesisを元にネットワークを作成します。

sampleGenesis.json

{
        "config": {
                 "chainId": 12345,
                 "homesteadBlock": 0,
                 "eip155Block": 0,
                 "eip158Block": 0
         },
         "timestamp": "0x0",
         "gasLimit": "0x8000000",
         "difficulty": "0x400",
         "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
         "coinbase": "0x3333333333333333333333333333333333333333",
         "alloc": {}
}

これを/Users/xxxx/eth_private/sampleGenesis.jsonに配置します。(記事の都合上指定していますが実際どこでもいいです)

それを以下のコマンドで読み込みます。-identityの後には適当に自分の名前を入れましたが、合ってるのかはわかりません。
geth -identity “あなたの名前” init /Users/xxxx/eth_private/sampleGenesis.json -datadir /Users/xxxx/eth_private

そして、起動コマンドがこれ!
geth --datadir /Users/xxxx/eth_private --networkid 12345

こんな感じになりました。

コンソールの起動

プライベートネットを動かしたのとは別のターミナルを開きます。
そこで、以下のコマンドを打つとjavascriptのコンソールが起動します。
geth attach /Users/xxxx/eth_private/geth.ipc

このコンソールでアカウントを作ります。
personal.newAccount()を実行してください。
パスワードを設定すると、アカウントの数字が発行されるのでコピーしてどこかに保存しておきましょう。

マイニング、残高確認などのコマンド

eth.getBalance("アカウントの数字") →残高確認
miner.start() マイニング開始
miner.stop() マイニング中止

以上、今後も自分がイーサリアムいじりを進めたら、加筆していく予定です。