技術情報

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. ブロックチェーンを活用した医薬品のデッドストック販売プラットフォーム PoC […
  2. ブロックチェーンの技術:公開鍵暗号
  3. ブロックチェーンの基本的な仕組み
  4. 【満席御礼】2018年3月1日開催 無料セミナー 《ブロックチェーンフェスティ…

Related post

  1. Blockchain 技術情報

    技術情報

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

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

  2. Fabric × Raspberry Pi

    技術情報

    Hyperledger Fabric 1.0.6 を Raspberry Pi で実行する環境の構築…

    はじめに以前の記事で Ethereum をRaspberry …

  3. Blockchain 技術情報

    技術情報

    JSON-RPC API で geth を便利に使う

    ブロックチェーンは、今後多くのサービス・システムに利用されることが期待…

  4. Blockchain 技術情報 Hyperledger Composer

    技術情報

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

    はじめに今回の目的は、「その1」で更新したビジネスネットワークを使…

  5. Blockchain 技術情報 Hyperledger Composer

    技術情報

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

    はじめに今回の目的は、ビジネスネットワーク定義後の次のステップとし…

  6. Hashgraph

Comment

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

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

最近の記事

  1. AWS Blockchain Templates

おすすめ記事

  1. 【満席御礼】2018年3月1日開催 無料セミナー 《ブロッ…
  2. ブロックチェーンを活用した医薬品のデッドストック販売プラット…
  3. ブロックチェーンの技術:公開鍵暗号
  1. 公開鍵暗号方式

    ブロックチェーンとは

    ブロックチェーンの技術:公開鍵暗号
  2. トピックス/業界動向

    「Tech Trends 2018日本版」発表【デロイト トーマツ コンサルティ…
  3. Blockchain 技術情報 Hyperledger Composer

    技術情報

    Hyperledger Composer クエリチュートリアルをやってみる その…
  4. Blockchain 技術情報

    技術情報

    Raspberry Pi(ラズパイ)でEthereumを動かす
  5. トピックス/業界動向

    ブロックチェーン 、IoT、機械学習がどのように連携してサプライチェーンの管理を…
PAGE TOP