ゴール
Corda Bootcampを通してCordaの基本的な概念や実装方法を何となく理解する
参考
事前準備
- IntelliJ IDEAをインストール
補足
VSCodeを使う場合Extensionをインストールする
- Java Extension Pack
- VSCode-Corda
やったこと
① レポジトリをクローン
こちらのレポジトリをクローンします。
https://github.com/corda/bootcamp-cordapp
$ git clone https://github.com/corda/bootcamp-cordapp
② JDK 1.8をダウンロード
IDEAのpreference > Build, Extension, Deployment > Build Tools > Gradle を開いて
JDKの1.8をダウンロードします。
1.8じゃないとBuildが通りません。
Buildが通った後もDependencyのimportに結構時間がかかるので、焦らずに待ちましょう。
③ StateTestsが通るようにする
src > test > java > bootcamp の StateTestsを開くとコメントアウトされています。
これを外してテストが動くように実装していきます。
TDDでハンズオンが進んでいくようです。
例えば、こちらが最初のテストですが、TokenStateを実装していないのでこのテストは失敗します。
@Test
public void tokenStateHasIssuerOwnerAndAmountParamsOfCorrectTypeInConstructor() {
new TokenState(alice, bob, 1);
}
Stateの実装で分かったこと
StateはContractStateをimplementして作成する.
そしてgetParticipants()をoverrideして実装する。
このgetParticipants()で誰がこのStateを確認できるかを指定することができる。
④ ContractTestsが通るようにする
StateTestsと同じようにContractTestsも成功するようにしていきます。
Contractの実装で分かったこと
ContractはContractをimplementして作成する。
そしてverify()をoverrideして実装する。
このverifyでtransactionを検証することができる。
⑤ FlowTestsを通るようにする
FlowTestsに関しても同様に成功するようにしていきます。
Flowの実装で分かったこと
FlowでStateを生成して、トランザクションを実行する
⑥ Cordappの動作を確認する
実装したコードを実行して、動作を確認する。
Cordaの特徴である秘匿性を実際に体験できる。
build.gradleを確認すると、4つのnodeが定義されています。
これを起動して、例えば PartyA から PartyB に 100amount 送るというトランザクションを発生させると
AとBではそのトランザクションを確認できるが、Cでは確認できないというふうなことを試すことができます。
感想
動画を見ると時間がかかりますが
実際に手を動かすのは15分ぐらいなので
興味ある人はやってみてください
記事にしたいこと
ざっくりとした概念や実装方法は分かったので
もう少し深掘りして理解する
ドキュメントがしっかりしているのでちゃんと読めば理解できそう