目的
Corda V3.2のドキュメントを参照しながら、CorDappsについて理解する。
ドキュメントの内容を日本語で簡単にまとめたもの。
Cordaの概要に関してはCorda Key conceptsを参照。
内容
CorDappsとは?
CorDappsはCorda上で稼働する分散アプリケーションのこと。(コーダップスと呼ぶ)
CorDappsの目的は、台帳の更新を当事者間が合意すること。そのためにフローを定義する。
CorDappsは次の主要コンポーネントで構成されている。
- States
- Contracts
- Services
- Serialisation whitelists
Cordappsはネットワークにデプロイされるのではなく、ノードごとにインストールされる。
例えばノードの所有者は債券CorDappsをインストールするかどうか選択できる。所有者は以下をにインストールするかもしれない。
- BondState
- BondContract
- 3つのフロー
- IssueBondFlow(債券の発行フロー)
- TradeBondFlow(債券の交換フロー)
- ExitBondFlow(債券の償還フロー)
債券のCorDappをインストールすると、ノード所有者は、CorDappで定義されたフローを使用して、債券の発行、販売、交換、償還に関連する台帳の更新に同意することができる。
CorDappsをコーディング
JavaかKotlinでコーディングする。
CorDappsのコンポーネントはCordaライブラリをsubclassまたはimplementしたJavaクラスの形式をとる。
- Flows subclass FlowLogic
- States implement ContractState
- Contracts implement Contract
- Services subclass SingletonSerializationToken
- Serialisation whitelists implement SerializationWhitelist
テスト目的で以下も含まれる
- APIs and static web content (Cordaのビルトインサーバー)
- RPC clients(RPC経由でノードとやりとりするプロセスを自動化するプログラム)
テンプレートはそれぞれ以下を参照。
まとめ
今後は実際にサンプルアプリを作成する予定。
参考文献