技術情報

Macにgethを入れてEthereumの内部通貨etherを手に入れる

Blockchain 技術情報

こんにちは。badyと申します。

最近、金融やIT業界の一部ではブロックチェーンが話題となっていますね。書籍やWeb上など、至るところでブロックチェーンの概念や仕組みに関する記事を見かけることが多くなってきました。

しかしその一方で、「実際にブロックチェーンを使うにはどうすればいいのか?」といった、技術者寄りの情報はまだあまり多くないように感じます(あったとしても英語の記事が多いですね)。

そこで本記事では、ブロックチェーン・プラットフォームの一つである「Ethereum」を、手元のMac(OS X El Capitan 10.11)を使って利用してみたいと思います。今回は導入ということで、Ethereumの内部通貨であるetherの採掘までを試してみたいと思います。

Gethのインストール

まずEthereumクライアントの一つであるGethをインストールしてみましょう。

MacであればHomebrewを使うことで簡単にインストールすることができます。

インストールが成功したか確認するためには、次のコマンドを実行しましょう。

コマンドのオプション情報が表示されればインストール成功です。

プライベート・ネット用のディレクトリ作成

Ethereumには不特定多数のノードが参加しているライブ・ネットのほか、限られた参加者のみが参加出来るプライベート・ネットがあります。今回はテスト用として、プライベート・ネットを作成してその中で作業していきたいと思います。

まずはプライベート・ネットのデータを保存するためのディレクトリを、任意の場所に作成しておきましょう。

genesisファイルの作成

次に、先ほど作成したディレクトリの下にgenesis.jsonという名前のファイルを作成します。中身は下記のようにしましょう。

このgenesis.jsonファイルは、ブロックチェーンの一番最初のブロックであるgenesisブロックの情報を記述したjson形式のファイルとなっています。

genesisブロックの初期化

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

–datadirで指定した先のディレクトリに、genesisブロックの情報が保存されました。

Gethを起動しプライベート・ネットに接続

ここまできたら、いよいよgethを起動します。次のコマンドを実行してみてください。

Welcome to the Geth JavaScript console!

という文字が表示され、gethのコンソールに入ることができたら成功です。処理結果はprivate_geth.logとしてログファイルを出力するようにしています。

先ほどのコマンドでは、まず–networkidオプションで任意の整数を指定することでプライベート・ネットを立ち上げています。この例では10ですね。
次の–nodiscoverオプションでは、マシン間のノード検知のプロセスを無効化しています。つまり、自分のPCの中だけでノードを接続するようにするということです。
また、consoleを付与することにより、Gethが用意しているコンソールを立ち上げることができます。

アカウントの作成

実際にetherを採掘したり、送金したりするためにはEOA(Externally Owned Account)と呼ばれるEthereum上のアカウントが必要になります。登録されているアカウントはeth.accountsで表示することができますが、まだアカウントを作成していないため、何も表示されません。

gethコンソール上ではpersonal.newAccount(“password”)形式のコマンドを実行することでアカウントを作成することができます。発行したアカウントのパスワードは復元できないので絶対に忘れないようにしましょう!

eth.accountsで確認すると、

どうやらちゃんと作成できたみたいです。

etherの採掘

アカウントの作成が完了したので、実際にノード間でやり取りされるetherを採掘してみましょう。採掘はminer.start()で行えます。

マイニングが開始されました。採掘状況の確認にはeth.hashrateを使用します。0でなければ採掘が行われています。

採掘できていないみたいですね…。

どうやら最初の採掘はDAGというデータセットを作成してからではないとできないみたいです。ログを確認してみるとDAGを生成する様子が記録されていました。

DAGを生成し終えるまでかなり時間がかかるようなのでゆっくり待ちましょう(だいたい10~20分くらいかかるようです)。

DAGの生成が100%になったら、もう一度eth.hashrateで採掘できているか確認してみます。

今度はちゃんと採掘できているみたいですね。eth.blockNumberコマンドで、実際にどれだけのブロックを採掘したのかも見てみましょう。

結果から、75個のブロックを採掘したようです。

ここまでできたら一旦採掘を止めましょう。採掘を停止させるにはminer.stop()を実行します。

eth.getBalance(address)コマンドで採掘の報酬であるetherの残高を確認できます。

先ほど作成した0番目のアカウントがetherを所持していました!

まとめ

macにgethをインストールし、無事にetherの採掘を行うことができました。

まだ初歩の初歩ではありますが、そこまで難しい手順ではなかったと思います。

ブロックチェーンの仕組みは少々難解でとっつきにくいと感じている方も多いと思われますが、こういった簡単なところから触れていくことで、ブロックチェーンの全容を理解することの助けになるのではと考えています。

私自身もまだまだ理解仕切れていない部分があるので、少しずつ勉強していきたいと思っています。

それでは今回はこの辺りで失礼させていただきます。
最後まで読んでいただきありがとうございました。

The following two tabs change content below.
bady
2016年卒の2年目エンジニアです。 ペーペーの新米ですが頑張ります!

Pickup post

  1. ブロックチェーンの基本的な仕組み
  2. ブロックチェーンの技術:公開鍵暗号
  3. ブロックチェーンを活用した医薬品のデッドストック販売プラットフォーム PoC […

Related post

  1. Blockchain 技術情報

    技術情報

    Raspberry Pi(ラズパイ)でEthereumを動かす

    はじめまして。IoT機器でブロックチェーンが世の中に偏在する世界を妄想…

  2. Blockchain 技術情報

    技術情報

    Windowsにgethを入れてEthereumの内部通貨etherを手に入れる

    ブロックチェーン初心者の自分が、手始めに「WindowsでEthere…

  3. Blockchain 技術情報

    技術情報

    DockerでHyperLedger Fabricの実行環境を構築する(v1.0.0-alpha向け…

    はじめまして。最近BlockChainを触り始めたnagiです。B…

  4. Blockchain 技術情報 Hyperledger Composer

    技術情報

    Hyperledger Composerのチュートリアルをやってみる

    はじめにPoCが一段落し、さらにブロックチェーンを使って実装の知識…

  5. Ethereum

    技術情報

    Ethereum入門 – アカウントとマイニング

    前回はEthereumの概要についてお話しましたが、今回はUbuntu…

  6. Blockchain 技術情報

    技術情報

    DockerでHyperLedger Fabricの実行環境を構築する(v0.6.1向け)

    はじめまして。最近BlockChainを触り始めたlumberです。…

Comment

  1. 本記事に対するコメントはまだありません

  1. 本記事に対するトラックバックはまだありません

最近の記事

  1. Blockchain 技術情報 Hyperledger Composer
  2. INDETAIL × Orb
  3. BHIP PoC 構想イメージ
  4. No Mapsブロックチェーンカンファレンス

おすすめ記事

  1. 「ビザンチン将軍問題」と「ブロックチェーン」の関係性
  2. Hyperledger Composerのチュートリアルをや…
  3. ブロックチェーンを活用した医薬品のデッドストック販売プラット…
  1. ブロックチェーンセミナー4月

    イベント情報

    満員御礼★【参加無料】4月7日開催!「ブロックチェーン」の基本を学ぶ初心者向けセ…
  2. Blockchain 技術情報 Hyperledger Composer

    技術情報

    Hyperledger Composerのチュートリアルをやってみる
  3. Concept of hacking

    ブロックチェーンとは

    改ざん(二重支払い)や複製ができない理由
  4. イベント情報

    イベント情報

    イベント・勉強会について
  5. whats-hyperledger

    ブロックチェーンとは

    Hyperledger入門 : Hyperledger(ハイパーレッジャー)って…
PAGE TOP