前回の記事で紹介した...Gethの起動ができるようになったら、早速Etherをマイニング(mining)してみましょう。マイニング(mining)する前にまずEthereumアカウントの作成をしていきます。今回の流れはEthereumのアカウント(EOAとContractアカウント)について解説アカウントを作成Ether送金のために別のアカウントをもう一つ作成マイニング(mining)の準備マイニング(mining)の実行マイニングで受け取った報酬を確認になります。アカウントとはどんなものなのか説明します。Ethereumアカウントの作成Ethereumには2つの種類のアカウントがあります。accounts)は私たちが実際にログインして使用するアカウントです。Etherを送金したり、Contractを実行したりすることができます。EOAでEtherの送金をするためにはトランザクション生成する必要があります。accounts)は外部所有アカウントとも呼ばれることがあります。Contract(コントラクト)アカウントContract(コントラクト)アカウントはContract(コントラクト)をブロックチェーン上にデプロイした際に作成されるアカウントです。コントラクトコードによって制御されています。Contractアカウントに設定されているコントラクトコードに何かしらのバグがある場合、Etherの不正送金やアカウントの凍結などの深刻な状態を招く可能性があります。Contractアカウントにはコードを実行したり、他のアカウントにメッセージを送ったりする役割があります。EOAアカウントや他のContractアカウントから働きがけがない限り、Contractアカウント自ら実行することはありません。アカウント(EOA)を作成する前回と同様Gethを起動するコマンドを入力しましょう。コンソールが表示されている状態にします。console続いてアカウントを作成するコマンドを入力していきます。personal.newAccount("password0")"0efd7300a788e022dfkja4d7969a1j3p59f2c3ebcc3"今回引数として指定した”password”は自由に変えても構いません。次に出力された、”0efd7300a788e022dfkja4d7969a1j3p59f2c3ebcc3′′は今作成されたアカウントのアドレスになります。誰かにEtherを送金したいな〜と思ったときはこのアドレスを使って送ります。アドレスは人によって値が必ず異なるようにできているので違っていても大丈夫です。次に、アカウントが作られたか確認します。以下のコマンドを入力してみましょう。このノードが管理しているアドレスを全て表示することができるコマンドです。eth.accounts["0efd7300a788e022dfkja4d7969a1j3p59f2c3ebcc3"]さきほど作ったアカウントのアドレスが表示されましたね。送金するためにもう1つアカウント(EOA)を作る今回は2つのアカウントを使って送金処理をしていきます。先ほどと同じような手順でもう1つアカウントを作成してましょう。personal.newAccount("password1")"0eff4822bb24dd802fff9ce3900ba11eels40ac328"2つ目のアカウントは引数を”password1′′に設定しました。アカウントが2つできている状態かもう一度確認しましょう。"0eff4822bb24dd802fff9ce3900ba11eels40ac328"]以下の表示になったでしょうか。配列の番号を指定することで、それぞれのアカウントのアドレスを取得することもできます。eth.accounts[1]"0eff4822bb24dd802fff9ce3900ba11eels40ac328"マイニング(mining)をする前にEtherbaseとはマイニングをする前にEtherbaseという重要な役割について説明します。Ethereumではマイニングの報酬を受けとるアカウントのことをEtherbaseと呼びます。デフォルトではeth.account[0]が設定されています。Etherbaseアカウントを変更してみましょう。今回はeth.account[0]とeth.account[1]のアカウントがあるためEtherbaseを0から1に変更していきたいと思います。Etherbaseアカウントを変更するまずEtherbaseアカウントのアドレスをコンソールから確認します。#eth.account[0]のアドレスが表示されている上のような出力が出ればおっけいです。このアドレスは先ほど作成したeth.account[0]のアカウントと同じであることを確認してください。次にEtherbaseをeth.account[0]からeth.account[1]に変更します。Etherbaseの変更はminer.setEtherbaseコマンドで行うことができます。miner.setEtherbase(eth.accounts[1])truetrueが出力されれば成功です。本当にEtherbaseが変更されているか確認しましょう。#前と違うアカウントが表示されている変更できることが確認できたらわかりやすいようにeth.accounts[0]の方にEtherbaseを戻しておきましょう。miner.setEtherbase(eth.accounts[0])trueマイニング(mining)をしてみる実際に自分のPCでマイニング(mining)をしてEtherを採掘していきましょう。マイニング(mining)前後の残高を比較するために、残高とブロック数の確認を行います。以下のコードを入力してアカウントが持っている残高の確認をしましょう。eth.getBalance(eth.accounts[1])0作ったばかりなのでまだ残高は0です。続いてブロック数も確認していきます。以下のコマンドを打ち込んでください。eth.blockNumber0こちらも同様に0になったと思います。ここからマイニングをしてEtherを採掘していきます。miner.startコマンドでマイニングをするminer.startコマンドでマイニングをしていきましょう。以下のコマンドを入力するとマイニング(mining)が始まります。初回実行時はDAGというものが生成されるためマイニング(mining)はすぐ行われず時間がかかります。するとDAGの生成が終わりマイニングが始まります。以下のコマンドでマイニング(mining)ができていることを確認しましょう。eth.blockNumber43それぞれのコマンドの役割はこちらです。eth.miningマイニング(mining)しているかどうかを確認できます。している場合はtrue、していない場合はfalseを返します。eth.hashrateマイニングの計算力を表す値です。ハッシュレートの値が12034であることは、1秒間に12034回のハッシュ計算ができることを意味します。マイニング(mining)で受け取った報酬を確認するある程度時間がたったらマイニング(mining)の報酬が溜まっているので確認してみましょう。報酬額は以下のコマンドで確認できます。eth.getBalance(eth.accounts[0])1.895e+21とてつもなく大きな数字がでてきました。これはweiという単位で表示されています。weiはEthereumにおける最小単位です。10の18乗のweiを意味します。weiだとどくらいの値段なのか価値がわからないので、Etherに変換します。"ether")25552555Etherを取得できたことがわかります。以上でマイニング(mining)が終了します。まとめ今回はEthereumのアカウント(EOA及びContractアカウント)についての紹介、Ethereumアカウントの作成(EOA)、マイニング(mining)実行をしました。Blockmania。