技術情報

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. ブロックチェーンの基本的な仕組み

Related post

  1. Blockchain 技術情報

    技術情報

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

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

  2. Ethereum

    技術情報

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

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

  3. 技術情報

    Hyperledger Fabric vs Hyperledger Composer

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

  4. Ethereum

    ブロックチェーンとは

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

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

  5. Blockchain 技術情報 Hyperledger Composer

    技術情報

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

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

Comment

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

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

最近の記事

おすすめ記事

  1. ブロックチェーンの技術:公開鍵暗号
  2. ブロックチェーンの基本的な仕組み
  1. Blockchain 技術情報

    技術情報

    JSON-RPC API で geth を便利に使う
  2. Blockchain 技術情報 Hyperledger Composer

    技術情報

    Hyperledger Composerのチュートリアルをやってみる
  3. イベント情報

    【参加無料】ワークショップ 「ヘルスケア×ブロックチェーン」 ~先端技術を活用し…
  4. イベント情報

    【無料・Zoom開催】実案件で学ぶ、ブロックチェーン開発の進め方(全2回:2月1…
  5. イベント情報

    【告知】ブロックチェーン×マンガの異色の対談!「いいITつながる交流会」 11月…
PAGE TOP