技術情報

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

Blockchain 技術情報

ブロックチェーンは、今後多くのサービス・システムに利用されることが期待されています。
(参考: ブロックチェーン技術の適用が期待されるサービス)

しかし、既存のサービスや開発手法の中に、ブロックチェーン技術をどのように取り込めば良いでしょうか?

現在のサービス開発においては、HTTPをベースとした「API」の形で情報をやり取りする方法が一般的です。
Ethereum にも、ブロックチェーンとしての機能を「API」として提供する仕組みが含まれています。

今回は、こちらの簡単な利用法を見ていきたいと思います。


前提

今回は、 Ethereum の実装の一つである geth を利用していきます。

インストール方法については、下記を参照ください。


以降は、Macにて geth インストール済みの状態を前提とします。

Ethereum の提供するAPIはどのようなものか

ここからは、公式サイト https://github.com/ethereum/wiki/wiki/JSON-RPC の情報を見ながら進めていきます。

JSON RPC API

インタフェース自体の仕様は、 “JSON-RPC” ベースとなっています。つまり、送信データ・受信データ、ともにJSON形式でのやり取りとなります。
“JSON-RPC” 自体の定義については、こちらを参照ください。

起動の仕方は簡単です。公式サイトの例にある通り、 --rpc のオプションを追加するだけです。
では、実際にサーバとして起動してみましょう。

genesis.json ファイルは、こちらの内容で、カレントディレクトリにある privateディレクトリ内に保存された状態とします。

geth コマンドを、コンソール上で下記のように実行してみましょう。

上記のように、 HTTP のエンドポイントが表示されたら起動成功です!

この状態で、実際にこのエンドポイントへアクセスしてみます。
上記 geth を実行したものと別のコンソールを起動し、こちらも公式サイトの例の通りにコマンドを実行します。

応答が返ってきました!
きちんと “JSON-RPC” のサーバとして機能しているようです。

ちなみに、リクエスト・レスポンスにある “id” ですが、これはやり取りが対になっていることを(利用する側が)確認するための識別子となります。
文字列も使えるようなので、ハッシュ値のようなユニークなものを利用すれば、レスポンスの取り違いの事故も防げそうです。

Management APIs

さて、これでサービスに自由に組み込める、、、と言いたいところですが、このままでは不十分です。
この状態では、例えば Ethereum のアカウント作成コマンドである personal.newAccount を呼び出すことができません。
これが無いと、サービスのユーザと Ethereum のアカウントを結びつけることができません。

そこで、利用出来る機能を拡張します。こちらも公式サイトに情報があります。
こちらに則って、やってみましょう。

geth を起動していたコンソールで、今度は下記のように実行してみましょう。 --rpcapi "personal" のように、利用する機能を個別に指定するオプションを追加します。

今回も、無事に起動することができました。

では、 personal.newAccount を実行してみましょう。再び別のコンソールで、下記のコマンドを実行します。

きちんと応答が返ってきました!
無事にアカウントを作成できたようです。

geth コマンドを実行したコンソールで下記コマンドを実行することで、 Ethereum にきちんとアカウントが登録されていることも確認できます。

まとめ

いかがでしたでしょうか。

API化されることで、既存のサービス・システムからも容易にブロックチェーンの機能を利用することができるようになります。
これからどのように活用できるか、さらなる検証を進めていきたいと思います。

The following two tabs change content below.
tacck
アーキテクト at 株式会社INDETAIL
エンジニア (モバイルアプリ、フロントエンド、バックエンド、インフラ) 得意なことは、領域をまたいで考え、開発すること。 ブロックチェーンも、領域の一つとして取り込んでいきたいです。 好きなフィギュアスケートの技は、スプレッド・イーグル。

Pickup post

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

Related post

  1. Blockchain 技術情報

    技術情報

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

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

  2. Ethereum

    技術情報

    Ethereumで複数ノードをつなげてプライベートネットワークを作ってみる

    以前本Blog内にて各OS別Ethereumのインストール及び簡単な操…

  3. Blockchain 技術情報 Hyperledger Composer

    技術情報

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

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

  4. Fabric × Raspberry Pi

    技術情報

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

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

  5. Blockchain 技術情報

    技術情報

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

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

  6. Blockchain 技術情報

    技術情報

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

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

Comment

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

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

最近の記事

  1. AWS Blockchain Templates

おすすめ記事

  1. ブロックチェーンを活用した医薬品のデッドストック販売プラット…
  2. 【参加無料】2018年1月24日 エンジニア向けブロックチェ…
  3. 【満席御礼】2018年3月1日開催 無料セミナー 《ブロッ…
  1. No Mapsブロックチェーンカンファレンス

    イベント情報

    2017年10月12日は、No Mapsブロックチェーンデー!ブロックチェーン無…
  2. ブロックチェーンセミナー4月

    イベント情報

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

    Hyperledger Fabric vs Hyperledger Compos…
  4. Z.com Cloud ブロックチェーン

    トピックス/業界動向

    【GMOインターネット】ブロックチェーンを活用したビジネスの実現を支援する「Z.…
  5. Ethereum

    技術情報

    Ethereumで複数ノードをつなげてプライベートネットワークを作ってみる
PAGE TOP