Gethとは、「Go Ethereum」の略で、イーサリアムの全てのノードを操作するためのコマンドラインインターフェースです。Githubの https://github.com/ethereum/go-ethereum からダウンロードできます。
特定のバージョンを希望の場合は、https://geth.ethereum.org/downloads/ からダウンロードできます。
Go言語でかかれていますが、Go言語を扱う必要はありません。
Geth (Go Ethereum)で出来る主なこと
Gethでは、CLIを通じて、さまざまなことが出来るのですが、主に3つのことが出来ると覚えておくとまずはいいと思います。
1.イーサリアム-ブロックのマイニング
マイナーは、マイニングの報酬として、イーサリアム通貨であるEthを受け取ります。
2.イーサリアムのアカウントを作成、管理する。
イーサリアムの通貨であるEtherを保存することも出来ます。アカウント間で、Eth通貨のトランザクションを可能にします。
3.コントラクトを作成するために使われます。
コントラクトは、アカウント間の通貨転送のように、コントラクトを転送することも出来ます。
さて、早速、環境からさくっと整えていきます。
Vagrant環境構築
コンソールを開き、以下のコマンドを打ち込み、ubuntu16.04をインストールします。
対象のフォルダまで、cdで移動する。
$ vagrant box add gbarbieru/xenial https://atlas.hashicorp.com/gbarbieru/boxes/xenial
$ vagrant init gbarbieru/xenial
$ vagrant up
$ vagrant ssh
Geth (Go-Etherum)のインストール
仮想環境に入ったら、以下のコマンドを打ち込みgethをインストールします。かなり簡単にインストールできます。
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository -y ppa:ethereum/ethereum
$ sudo apt-get update
$ sudo apt-get install ethereum
Gethプロセスの起動
gethとタイプします。起動のメッセージが表示されれば、バックグラウンで起動する状態となります。
通常、ポート30303が開かれ、その他のノードと繋がります。
$ geth
INFO [11-06|03:32:21] IPC endpoint opened: /home/vagrant/.ethereum/geth.ipc
について。
IPC(Inter-process Communications)は、ローカルコンピュータで動作していることを意味しています。
この状態にしておくと、他のノードとポート30303上でコミュニケートを図ろうとします。以下のようなメッセージが出て、ブロックを受け入れていることがわかります。
$ INFO [11-06|03:44:55] Imported new block receipts count=26 elapsed=376.12µs bytes=104 number=39770 hash=fab379…f739b8 ignored=0
これは、Gethが、geth.ipcファイルをデータディレクトリに置くことで、他のノードとのコミュニケーションプロセスに使われるためです。
2017年現在、クライアントのみで動くgethは開発中のようです。
このままにしておくと、次々にブロックを次々にインポートする状態ですので、一旦、プロセスを終了します。(Ctl+C)