技術情報

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
エンジニア (モバイルアプリ、フロントエンド、バックエンド、インフラ) 得意なことは、領域をまたいで考え、開発すること。 ブロックチェーンも、領域の一つとして取り込んでいきたいです。 好きなフィギュアスケートの技は、スプレッド・イーグル。
Latest posts by tacck (see all)

Pickup post

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

Related post

  1. Blockchain 技術情報

    技術情報

    IBM bluemixで HyperLedger Fabricの環境を構築してみる

    6月上旬となり一年ですごしやすい日々が続くはずの北海道ですが、日々シラ…

  2. Blockchain 技術情報

    技術情報

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

    こんにちは。badyと申します。最近、金融やIT業界の一部では…

  3. Ethereum

    技術情報

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

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

  4. Blockchain 技術情報

    技術情報

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

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

  5. Ethereum

    ブロックチェーンとは

    Ethereum入門:5分でわかるEthereum(イーサリアム)とは?

    昨年よりメディア等でよく話題に上がるブロックチェーン技術。暗号通貨を含…

  6. Blockchain 技術情報

    技術情報

    勉強会「初めてでもここまでできるブロックチェーン」第2部の内容紹介

    こんにちは。先日、6月30日に株式会社INDETAILにて勉強会「…

Comment

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

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

最近の記事

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

おすすめ記事

  1. Raspberry Pi(ラズパイ)でEthereumを動か…
  2. Hyperledger Composerのチュートリアルをや…
  3. ブロックチェーンの基本的な仕組み
  1. INDETAIL × Orb

    イベント情報

    12月1日北海道初開催!エンジニア向け OrbDLTハンズオンセミナー★参加申し…
  2. ブロックチェーンとは

    ブロックチェーンとは

    ブロックチェーンの基本的な仕組み
  3. Blockchain 技術情報

    技術情報

    勉強会「初めてでもここまでできるブロックチェーン」第2部の内容紹介
  4. Blockchain 技術情報

    技術情報

    Raspberry Pi(ラズパイ)でEthereumを動かす
  5. whats-hyperledger

    ブロックチェーンとは

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