技術情報

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. 【満席御礼】2018年3月1日開催 無料セミナー 《ブロックチェーンフェスティ…
  3. ブロックチェーンの基本的な仕組み
  4. ブロックチェーンを活用した医薬品のデッドストック販売プラットフォーム PoC […
  5. 【参加無料】2018年1月24日 エンジニア向けブロックチェーン無料セミナー開催…

Related post

  1. Blockchain 技術情報 Hyperledger Composer

    技術情報

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

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

  2. Hashgraph
  3. 技術情報

    Hyperledger Fabric vs Hyperledger Composer

    はじめに今回はHyperledger FabricとHyperle…

  4. Blockchain 技術情報

    技術情報

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

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

  5. Blockchain 技術情報

    技術情報

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

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

  6. 技術情報

    超簡単なBlockchainプロトタイプを Golang で構築

    はじめにBlockchainの使い道や可能性として様々なユースケー…

Comment

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

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

最近の記事

  1. AWS Blockchain Templates

おすすめ記事

  1. ブロックチェーンの技術:公開鍵暗号
  2. ブロックチェーンを活用した医薬品のデッドストック販売プラット…
  3. 【参加無料】2018年1月24日 エンジニア向けブロックチェ…
  1. BLOCKCHAIN FESTIVAL 2018 in SAPPORO

    イベント情報

    【満席御礼】2018年3月1日開催 無料セミナー 《ブロックチェーンフェスティ…
  2. データセンター

    ブロックチェーンとは

    ブロックチェーンと分散型データベースの違い
  3. Fabric × Raspberry Pi

    技術情報

    Hyperledger Fabric 1.0.6 を Raspberry Pi …
  4. Blockchain 技術情報

    技術情報

    DockerでHyperLedger Fabricの実行環境を構築する(v0.6…
  5. Blockchain 技術情報 Hyperledger Composer

    技術情報

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