blockchain

WindowsでGethをインストールしてマイニングを体験![初心者向け]

投稿日:9月 19, 2018 更新日:

Geth(Go Ethereum)をインストールしてイーサリアムで遊んでみたい!

けど自分windowsだし、パソコン詳しくないし難しそう…ってな方向けに

Windows10
gethをインストールして
・Etherをローカル環境(プライベートネット)採掘(マイニング)する

ところまでを僕がつまづいたポイントを踏まえて解説します。

 

Gethのインストール

の前に...

後でうまくいかなくなってしまうので先に自分のMicrosoftアカウントのユーザー名に全角文字が入っていないか確認しましょう!

僕はユーザー名が漢字だったので全然うまくいかなくて大変な思いをしました...。

ユーザー名のチェック

簡単なチェック方法は

1.エクスプローラー > Windows(C:) > ユーザー と開いていく。

2.「ユーザー」フォルダの中の自分のユーザー名っぽいフォルダ(自分の名前とか)が全角文字でなければOK!

・一番上みたいなのならOKで

・一番下みたいなのならダメなので

 

→・ユーザー名が半角文字の別のアカウントがあれば切り替えましょう

・無いなら作りましょう!すぐ作れます!

Microsoftアカウントの作り方

1.スタートメニューから設定(歯車マーク)を開きます。

2.アカウント > 家族とその他のユーザー と開いていきます。

3.家族とその他のユーザー の画面から その他のユーザーをこのPCに追加 をクリックします。あとは画面の指示に従いましょう。

4.新しいアカウントでwindowsにログイン出来たら先ほどのユーザ名のチェックと同じ手順で半角文字になっていることを確認しましょう。

 

では改めて...

Gethのインストール

Gethのインストールはここから

for Windowsを選択するとダウンロードダウンロードが始まります。

 

ダウンロードしたファイルを実行して

1.I Agree をクリック

2.Gethにチェックを入れてNextをクリック

3.インストール先フォルダを先ほどユーザ名のチェックで確認した場所に指定します。「C:\Users\(ユーザー名)\geth」と打ち込むか、Browse…から探してからInstallをクリックしましょう。

 

これでインストールは完了です。

次はGethを動かしていきましょう。

 

Gethの起動

起動の準備(private_netフォルダ作成、genesis.jsonファイル作成)

まずは新しくできたgethフォルダの中に「private_net」という名前のフォルダを新規作成しましょう。

次に「private_net」の中に下のコードを記述したの.jsonファイルを作成しましょう。


