前回はEthereumの代表的なクライアントであるGethをインストールし、プライベートネットワーク(テストネット)への接続、コンソールの立ち上げを行いました。
今回はEtherを採掘する手順を解説していきます。
アカウントの作成方法
まずは、前回の記事にて、Gethのコンソール画面に入ったと思うのですが、もう一度そのコマンドを振り返りましょう。
$ geth –networkid “10” –nodiscover –datadir “${HOME}/eth_private_net” console 2>> ${HOME}/eth_private_net/geth.log
※コンソール とはコンピュータの入出力操作に用いる装置のこと。
続いて、Ethereumのアカウント(送受信するためのアドレス)を作る必要があります。アカウントは16進数で20文字の文字列です。なお、16進数とは、0から9までの数字とAからFまでのアルファベットを使って表現できる文字のことです。
コンソールの中に入ったら、次のコマンドを実行してください。
> personal.newAccount(“好きな文字をてきとーに入力してください”)
‘0x14723a09acff6d2a60dcdf7aa4aff308fddc160c’
ここで設定する「好きな文字」は、後に重要なものとなるので、忘れないように管理してください。続いて、アカウントを作成した後には、きちんとそのアカウントが作成されているか、確認しましょう。
> eth.accounts
‘0x14723a09acff6d2a60dcdf7aa4aff308fddc160c’
このように、作成したものと同じアドレスが出現していれば、アカウント作成が成功していることとなります。今回は、この作成したアカウントをもとに、マイニングや送金の操作を行っていくので、もう一つアカウントを作成してください。そして作成が完了したら、もう一度しっかりと作成されているか、確認してください。以下はその流れです。なお、マイニングについて理解を深めたい方はコチラをご覧ください。
> personal.newAccount(“好きな文字を再びてきとーに入力してください、これを次からパスフレーズと言います”)
‘0x1jddd8374jfejif82747582aaaaaa727748299aa’
> eth.accounts
‘0x14723a09acff6d2a60dcdf7aa4aff308fddc160c ,0x1jddd8374jfejif82747582aaaaaa727748299aa’
このように、2度目の確認の時にアカウント(0xで始まるもの)が二つできていれば、成功です。
マイニング実行
さて、次にマイニングをコンソールの中で実行してみます。ここではver.1.5のものと、1.6のものとで引数が違うので、それについてもお伝えします。
それでは、マイニングをスタートさせるために、以下のコマンドを入力してください。
> miner.start()
ここでバージョンの違いによって返り値が異なるのでご注意ください。
1.5系の場合
> miner.start()
true
1.6系の場合
> miner.start()
null
このようになります。続いて、マイニングが行われているかどうかの確認をするためのコマンドですが、以下のように入力すると確認できます。
> eth.mining
true
マイニングが行われているとtrue、行われていない場合はfalseを返します。次にマイニングの計算量を確認したい場合、以下のコマンドを入力してください。そうすると、単位時間当たりのハッシュ計算量が確認できます。
> eth.hashrate
59935
注意:DAGファイルを生成中の場合、ここではまだハッシュレートが0のままです。マイニングをした直後の場合は0という数字がでるので、慌てなくて大丈夫です。
なお、マイニングをもしも停止させたい場合は、以下のコマンドを入力してください。
> miner.stop()
true
Etherの送金
続いて、Etherの送金を行ってみましょう。今回はeth.accounts[0]からeth.accounts[1]へ「1ether」を送ってみることを目標にコマンドを入力してきます。
その前にはまず、送金はアカウントのロックがかかったままの状態なので、まず先にアカウントのロック解除から実行します。
> personal.unlockAccount(eth.accounts[0], “eth.accounts[0]のパスフレーズ”)
true
続いて、アカウントの残高を確認します。
> eth.getBalance(eth.accounts[0]
5000000000000000000
各自のマイニング状況によって、この数字は変化するので、必ずしもこの記事と同じ数字にならなくても大丈夫です。
また、現在の残高の表示のされ方は「wei」という単位なので、次のコマンドで「ether」に変更します。
> > web3.fromWei(eth.getBalance(eth.accounts[0]), “ether”)
5
> web3.fromWei(eth.getBalance(eth.accounts[1]), “ether”)
0
続いて、Etherの送金を行います。
> eth.sendTransaction({from: eth.accounts[0], to: eth.accounts[1], value: web3.toWei(1, “ether”)})
もしもここで、マイニングをとめたままだと、送金処理が完了しませんが、マイニングを継続させたままの場合は、送金が完了しているはずです。
> web3.fromWei(eth.getBalance(eth.accounts[1]), “ether”)
1
上記のようになれば大丈夫です。
なお、1etherの単位とweiの関係性についてですが、
1 Ether = 10^18wei(10の18乗)です。
マイニング
1点、Etherbaseというものについて紹介します。
Etherbaseとは、マイニングを行った時に報酬を手にすることができるアカウント(0xfejwai27372842・・・のようにあらわしたもの)を意味します。通常、何も操作をしなければ、eth.accounts[0]というものがEtherbaseになっています。このときの[0]というものですが、これはアカウントを作った際に自動で振り分けられる番号です。
Etherbaseを確認するコマンドは次の通りです。
> eth.coinbase
“0x1jddd8374jfejif82747582aaaaaa727748299aa”
もしも、Etherbaseを変更したい場合は次のコマンドを実行してください。
> miner.setEtherbase(eth.accounts[1])
true
なお、今回はアカウントを2つ作っており、1つ目に作ったものが[0]で、2つ目に作ったものが[1]という番号を振り分けられています。先ほども述べたように、通常何も操作をしていなければ、このEtherbaseは[0]のままなので、上記のコマンドでは[1]というものに変更するよ、という意味です。
次に、Etherbaseが変更されたか確認してみましょう。
> eth.coinbase
“0x14723a09acff6d2a60dcdf7aa4aff308fddc160c”
このように一回目の確認とは違うアドレスが表記されていれば、変更完了です。元に戻したい場合は、[1]を[0]に戻せば、元に戻ります。
いかがでしたでしょうか。3回に渡り、Etherの送金や、gethの立ち上げなどについてお伝えしてみました。ぜひみなさんもやってみてくださいね。