技術情報

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

Related post

  1. Blockchain 技術情報

    技術情報

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

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

  2. Blockchain 技術情報

    技術情報

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

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

  3. Ethereum

    技術情報

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

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

  4. Blockchain 技術情報

    技術情報

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

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

  5. 技術情報

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

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

  6. Blockchain 技術情報

    技術情報

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

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

Comment

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

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

最近の記事

おすすめ記事

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

    技術情報

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

    技術情報

    Ethereumで複数ノードをつなげてプライベートネットワークを作ってみる
  3. Blockchain 技術情報

    技術情報

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

    ブロックチェーンとは

    Hyperledger入門 : Hyperledger(ハイパーレッジャー)の開…
  5. ブロックチェーンとは

    ブロックチェーンとは

    ブロックチェーンの基本的な仕組み
PAGE TOP