プログラミング

【初心者向け】gethのインストールから起動方法をまとめてみた

gethを用いてノードを立てることができ、ネットワークに参加することができます。開発フェーズによってアクセスするネットワークを変更することで、スムーズにスマートコントラクトの検証を行うことができます。今回は、起動方法インストールから起動方法についてまとめてみました。

2019.09.16
【初心者向け】gethのインストールから起動方法をまとめてみた

arrow_drop_down 目次

はじめに

 前回の記事で、gethについて説明した通り、gethとは、Ethereum(イーサリアム)財団が提供しているクライアントソフトで、Go Ethereumの略称です。Ethereumを利用する場合、まずはEthereumのP2Pネットワークに参加する必要があります。ネットワークへの参加はEthereumクライアントをインストールし起動することで参加が可能になります。

Gethのインストール方法

 今回は、Macを使用します。

ターミナルを開いて、Homebrewをダウンロードしていない方は、まずは、ダウンロードしましょう。

Homebrewのダウンロード

 Homebrewは、macOS用のパッケージマネージャーです。macOS上で各種ソフトウェアのインストール、アンインストールが簡単にできるパッケージ管理システムです。

1、ターミナルを開き、次のコマンドを入力します。

> /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

2、インストールが終了後、バージョンの確認を行う

> brew -vHomebrew 1.8.6
Homebrew/homebrew-core (git revision 304df; last commit 2018-12-23)
Homebrew/homebrew-cask (git revision 8734b; last commit 2018-12-22)

gethのインストール

> brew tap ethereum/ethereum
> brew install ethereum
> geth help

gethの起動

 プライベートネットワークでの開発を行うため、ローカル環境に1番最初のブロックであるGenesisブロックを作成します。

Genesis.jsonの作成

 先ほど、ダウンロードしたeth_privateというファイルの中にgenesis.jsonを作成しましょう。

> mkdir eth_private/genesis.json

myGenesis.jsonを開いて、下記を記入してください。

{
"config": {
        "chainId": 15,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
},
"nonce": "0x0000000000000042",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x400",
"alloc": {},
"coinbase": "0x3333333333333333333333333333333333333333",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x",
"gasLimit": "0x8000000",
}


Genesisブロックを生成

 genesisファイルを作成したら、ブロックチェーンの情報を初期化します。

> geth --datadir ~/eth_private/ init ~/eth_private/genesis.json

下記のようなメッセージが、出力されれば初期化成功となります 。

INFO [09-15|02:20:26.296] Maximum peer count                       ETH=25 LES=0 total=25
INFO [09-15|02:20:26.339] Allocated cache and file handles         database=~/eth_private/geth/chaindata cache=16 handles=16
INFO [09-15|02:20:26.376] Writing custom genesis block 
INFO [09-15|02:20:26.377] Persisted trie from memory database      nodes=0 size=0.00B time=20.664µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [09-15|02:20:26.378] Successfully wrote genesis state         database=chaindata                                  hash=76d747…1a5e65
INFO [09-15|02:20:26.378] Allocated cache and file handles         database=~/eth_private/geth/lightchaindata cache=16 handles=16
INFO [09-15|02:20:26.399] Writing custom genesis block 
INFO [09-15|02:20:26.399] Persisted trie from memory database      nodes=0 size=0.00B time=5.421µs  gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [09-15|02:20:26.400] Successfully wrote genesis state         database=lightchaindata                                  hash=76d747…1a5e65

Successfully wrote genesis stateが表示されていれば成功です。        

Gethの起動

 それでは、先程用意した、「eth_private」や「genesis. json」を用いて、Gethを起動していきます。

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

結果は、

Welcome to the Geth JavaScript console!
instance: Geth/v1.8.22-stable/darwin-amd64/go1.11.5
 modules: admin:1.0 debug:1.0 eth:1.0 ethash:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

がでれば、起動成功となります。

まとめ

いかかでしたか?今回は、gethをインストールし、起動させるところまで成功いたしました。もしできなかった場合は、コマンドの文字があっているのか?ファイル名が間違っていないかなど確認してみましょう。次回は、gethを起動し、ブロックの確認やアカウントの作成や・確認など行なっていきたいと思います。

「PR」自身の力でブロックチェーンアプリケーションを作ってみませんか?

 自身の手でブロックチェーンアプリケーションを作りたいと考えている方は、プログラミングスクールに通ってみてはいかかでしょうか?

  • ブロックチェーンを学んで、今までにない何か作ってみたい
  • 今のうちにブロックチェーンの概念を理解し、開発もできるようになっておきたい
  • プログラミング初心者だけどブロックチェーンアプリケーションを作ってみたい
  • 独学で本や記事を見ながら勉強したけど、途中で一度挫折してしまったためメンターをつけて学びたい

と感じてる方は、BLOCKCHAIN Code Campがおすすめです。

BLOCKCHAIN Code Campとは

 プログラミンング初心者からでもブロックチェーンアプリケーションを作ることができるオンライン完結型のプログラミングスクールです。現役のブロックチェーンエンジニアが1対1でメンターとなって、最短3ヶ月で、ブロックチェーンの概念や、ブロックチェーンアプリケーションを作れるようになれます。

現在無料相談会も実施しております。 少しでもご興味ある方は、こちらのサイトよりお問い合わせください。