Windowsでのgethセットアップ

【はじめに】

Ethereumは開発者向けに作られた代表的なブロックチェーンネットワークであり、また現在におけるビットコインの次の総計価値を誇る仮想通貨の基盤技術です。このマニュアルでは、その代表的なクライアントであるGeth(go-ethereum)を用いて、パソコンにEthereumのテスト環境であるプライベートネットワークを立ち上げ、接続します。プライベートネットワークは、そのパソコンの中で完結するネットワークです。他のテスト環境にはMain net とTest netと呼ばれる環境がありますが、それらに比べるとプライベートネットワークでは保存すべきデータ量が少ないため、容易にEtherを採掘できます。

また、このEtherは仮想通貨としてトレードされている、通貨として価値があるEtherではなく、あくまでもテスト環境でのEtherであり、貨幣的価値はありません。

 

用語:ファイル(=ディレクトリ)

バージョン: Windows 8 (64bit)

gethバージョン: 1.6.7

 

手順

0:プログラミング用のテキストエディタが入っていない場合は入れる

(デフォルトのテキストエディタではのちのJSONファイル作成ができないため)

例: sublime textというエディタ

Sublime Text: The text editor you'll fall in love with

 

1:Archiveというファイルをクリックしてインストールする

https://geth.ethereum.org/downloads/

 

注意:トップばーのボタンをクリックしないで、スクロールして見えてくる下のリストから、Windowsタブを選択して、パソコンが32bitか64bitに応じて該当ファイルをインストールする。

f:id:haruokny:20170906204708p:plain

 

注意2:Installerはインストールしなくていいのかもしれない。

 

 

2:zipファイルを解凍する

 

3:ポップアップ画面に対応する

Agree, OKなどを押して進む。

途中でgethを保存する先を決める画面がある。パスを設定する場合は設定して、

パスを忘れないようにどこかに記録/記憶して、進む。

終わったら画面を閉じる。

 

4:コマンドプロンプトまたはPowerShellを開き、その中で、gethが保存されている場所へ移動する。

コマンド例:

PowerShellの場合:  chdir 'C:¥Program Files¥Geth'

コマンドプロンプトの場合: cd 'C:¥Program Files¥Geth'

 

5:そのディレクトリにgeth.exeがあることを確認する。

PowerShellの場合: ls

コマンドプロンプトの場合: dir

 

ーー

注意:このディレクトリからは移動せず、以下のステップをおこなってください。

必要であれば、コマンドプロンプトの新しいウィンドウを別途開きコマンドを打ってください。

新たなウィンドウを開くコマンド: コマンドプロンプト: start cmd.exe 

ーー

注意:geth のみでコマンドを打つと、gethネットワークが接続して、大量のデータをダウンロードし始めてしまうので、打たないようにする。

ーー

 

6:今回のネットワークで使うためのデータを保存するためのファイルを作成する

どこか自分の決めた場所に、自分で決めた名前のファイルを作ります。

gethfileという名前にした場合の例: C:¥Users¥Haruko¥Documents¥gethfile

 

6:そのファイルの中にネットワークの最初のブロックを作成する

ここでは「mygenesis.json」という名前のファイルを作成します。

ファイル名はこちらにすることを推奨します。

Windowsにデフォルトで入っているテキストエディタではなく

プログラミング用のエディタを用いてファイルを作成してください。

テキストエディタで作成してしまうと、ファイル名がどうしても「mygenesis.json.txt」のように 「.txt」がついてしまい、使えません。

 

中身には以下を書き、保存します。

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

 

http://qiita.com/oggata/items/eea4d5e37f38785f6079 より

 

7:同じファイルの中にネットワークのデータを保存するためのファイルを作成する

 名前は自分で決めて結構です。

gethdataという名前にした場合の例: C:¥Users¥Haruko¥Documents¥gethfile¥gethdata

 

8:今後の処理のために、このファイルのあるディレクトリのパスを明らかにしておきます。

PowerShell: pwd

コマンドプロンプト: dir

結果の例: C:¥Users¥Haruko¥Documents¥gethfile

 

9:プライベートネットワークの最初のブロックを作成する

コマンドプロンプト/PowerShellにて、以下のコマンドを打ちます。 

geth -datadir データ保存用のディレクトリのパス init 最初のブロックのファイルを作成したディレクトリのパス¥mygenesis.json

例: geth -datadirC:¥Users¥Haruko¥Documents¥gethfile¥gethdata init C:¥Users¥Haruko¥Documents¥gethfile¥mygenesis.json

 

以下のような文字列が出ていれば成功です。 

WARN [09-05|16:56:13] No etherbase set and no accounts found as default

省略

INFO [09-05|16:56:13] Writing custom genesis block

INFO [09-05|16:56:13] Successfully wrote genesis state         database=lightchaindata                                                             hash=6231b0…a0300b

  

10:プライベートネットワークのコンソール(コントローラ)を立ち上げる

コマンドプロンプト/PowerShellにて、以下のコマンドを打ちます。 

geth -datadir データを入れるディレクトリのパス -networkid 2 -nodiscover -maxpeers 0 -port 0 console

例: geth -datadir C:¥Users¥Haruko¥Documents¥gethfile¥gethdata -networkid 2 --nodiscover -maxpeers 0 -port 0 console

 

文字列が出てきて、20秒以内にこのような三角が出てきたら成功しています。

 

こちらで様々なコマンドを打ち、ネットワークでの動作を指示することができます。

手順例: 

Ethereumクライアント「Geth」を試してみる - Qiita

一覧: 

Command Line Options · ethereum/go-ethereum Wiki · GitHub

 

11:ネットワークを閉じる

>のところに

exit

と打つとコンソールを閉じることができ、ネットワークも閉じられます。

データは保存されているので消えることはありません。