1. TOP
  2. ブロックチェーン開発
  3. gethの使い方とWindowsでのインストール方法で送金とマイニング

gethの使い方とWindowsでのインストール方法で送金とマイニング

gethのインストール方法や使い方

Ethereum(イーサリアム)の開発で使う基本的な ツールにgeth(ゲス)があります。

gethを使うとバーチャルマシンな環境でブロックチェーンの操作ができます。例えば、ETHの送金やマイニングなどです。

gethとはGO言語で書かれており、正式名はGo Ethereumと呼びます。

gethはEthereumのスマートコントラクトの開発においては入口の部分に当たる必須の知識です。初めての場合は少し難しいですが、慣れると簡単です。

この記事では、初心者の方にも分かりやすく解説します。

なお、gethの開発環境はOSによって少し異なります。使えるOSはLinux(CentOS、Ubuntuなど)やMAC、Windowsです。

ここではWindowsで、gethのインストール方法からアドレス作成、マイニング、ETH送金など一連の流れを解説します。

gethのインストール

1.最初にgethをインストールします。

Go Ethereumのサイトにアクセスします。

2.Download Gethにある「Geth for Windows」を選択して、ダウンロードを開始します。64bit版になります。

主要プラットフォーム用のGethの最新64ビット版安定版をダウンロードできます

なお、32bitや過去のバージョンはページをスクロールすると下側にあります。自分の環境に合う種類を選んでください。

特定のリリース、オペレーティングシステム、またはアーキテクチャをお探しの場合

3.インストーラーをクリックします。

gethをインストールするファイル

4.ライセンス規約に関する説明画面です。「I Agree」をクリックします。

システム使用ライセンスに同意する

5.「Geth」にチェックが付いた状態で「Next>」をクリックします。

標準的な初期設定でのインストール

6.インストール先を選択します。初期設定ではProgram Filesになっています。

「Install」をクリックします。

インストールをするフォルダを指定

7.「Completed」になればインストールが完了しました。「Close」をクリックします。

無事にインストールが完了

8.Program Fileを開くとGethフォルダがあり、中には「geth.exe」と「uniInstall」があります。

geth.exeとuniInstallの2種類がある

なお、コマンドプロンプトを使用して確認もできます。

以下のコードを入力して、gethが保存されている場所に移動します。

フォルダ内のファイル一覧を確認します。

「geth.exe」と「uniInstall」がありました。

コマンドプロンプトで検索するとgeth.exeとuniInstallが存在している

9.Program File内のGethフォルダ内に「genesis.json」ファイルを作成します。

  • genesis.jsonはブロックチェーンの最初のブロックを作成するための初期設定です。
  • genesis.jsonファイルによりgethが起動して、ブロックチェーンが立ち上がります。
  • genesis.jsonファイルはエディタを利用してコードを記述して作成します。

*メモ帳は使用しないでください。拡張子に.txtやBOM有りになるためです。

「TeraPad」や「サクラエディタ」などでも良いです。

以下のコードを記述してUTF-8のBOMなしで保存します。ファイル名はgenesis.jsonにします。

10.Program File内のGethフォルダ内に「data」という名前のフォルダを作成しておきます。

ポイント

genesis.jsonの保存場所はProgram File内のGethフォルダ内以外でも可能です。

Program File内のGethフォルダに作成しても良いのですが、管理者権限のコマンドプロンプトを使用する必要が出て煩わしいので、デスクトップでもマイフォルダでも構いません。

方法としては「genesis.json」やgethで作成される各種データを保存するためのフォルダをデスクトップやマイフォルダなどに作成します。

フォルダ名は「Gethdata」にします。

*フォルダ名は他でも構いません。

また、根本的に最初のインストール先をProgram File内ではなく、「C:\Users\ユーザー名\geth」にすることをお勧めします。この記事では初心者の人に分かりやすいようにProgram File内へインストールしただけであり、通常の開発ではインストール先は「C:\Users\ユーザー名\geth」が一般的です。

