Corda DemoBench

#目的
DemoBenchを動かしてみる。

#環境
Mac環境。

#内容
##DemoBenchとは？
Cordaを簡単に試せるデスクトップアプリ。トレーニングやデモや試しにさわってみようという時に便利。

##ノード起動
1. インストーラーを[ダウンロード](https://www.corda.net/discover/demobench.html "ダウンロード")

2. インストールして起動

3. Start Nodeをクリックと最初はNotaryが起動する
<img width="1227" alt="スクリーンショット 2018-08-06 17.07.11.png" src="https://qiita-image-store.s3.amazonaws.com/0/231906/2b288691-db68-9647-7a72-192cf4389766.png">

4. Add Node>Start Nodeを選択して、ノードを立てることができる。Additional configurationでIssuer(日銀のような発券銀行)の設定ができる。今回はIssuerノードを2台、普通のノードを1台立てる。<img width="1218" alt="スクリーンショット 2018-08-06 17.14.26.png" src="https://qiita-image-store.s3.amazonaws.com/0/231906/73adf16e-2e60-a98b-9765-dca4b9eb6dcc.png"> 

今回は以下のようにノードを作成。

|  Bank Name  | Additional configuration |
|:-----------------:|:------------------:|
| Bank of BreakFirst Tea | Issuer GBP    |
| Bank of Big Apples     | Issuer USD    |
| Bank of Baguettes      | -             |


##Corda Explorer
1. Bank of Breakfast Teaを選択しLaunch Explorerをクリックする。Explorerはノード内で何が起こっているかを確認できるUI。
<img width="904" alt="スクリーンショット 2018-08-06 17.42.36.png" src="https://qiita-image-store.s3.amazonaws.com/0/231906/528b1bd8-49fe-59c5-5a84-65f938f2d74a.png">

2. Networkを選択すると、ネットワークのマップをみることができる
<img width="1074" alt="スクリーンショット 2018-08-06 17.46.20.png" src="https://qiita-image-store.s3.amazonaws.com/0/231906/ec1b0a69-5803-7cb5-9e6f-1764a3e2f85b.png">

3. Transactionを作成する。GBPを発券して、Bank of Baguettesに送金する。Cash>New Transactionを選択して、以下のように入力し、Executeをクリック。<img width="1075" alt="スクリーンショット 2018-08-06 17.59.01.png" src="https://qiita-image-store.s3.amazonaws.com/0/231906/0a715edf-e059-d87a-7cb5-9961a21a60b8.png">

4. Transactionを選択すると、発券したTransactionと送金したTransactionの2つを確認できる。<img width="1075" alt="スクリーンショット 2018-08-06 18.01.47.png" src="https://qiita-image-store.s3.amazonaws.com/0/231906/08efb9c8-a015-f086-2291-fbfebfdc6b00.png">

5. Cash(1)の+を選択すると、Transactionの中身を確認できる。Bank of BreakFirst Teaとノータリーから署名されていることがわかる。<img width="1077" alt="スクリーンショット 2018-08-06 18.04.35.png" src="https://qiita-image-store.s3.amazonaws.com/0/231906/52e86da0-7f70-bc43-8a23-3df88cde1022.png">

6. 同様の手順でBank of Big ApplesのExplorerを起動し、Bank of BaguettesにUSDを送金する。
7. Bank of BaguettesのExplorerを起動しCashを選択すると、想定通りの金額が送金できていることが確認できる。<img width="900" alt="スクリーンショット 2018-08-06 18.13.58.png" src="https://qiita-image-store.s3.amazonaws.com/0/231906/0b590d83-5910-ed80-1d8a-5cd6cdb722d3.png">

##ノード追加
1. Add Node>Start Nodeを選択して、ノードを立てる。

今回は以下のノードを追加。

|  Bank Name  | Additional configuration |
|:-----------------:|:------------------:|
| Bank of Fondue | Issuer CHF   |

ノードの追加がイベントドリブンに 、即座にネットワークマップに追加される。<img width="892" alt="スクリーンショット 2018-08-06 22.49.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/231906/18089fc1-403a-cda6-6881-32c8b8f51b42.png">

##Transaction生成
1. Bank of BaguettesからBank of Fondueに、Bank of Big Applesから受け取ったUSDを送金する。Bank of BaguettesのExplorerを起動しCash>New Transactionを選択して、以下のように入力しExecuteをクリック。
<img width="554" alt="スクリーンショット 2018-08-06 22.58.42.png" src="https://qiita-image-store.s3.amazonaws.com/0/231906/4377af52-ee11-37c1-a454-e036ee0d682e.png">

2. Bank of BaguettesのExplorerを起動しTransactionを選択すると、Transactionの流れを確認できる。
<img width="1029" alt="スクリーンショット 2018-08-06 23.39.19.png" src="https://qiita-image-store.s3.amazonaws.com/0/231906/38f89401-f54d-da8b-1fcd-64d7991483ec.png">


#まとめ
複数の通貨を1ノードで扱うことができるし、BitcoinやEthereumと違ってノードごとに台帳の中身が異なる。当事者間以外のトランザクションは閲覧することができずプライバシーが確保されている。

簡単でとても使いやすいので、デモやお試しにはおすすめ。私の環境だとExplorerがOOMで時々落ちた。


#参考文献
公式ドキュメント
https://docs.corda.net/demobench.html
Cordaビデオ
https://vimeo.com/album/4555732/
Github
https://github.com/corda/corda/tree/master/tools/demobench