Ethereum(イーサリウム)をMacにインストールして、ローカルのプライベートネットワークでマイニングまでやってみた。

2017年11月3日

最近話題のブロックチェーン、暗号通貨。
興味が出てきて、自分でGPUマイニングはしてみたのですが、まだいまいちブロックチェーンのことを理解していない気がする。。。

実際に触ってみないと理解できないですよね〜、ということでやってみました。

今回は、EthereumをMacにインストールして、Mac内(ローカル)のプライベートなEthereumを使えるようにして、ローカル内でマイニングをするってところまでやってみます。

まずEthereumを(イーサリウム)インストールしたいのですが、homebrewの公式リポジトリにないので、
Ethereum(イーサリウム)のリポジトリをbrewコマンドでインストールできるようにします。
ターミナルをひらいて、下記コマンドを実行。

brew tap ethereum/ethereum

brew tapでethereum(イーサリウム)がbrewでインストールできるようになったので、実際にインストール!!

brew install ethereum

下記のコマンドを叩いて、helpがダーッと出たら、インストール成功しています。

geth help

※ brew tapについては以下参照
http://tukaikta.blog135.fc2.com/blog-entry-204.html

次は、Macのローカルでの作業です。

任意の場所に、フォルダを作ります。

mkdir eth_test

自分の場合は、

/Users/hiroki/eth_test

にしました。

次に設定のファイルを作ります。

vim /Users/hiroki_tkg/git/eth_test/genesis.json
{
       "config" : {},
       "nonce" : "0x0000000000000042",
       "mixhash" :  "0x0000000000000000000000000000000000000000000000000000000000000000",
       "difficulty" : "0x200",
       "coinbase" : "0x0000000000000000000000000000000000000000",
       "timestamp" : "0x0",
       "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
       "gasLimit" : "0x8000000",
       "alloc" : {}
}

※数値は任意で。。

ブロックチェーン情報をgenesisファイルの内容で初期化

geth --datadir /Users/hiroki/eth_test init /Users/hiroki/eth_test/genesis.json

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

geth --networkid "10" --nodiscover --datadir "/Users/hiroki/eth_test" console 2>> /Users/hiroki/eth_test/geth_err.log          

すると、以下の画像みたいに、Welcomeと出たら成功です!わーい!

Welcome to the Geth JavaScript console!

instance: Geth/v1.7.0-stable-6c6c7b2a/darwin-amd64/go1.9
modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

EthereumをインストールしてMacにプライベートチェーンを作る

これはGethというもので、コマンドでEthereumをいろいろ操作できます。
今回は、プライベートなEthereumをGethでいじっていきます。

まずは、アカウントの作成をします。()内は、パスフレーズです。

personal.newAccount("passwd0”)

アカウント確認は以下でできます。

eth.accounts

下記でマイナーのアカウントを確認できます。

eth.coinbase

これで、マイナーアカウントの変更

miner.setEtherbase(eth.accounts[1])

マイニング開始

miner.start(1)

miner.startをしてもnullとでるけど、問題ないらしいです。

eth.hashrate 

でハッシュレイト確認すると、数字がどんどん上がっているのがわかると思います。

そして、どのくらい掘れているのかは、以下のコマンドで確認

eth.getBalance(eth.accounts[0])

イーサリウムをインストール

ちょっと0が多いので、以下のコマンドでEthereumの単位で表示

web3.fromWei(eth.getBalance(eth.accounts[0]), "ether")

イーサリウムをインストール

0以上の数字が帰ってきたら、マイニング成功です。その数自分のイーサが掘れてます。

放置しておくとPCがどんどん計算を続けて熱くなってくるので、

miner.stop(0) 

で止めましょう

EthereumのプライベートチェーンをMacにインストールする

miner.stop()してもハッシュレートは0にならない時があります。
おかしいなとおもったけど、0になるまでには少し時間がかかるみたいです。

これで、EthereumをMacに落として、gethを起動、アカウントを作って、マイニングをしてみる。 まででした。

次は、EthereumのWalletでもつくってみようかな。

参考
http://www.ethdocs.org/en/latest/
https://book.ethereum-jp.net/