Blockchain
Ethereum
geth

Ethereum Gethをインストールして開発環境を整える (1)

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をインストールします。かなり簡単にインストールできます。

ubuntu16
$ 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が開かれ、その他のノードと繋がります。

ubuntu16
$ geth

alt

INFO [11-06|03:32:21] IPC endpoint opened: /home/vagrant/.ethereum/geth.ipc
について。
IPC(Inter-process Communications)は、ローカルコンピュータで動作していることを意味しています。

この状態にしておくと、他のノードとポート30303上でコミュニケートを図ろうとします。以下のようなメッセージが出て、ブロックを受け入れていることがわかります。

ubuntu16
$ 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)