MacにGethを入れてローカルでマイニングと送金を試してみた!

MacにGethを入れてローカルでマイニングと送金を試してみた!

 

 

どうもこじりょー(@kojiryoinvestor)です。

イーサリアムクラインアントの「Geth(Go Ethereum)」をインストールして遊んでました。

ローカル環境内のみのブロックチェーンネットーワークでマイニングしたり送金したりと、とても勉強になり楽しかったです。

そこで今回の記事では、Gethのインストール方法からマイニングと送金を試す方法をご紹介します。

やってみると意外と簡単なので、ぜひ触ってみることをオススメします。

Gethのインストール方法

Gethをダウンロードする

まずはじめに、Gethの実行をファイルをGo Ethereum公式サイトからダウンロードします。

今回はMacにインストールするので、macOS版のGethを選択します。

Gethの実行ファイルを展開する

ダウンロードしてきたファイルは一旦置いといて、Gethを動かす環境を構築します。

まずMacの「Users/admin」ディレクトリの中に「geth」というフォルダを新規作成しましょう。

 

Users/admin/geth
「Finder」を開いて「admin」が表示されていない場合は、「Finder」を選択し[ command ] + [ Shift  ] + [H]キーを同時に押すことで表示されます。

 

「admin」ディレクトリの中に「geth」フォルダを新規作成したら、ダウンロードしてきたファイルを展開します。

展開したら中身を「geth」フォルダの中にコピーしましょう。

これでGethのインストールは完了です。

Gethの起動方法

プライベートネット起動の準備

イーサリアムのネットワークは3種類あります。

・メインネット

全世界に公開されている本番環境のネットワーク。

・テストネット

メインネットに類似した環境でテストができるネットワーク。

全世界に公開されている。

・プライベートネット

自分のPC内に構築できる開発用のプライベートなネットワーク。

今回はプライベートネットワークを使ってGethの起動をしていきます。

まずgethフォルダの中に「eth_private_net」というフォルダを作成します。

 

~/geth/eth_private_net

 

次に「eth_private_net」フォルダの中に「myGenesis.json」というファイルを作成します。

「myGenesis.json」は最初のブロック情報を記述したファイルです。

 

上記のソースコードを記述したファイルを「eth_private_net」フォルダの中に保存しましょう。

スポンサーリンク


プライベートネットでGethを起動する

必要なファイルを準備できたら、いよいよGethを起動していきます。

まずGethの初期化処理をするコマンドをターミナルを使って実行します。

~/geth/geth --datadir ~/geth/eth_private_net init ~/geth/eth_private_net/myGenesis.json

上記のコマンドを実行して「Successfully wrote genesis state」と表示されたら初期化の成功です。

 

Gethの初期化成功

初期化が成功したら、Gethの起動コマンドを入力します。

~/geth/geth --networkid "15" --nodiscover --datadir "~/geth/eth_private_net" console 2>> ~/geth/eth_private_net/geth_err.log

上記のコマンドを実行して「Welcome to the Geth JavaScript console!」と表示されたら、Gethの起動に成功です。

ちなみにGethを終了したい場合は下記のコマンドを実行すれば終了します。

exit

Gethで遊んでみよう

アカウントを作成する

Gethを起動したらさっそくアカウントを作成しましょう。

アカウント作成するためには下記のコマンドを実行します。

personal.newAccount("任意のパスワード")

()内はお好きなパスワードを入力してください。

なおここで設定したパスワードはアカウントロックを実行する際に必要なため、忘れないようにしましょう。

上記のコマンドをパスワードは同じでいいので3回実行します。

次に下記のコマンドを実行してアカウントが作成できているかを確認します。

eth.accounts

上記のコマンドを実行するとアカウントが表示されます。

3回実行すればアカウントが3つ出力されているはずです。

以上でアカウントの作成と確認ができました。

マイニングをする

アカウントの作成ができたら、次はマイニングをしてEtherを入手していきましょう。

マイニングを実行するためには下記のコマンドを実行します。

miner.start(1)

実行すると「null」と表示されます。

続いてマイニングが実行されているかを確認するため下記のコマンドを実行します。

eth.mining

「true」と表示されればマイニングが実行されています。

1〜2分もすればマイニングが成功してブロックが続々と作成されていきます。

下記のコマンドを実行すれば現在のブロック高を見ることができます。

eth.blockNumber

ブロックが作成されていればマイニングの報酬でEtherを得ているはずです。

下記のコマンドを実行して残高を確認することができます。

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

「eth.accounts[0]」というのは一番最初に作成したアカウントです。

特に変更していなければ、マイニングの報酬を受け取るアカウント(コインベースアカウント)は一番最初に作成したもの(eth.accounts[0])になっています。

マイニングの報酬でEtherを得たところでマイニングを一旦停止してみましょう。

マイニングを停止するには以下のコマンドを実行します。

miner.stop()

上記のコマンドを実行すると「true」と出力されます。

続いて下記のコマンドを実行してマイニングが停止しているかを確認します。

eth.mining

上記のコマンドを実行して「false」と表示されればマイニングは停止しています。

Etherを送金してみよう

マイニングでEtherを獲得したら次は送金を試しましょう。

ここではeth.account[0]からeth.account[1]へ送金をします。

それぞれのアカウント残高は以下のコマンドで確認できます。

この時点では、eth.account[0]は835etherを所持していて、eth.account[1]は0etherとなっています。

それでは送金を行なっていきましょう。

まず送金する側のアカウントロックを解除します。

ここではeth.account[0]が送金する側なので、eth.account[0]のアカウントロックを解除します。

アカウントロックは以下のコマンドで解除します。

personal.unlockAccount("任意のアカウント")

コマンドを実行するとパスワード入力が求められるので、アカウントを作成した時のパスワードを入力します。

「true」と表示されればアカウントロックの解除が完了です。

アカウントロックが解除されたことで送金ができるようになります。

ここではeth.account[0]からeth.account[1]へ100etherを送金します。

送金コマンドは以下のようになります。

eth.sendTransaction({from:eth.accounts[0], to:eth.accounts[1], value: web3.toWei(100,"ether")})

この時点ではマイニングが停止しているため、送金処理が完了しません。

そこでもう一度マイニングを実行します。

マイニングを実行して1〜2分もすれば送金が承認されます。

eth.account[0]からeth.account[1]へ100etherの送金ができました。

おわりに

Gethをインストールしてマイニングや送金をするのは難しいのかなと思っていたのですが、やってみると意外と簡単で驚きましたね。

GethはDappsの開発時やブロックチェーンの勉強に役立つので、機会があれば是非触ってみることをおすすめします。

また今回の記事は以下の書籍を参考に書いておりますので、ぜひそちらも参考にしてみてください。

Dapps開発のチュートリアル動画

Dapps開発のチュートリアル動画をYoutubeで公開しています!

よろしかったらチャンネル登録をよろしくお願いします!

Dapps開発カテゴリの最新記事