Ethereum(イーサリウム)をMacにインストールして、ローカルのプライベートネットワークでマイニングまでやってみた。
最近話題のブロックチェーン、暗号通貨。
興味が出てきて、自分でGPUマイニングはしてみたのですが、まだいまいちブロックチェーンのことを理解していない気がする。。。
実際に触ってみないと理解できないですよね〜、ということでやってみました。
今回は、EthereumをMacにインストールして、Mac内(ローカル)のプライベートなEthereumを使えるようにして、ローカル内でマイニングをするってところまでやってみます。
まずEthereumを(イーサリウム)インストールしたいのですが、homebrewの公式リポジトリにないので、
Ethereum(イーサリウム)のリポジトリをbrewコマンドでインストールできるようにします。
ターミナルをひらいて、下記コマンドを実行。
[code]
brew tap ethereum/ethereum
[/code]
brew tapでethereum(イーサリウム)がbrewでインストールできるようになったので、実際にインストール!!
[code]
brew install ethereum
[/code]
下記のコマンドを叩いて、helpがダーッと出たら、インストール成功しています。
[code]
geth help
[/code]
※ brew tapについては以下参照
http://tukaikta.blog135.fc2.com/blog-entry-204.html
次に、任意の場所に、フォルダを作ります。
[code]
mkdir eth_test
[/code]
自分の場合は、
[code]
/Users/hiroki/eth_test
[/code]
にしました。
次に設定のファイルを作ります。
[code]
vim /Users/hiroki/git/eth_test/genesis.json
[/code]
[code]
{
"config" : {},
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty" : "0x200",
"coinbase" : "0x0000000000000000000000000000000000000000",
"timestamp" : "0x0",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"gasLimit" : "0x8000000",
"alloc" : {}
}
[/code]
※数値は任意で。。
ブロックチェーン情報をgenesisファイルの内容で初期化
[code]
geth –datadir /Users/hiroki/eth_test init /Users/hiroki/eth_test/genesis.json
[/code]
プライベートネットワークに接続
[code]
geth –networkid "10" –nodiscover –datadir "/Users/hiroki/eth_test" console 2>> /Users/hiroki/eth_test/geth_err.log
[/code]
すると、以下の画像みたいに、Welcomeと出たら成功です!わーい!
[code]
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
[/code]
これはGethというもので、コマンドでEthereumをいろいろ操作できます。
今回は、プライベートなEthereumをGethでいじっていきます。
まずは、アカウントの作成をします。()内は、パスフレーズです。
[code]
personal.newAccount("passwd0”)
[/code]
アカウント確認は以下でできます。
[code]
eth.accounts
[/code]
下記でマイナーのアカウントを確認できます。
[code]
eth.coinbase
[/code]
これで、マイナーアカウントの変更
[code]
miner.setEtherbase(eth.accounts[1])
[/code]
マイニング開始
[code]
miner.start(1)
[/code]
miner.startをしてもnullとでるけど、問題ないらしいです。
[code]
eth.hashrate
[/code]
でハッシュレイト確認すると、数字がどんどん上がっているのがわかると思います。
そして、どのくらい掘れているのかは、以下のコマンドで確認
[code]
eth.getBalance(eth.accounts[0])
[/code]
ちょっと0が多いので、以下のコマンドでEthereumの単位で表示
[code]
web3.fromWei(eth.getBalance(eth.accounts[0]), "ether")
[/code]
0以上の数字が帰ってきたら、マイニング成功です。その数自分のイーサが掘れてます。
放置しておくとPCがどんどん計算を続けて熱くなってくるので、
[code]
miner.stop(0)
[/code]
で止めましょう
miner.stop()してもハッシュレートは0にならない時があります。
おかしいなとおもったけど、0になるまでには少し時間がかかるみたいです。
これで、EthereumをMacに落として、gethを起動、アカウントを作って、マイニングをしてみる。 まででした。
次は、EthereumのWalletでもつくってみようかな。
参考
http://www.ethdocs.org/en/latest/
https://book.ethereum-jp.net/