gethの起動

プライベートネットワークに接続してgethを起動します。

1.管理者権限のコマンドプロンプトを起動します。

Gethフォルダに移動します。

2.genesis.jsonを初期化する必要があります。

Successfullyと表示されれば完了です。

gethのインストールが成功してSuccessfullyが表示される

3.gethを起動してプライベートネットワークに接続します。

networkidには適当な数値を入力してください。ここでは、10にしました。

処理結果のログはnode.logに自動保存されます。

4.正しく起動しているか確認します。

正常にシステムが起動している

genesis.json内のコードに記述した「nonce」や「mixhash」と内容が同じであれば大丈夫です。

アカウント作成

Ethereumを保存するためのアカウントアドレスを作成します。

1.ここでは2つ作成してみます。

test1部分はパスワードを意味します。何でも構いません。

アカウントが作成できました。

アカウント1が作成できた

続けて、もう1つ作成します。

アカウント2も完成

ちなみにパスワード部分はアカウント1と2ではtest1とtest2で変えていますが、同じにしても構いません。

2.作成したアカウントを確認しましょう。

無事2つ作成されています。

イーサリアムを受け取るアドレスが2個完成

マイニング

Ethereumをマイニングします。

1.マイニング報酬を受け取るアカウントを確認します。

アカウントは切り替えることもできます。2番目に作成したアカウントであれば、次のように記述します。

2.アカウントの残高を確認しておきます。

当たり前ですが、現時点では0ETHです。

eth.account[0]は1番目に作成したアカウントです。

2番目に作成したアカウントであれば、eth.account[1]です。

採掘前のブロックも確認してみます。

採掘前ですのでブロックも0です。

3.採掘をスタートします。

nullになればマイニングが開始されます。

イーサリアムのマイニングがスタートする

4.マイニングが開始されているかどうかを確認します。

結果がtureであればマイニング中です。

5.採掘をストップします。

trueになればマイニングが終了します。

マイニングを終了する

6.採掘したEthereumのブロックを確認しましょう。

イーサリアムの残高とブロックを確認

ブロックが作成されています。

次にEthereumの残高を確認します。

Ethereumのweiでの残高表示

無事にEthereumがアカウントに増えました。

当たり前ですがプライベートネットワークであるため現実世界で採掘したイーサリアムが存在する訳ではありません。

桁数が大きい理由は単位がwei(1eth=10の18乗)のためです。

ETHで表示するには次のようにコードを記述します。

ETH表記に変わりました。

イーサリアムの標準的な単位で残高を確認

僅か5分間の採掘ですが、1ブロック当たりの報酬が5ETHのため511ブロックの生成で2555ETH採掘できたことになります。

送金

Ethereumを作成したアカウント1からアカウント2へ送金してみます。

1.送金するにはアカウントのロックを解除する必要があります。

アカウントのロックを解除する

アカウント1からアカウント2へ10ETH送金します。

イーサリアムの送金を開始

2.送金を完了するためにはマイニングをスタートする必要があります。

送金できたか確認しましょう。

アカウント2に10ETHが増えました。

送金を受け取ったのでアカウントの残高が増えている

マイニングをストップします。

3.今回の送金に関するトランザクションを調べます。

getTransaction内の数値は先程送金時に作成したトランザクションを記述します。

送金に関する情報が載ったトランザクション

4.ブロック情報も調べられます。

先程のトランザクション情報に表示されたblogNumberで以下のコ-ドのように調べます。

送金に関するブロック情報の確認

Gethのまとめ

Gethを終了するときはexitを入力します。

gethでコマンドプロンプトに入力している際に[TAB]キーを押すと、コマンドの補完機能が使えます。便利ですので利用してください。

gethの使い方は難しいように見えて案外簡単です。

Ethereumの開発において基本となるので、しっかりとマスターしてください。