{
"config": {
"chainId": 33,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"nonce": "0x0000000000000033",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"gasLimit": "0x8000000",
"difficulty": "0x100",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x3333333333333333333333333333333333333333",
"alloc": {}
}

メモ帳にコピーして「ファイル」メニューから

名前をつけて保存 > ファイル名を「genesis.json」、ファイルの種類を「すべてのファイル」にして「Private_net」フォルダの中に保存すればOKです。

 

Pathを通す(環境変数の編集)

次節以降のコマンドプロンプトで快適に操作していくのに必要です。

1.画面左下の「ここに入力して検索」に「環境変数を編集」と入力して一番上に出てきたものをクリック。

2. ユーザーの環境変数からPathを選択し、「編集」をクリック。

3.「新規」をクリックして「C:\Users\(ユーザー名)\geth」と入力。

4.「OK」をクリックしてPCを再起動する。

 

これで起動の準備が整いました。

ここから「コマンドプロンプト」を使ってGethを起動していきます。

コマンドプロンプトの起動

コマンドプロンプトは画面左下の「ここに入力して検索」に「コマンドプロンプト」と入力すれば表示されるのでクリックすれば開くことができます。

よく使うことになるのでタスクバーにピン留めしておくといいでしょう。

 

コマンドプロンプトでGethを初期化

まずはgethの初期化を行います。

コマンドプロンプトで


geth --datadir C:\Users\(ユーザー名)\geth\private_net init C:\Users\(ユーザー名)\geth\private_net\genesis.json


と入力してEnterキーを押しましょう(コピーしてユーザー名のところだけ変えるのがミスが少なくていいと思います)。

下のほうにSuccessfullyの文字が出てくれば初期化成功です。

 

コマンドプロンプトで初期化したGethを起動

コマンドプロンプトで



geth --networkid "33" --nodiscover --datadir C:\Users\(ユーザー名)\geth\private_net --rpc --rpcaddr "localhost" --rpcport "8545" --rpccorsdomain "*" --rpcapi "eth,net,web3,personal" --targetgaslimit "20000000" console 2>> C:\Users\(ユーザー名)\geth\private_net\error.log


と入力してEnterキーを押します。

Welcome to the Geth JavaScript console!

と表示されれば起動成功です!!

 

Etherの採掘(アカウント作成、採掘)

アカウントをつくって採掘(マイニング)を行っていきます。

アカウント作成

Gethを起動したあとのコマンドプロンプトの画面は入力するところが少し変化しているのに気づくと思います。

>の左に文字列(C:\Users\~~)が表示されなくなっていますね。

 

この状態で



personal.newAccount("password")


を入力してEnterキーを押しましょう。

大文字に注意してください(コピーすれば気にする必要はありません)。

passwordの部分は好きな文字列でOKです。

 

するとすぐ下に長い文字列が出てきます。

これが作ったアカウントのアドレスです。

 

ここでこのアカウントに蓄積されているetherの残高を確認しておきましょう。



eth.getBalance(eth.accounts[0])


と入力することで1個目のアカウント(先ほど作ったもの)の残高がわかります。

今はまだ何もしていないので当然0が表示されます。

ちなみに



eth.accounts[0]


と入力することで1個目のアカウントのアドレス(さっきつくったやつ)を見ることができます。

 

採掘(マイニング)



miner.start(1)


と入力してEnterキーを押します。

するとすぐに



null


と表示されます。

 

初めてマイニングを行う時はここから実際にマイニングが始まるまでにかなりの時間(数十分~1時間くらい)がかかります。

 

マイニングが始まるまでの時間は「private_net」フォルダの中に新しくできている「error.log」というファイルを見ることである程度わかります。

 

一番下のほうを見ると「Generating DAG: 〇%」みたいな文字列が見つかると思います。

いったん✖で消してちょっと経ってからもう一度同じファイルを開くと〇%の数字が増えています。

これが100%になったらマイニングが始まります。

 

100%になってマイニングが始まってしばらくしたら再び残高を確認してみましょう。


eth.getBalance(eth.accounts[0])

です。

そうすると今度は0ではない数字が表示されていると思います。

マイニング成功です!!

 

数字がめちゃめちゃ大きいのは単位がweiだからです。

1wei = 0.000000000000000001ether

 

終わりに

マイニングが出来たら送金、コントラクト作成と進んでいきたいですね。

僕はまだ送金までしかやってないです。

 

Gethを起動した状態で

例えば

miner. と入力した後に

Tabキーを押すとminer.で始まる様々なコマンドをみることができます。

 

 

また、この記事の作成に当たっては

・Ethreum入門

・ブロックチェーンアプリケーション開発の教科書

を参考にしました。

 

-blockchain
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

ブロックチェーンって何?~②簡単な仕組み~

前回の記事では ブロックチェーンとは改ざん・コピーできないデータベースである ということをお伝えしました。   今回は 何でそういう性質があるのか?という疑問に答えるために ブロックチェーン …

ブロックチェーンってなに?~①簡単な特徴(長所)~

  ブロックチェーンを布教していると すぐにある難題に直面します。   「ブロックチェーンってなに??」   この純粋無垢な質問に僕はタジタジになってしまうのです。 &n …

Segwitによって解決されたトランザクション展性(マリアビリティ攻撃)とは?

ビットコインについて調べていると「segwit」という言葉をよく目にします。 その目的として以下の2つが挙げられています。 スケーラビリティ問題の解決(改善) トランザクション展性(マリアビリティ攻撃 …

量子コンピュータの実現でビットコインはオシマイ⁉

■目次 ・量子コンピュータがビットコインを破壊する!? ・量子コンピュータがビットコインに与える影響 ・そもそも量子コンピュータとは? ・量子コンピュータがビットコインに与える影響についての見解 ・量 …

【図解】公開鍵暗号方式をわかりやすく直観的に!

わかりそうでわからない「公開鍵暗号方式」 ビットコインとかブロックチェーンについて調べてると 「秘密鍵」 という言葉によく出会います。   秘密鍵って何?って感じで調べると、 秘密鍵、公開鍵 …