企業向けブロックチェーン基盤「Corda」を触ってみたい初学者に向けたクイックスタートガイドです。
- はじめに
- 参考ドキュメント:R3 公式Doc - CorDapp Template
- 本記事で導入する環境
- 手順の全体像
- A. Corda5環境の構築手順
- B. CorDappの操作手順
- A. Corda5環境の構築手順
- A-1. Javaのインストール
- A-2. サンプルコードのダウンロード
- A-3. Corda Templateに必要なツール2点
- a. Docker Desktopのインストール
- b. Corda-CLIのインストール
- A-4. InteliJの導入
- a. インストール
- b. 各種設定
- B. CorDappの操作手順
- B-1. Corda起動とCorDapp導入
- B-3. 仮想ノードの情報を取得
- B-4. Swaggerにアクセス
- B-5. REST APIでFlowを実行
- さいごに
- 付録:よくある質問集
2024年「ブロックチェーンビジネス・アドベントカレンダー企画」7日目の記事です。 関連企業の皆様にも記事を書いていただく予定ですので、是非お立ち寄りください!
はじめに
本記事では「Corda上の分散型アプリケーション(CorDapp)を動かせること」をゴールとし、Cordaの環境構築とアプリ操作の手順をまとめました。
試しにCordaを触ってみたいという方は、是非チャレンジしてみてください!! 非エンジニアの方でも、動かせるようになるはずです!!
参考ドキュメント:R3 公式Doc - CorDapp Template
本記事で導入する環境
ソフトウェア | バージョン |
Corda | Open Source 5.2.0 |
OS | - Mac OS (intel and ARM)
- Windows 10/11
(Linuxも対応していますが本記事では割愛) |
Java | Java Azul Zulu JDK 17.0.11 |
IntelliJ | v2021.3.3 Community Edition |
Docker | Docker Desktop v4.25.0 |
Corda-CLI | ver.5.2(事前にJava 17の導入が必要) |
手順の全体像
Cordaの2024年時点の最新版であるver.5.2では、手軽にCordaの動作を確認できる「CorDapp Template」というツールが備わっています。
本来はAWSなどのクラウド上で様々なコンポーネント(Kafka, k8s等)を構築していく必要がありますが、Corda Templateを用いるとローカルPCなどでCorda環境を簡易的にデプロイでき、開発やテストが効率よく行えるようになっています。
本記事では、Corda Templateを前提としたA.Corda5環境構築手順およびB.CorDappの操作手順をまとめます。OSによっては挙動が異なる可能性がありますので、本記事の手順で問題や不明点があれば、弊社までお問い合わせください。
A. Corda5環境の構築手順
- Javaのインストール
- サンプルコードのダウンロード
- Corda Templateに必要なツール2点
- Docker Desktopのインストール
- Corda-CLIのインストール
- InteliJの導入
- インストール
- 各種設定
B. CorDappの操作手順
- Corda起動とCorDapp導入
- 仮想ノードの情報を取得
- Swaggerにアクセス
- REST APIでFlowを実行
A. Corda5環境の構築手順
青文字が実践していただく手順を示しています。
A-1. Javaのインストール
Corda5の実行環境はJava17です。今回はAzulの提供しているものを使います。
- こちらのページから、お使いのOSに合わせて、「バージョンが17.0.11以上のJava17(LTS)」をダウンロードし、インストーラーの指示に沿ってインストール
- OSに合わせて、環境変数JAVA_HOMEを設定します。
A-2. サンプルコードのダウンロード
本記事では、R3のGitHub上にサンプルコードを使います。kotolin版のサンプルコードはこちら。
※「release-V5.2」を使用してください。執筆時点ではこのブランチがデフォルトです。
- Macの場合はターミナル(Windowの場合はpowerShell)を開き、ローカルPCの任意のディレクトリにダウンロード
git clone https://github.com/corda/cordapp-template-java.git <任意ディレクトリパス>
A-3. Corda Templateに必要なツール2点
a. Docker Desktopのインストール
Docker DesktopはCorda内で立ち上がるコンテナの管理ツールとして自動的に使われます。
- 「バージョン4.25.0のDocker Desktop」のダウンロードリンクは以下の通り
- For Mac OS → Docker Desktop v4.25.0 for Mac OS のダウンロードリンク
- For Windows → Docker Desktop v4.25.0 for windows のダウンロードリンク
- ダウンロードしたら、インストラーの指示に従ってインストール
- 詳細な導入方法については、公式ページを確認
- (Dockerアカウントが必要なため、新規の方はDockerアカウントを準備)
b. Corda-CLIのインストール
Corda-CLIはCordaに関する様々なタスクをサポートするコマンドラインツールです。Corda TemplateもこのCLIに含まれています。(参考:R3公式Doc)
- (手順に進む前に、Java17がインストール済みであることを確認)
- こちらのページから「corda-cli-installer-5.2.0.0.zip」をダウンロードして任意の場所に配置
A-4. InteliJの導入
CordaはJavaベースであることやGradle(自動ビルドツール)を用いていることなどから、Cordaの開発では「InteliJ」を用いることを推奨しています。
a. インストール
- こちらのページから、OSに合わせた「IntelliJ IDEA Community Edition 2021.3.3」をダウンロードし、インストーラーの指示に沿ってインストール
b. 各種設定
次に、InteliJを開き初期設定を行います。
- インストールしたInteliJのアプリケーションを開く
- 「Open」を押し、‣ にて取得した「cordapp-template-java(kotolin)」フォルダを指定
- ※ Mac OSでうまくいかない場合は、 フォルダ内の「build.gradle」を選択
- ※「Trust and Open Project <ファイル名>?」と警告が出た場合は「Trust Project」を選択
- サンプルコードを開くと自動的にプロジェクトのImportが開始するのでしばらく待機
- 初期設定①:プロジェクトで使用するJDKの設定
- 初期設定②プロジェクトで使用するビルドツールの設定
- 初期設定①②が完了後、File > Invalid Caches > Invalidate and Restartを実行しInteliJを再起動
環境構築手順は以上です。お疲れ様でした。
B. CorDappの操作手順
青文字が実践していただく手順を示しています。
B-1. Corda起動とCorDapp導入
- InteliJで右側のGradle(象のアイコン)を押しメニューを展開
- Corda起動:corda-runtime-plugin-local-enviroment > startCordaを押す
- Cordaが起動が完了するまでしばらく待機
- CorDapp導入:corda-runtime-plugin-network > vNodeSetupを押す
B-3. 仮想ノードの情報を取得
次に、CorDappを操作するために必要な仮想ノードの情報を取得します。
- ノード情報取得:corda-runtime-plugin-queries > listVNodes を押す
- ログ内の赤枠のノード情報をメモしておく
B-4. Swaggerにアクセス
Corda5では、運用の操作やアプリの操作など含めほぼ全ての操作がREST APIベースに統一されており、Swaggerというフレームワーク上で操作できます。
- Webブラウザからローカルホストの8888ポートにアクセス
- Swaggerにアクセスできたら「Authorize」を開き、ID:
admin
, PW:admin
で承認する。
B-5. REST APIでFlowを実行
企業同士による送金、売買、承認、また商品の追跡など一つ一つの機能がFlowであり、これらによってCorDappが構成されています。ここでは、実行可能なFlow一覧を確認して、試しにFlowを一つ実行してみます。
- 特定のノードが操作可能なFlow一覧を確認(GET)
- AliceからBobへチャットを送るFlowをAlice側から実行(POST)
CorDapp操作手順は以上です。お疲れ様でした。
さいごに
クイックスタートガイドとしてCorda5構築手順を解説しましたが、無事、起動できましたでしょうか。企業向けブロックチェーンがどのようなものなのか、実際に立ち上げてみて感触を確かめていただけると幸いです。
次回は、今回立ち上げたCorda基盤をベースに、ローコードツールを用いた簡易的なフロントエンドの実装を解説していきます。(Cordaはあまり関係ないですが・・)
UIのあるCorDappを操作することで、ノード同士がどのようなやり取りを行なっているのかをより実感を持って確かめられるようになっています。
付録に「よくある質問集」も乗せておりますので、何かお困りの場合はご一読ください。
付録:よくある質問集
本記事の手順で問題や不明点があれば、弊社までお問い合わせください。
以下に追記する形でFAQを更新していきます。