Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Corda サンプルCorDappを動かしてみる2

More than 1 year has passed since last update.

目的

Corda サンプルCorDappを動かしてみる1の続き。
サンプルCorDappがどのように動作するのか確認する。

環境

Mac環境。

内容

前回までのおさらい

Corda サンプルCorDappを動かしてみる1では、サンプルCordappがインストールされたノードを起動するまで実施した。
続いて、サンプルの構成を確認して実際にサンプルCordappを動かしてみる。

サンプルの構成

ざっくり以下のような構成である。アプリとしては借用証書IOU(I Owe You)のやりとりができるようになっている。ノードの構成情報はkotlin(java)-source/build/nodes/NodeX/node.confに記載されている。

  • Notary
    トランザクションを検証する
  • Node
    それぞれの台帳を管理、アプリを実行
  • Webserver
    フロントWebサーバー スクリーンショット 2018-08-08 16.04.30.png

サンプルAPIが用意されている

https://docs.corda.net/tutorial-cordapp.html

/api/status
 ノードが起動しているか確認
/api/example/me
 ノードの情報を確認
/api/example/peers
 他ノードの情報を確認
/api/example/ious
 自身のIOUの情報を確認
/api/example/create-iou
 IOUを作成

Webフロントエンド

/web/example

スクリーンショット 2018-08-08 16.14.21.png

IOUを発行してみる

API

PartyA(貸し手)からPartyB(借り手)へのIOUを発行

$ curl -X PUT 'http://localhost:10009/api/example/create-iou?iouValue=1&partyName=O=PartyB,L=New%20York,C=US'
Transaction id 3E880090502DAED406F2441946BD79FD7918FAC5A8AB79600E1DE26A512A84C4 committed to ledger.

Webフロントエンド

PartyA(貸し手)からPartyB(借り手)へのIOUを発行
スクリーンショット 2018-08-08 17.25.06.png

APIやWebフロントエンドから結果を確認できる。
Party AとParty Bからはトランザクションを見ることができるが、Party Cからはできていない。
Party A
スクリーンショット 2018-08-08 17.25.26.png
Party B
スクリーンショット 2018-08-08 17.35.17.png
Party C
スクリーンショット 2018-08-08 17.35.27.png

Databaseの中身を直接確認してみる

ノードのデータはH2 databaseに保管されている。以下からH2をダウンロードする。
http://www.h2database.com/html/download.html
zipを解凍して、以下のディレクトリに移動して起動

$ cd h2/bin
$ sh h2.sh

ブラウザでH2コンソールが起動するので、みたいノードの情報を入力していく。
JDBC URLはノードのコンソールに表示されている。

Database connection url is              : jdbc:h2:tcp:YourJDBCURL

ユーザーとパスワードはh2のデフォルト(ユーザー="sa" パスワード="")

スクリーンショット 2018-08-08 18.16.49.png

接続して"SELECT * FROM IOU_STATES" を実行すると、データベースに格納されているIOUのデータを確認できる。
Party A トランザクションある
スクリーンショット 2018-08-08 18.18.59.png

Party B トランザクションある
スクリーンショット 2018-08-08 18.22.10.png

Party C トランザクションない
スクリーンショット 2018-08-08 18.22.44.png

まとめ

分散台帳を実現していることがわかるサンプルアプリケーションでした。

参考文献

QuickStart
https://docs.corda.net/quickstart-index.html
Node database
https://docs.corda.net/node-database.html

uguisu
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away