開発

プログラマー必見!Ethereumのマイニング・送金方法【2017年8月30日最新版】

前回は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の立ち上げなどについてお伝えしてみました。ぜひみなさんもやってみてくださいね。

日本で一番簡単にビットコインが買える取引所 coincheck bitcoin
bitFlyer ビットコインを始めるなら安心・安全な取引所で

関連記事

  1. 開発

    プログラマー必見!Gethの環境構築について【2017年8月25日更新版】

    Ethereumには複数のクライアントがありますがそれらをご存知でしょ…

  2. 開発

    プログラマー必見!Ethereumのプライベートネットワーク起動【2017年8月25日最新版】

    EthereumのクライアントであるGethのインストールは以前の記事…

  3. ブロックチェーン

    トランザクションのscriptとScript言語とは?【Bitcoinを理解する-5】

    ビットコインのトランザクションには、トランザクションscriptと、S…

日本で一番簡単にビットコインが買える取引所 coincheck bitcoin

おすすめ記事

最近の記事

  1. 【概要と結果を簡単理解】分散型台帳技術に関する共同調査【日本…
  2. トランザクションのscriptとScript言語とは?【Bi…
  3. 【ICOを読み解く】ChangeはERC20トークン準拠・A…
  4. マクロの視点でBlockchainの動向を理解する。
  5. Dapps(自律分散型アプリケーション)とは何か。
  1. ブロックチェーン

    トランザクションのscriptとScript言語とは?【Bitcoinを理解する…
  2. 開発

    プログラマー必見!Gethの環境構築について【2017年8月25日更新版】
  3. マイニング

    Bitcoinにおけるマイニング(採掘)とはそもそも何なのか。【Bitcoinを…
  4. スマートコントラクト

    【概要と結果を簡単理解】分散型台帳技術に関する共同調査【日本銀行・欧州中央銀行】…
  5. 開発

    プログラマー必見!Ethereumのプライベートネットワーク起動【2017年8月…
PAGE TOP