概要
このコード・パターンでは、IBM Db2 のフェデレーション機能を使用して、Hyperledger Fabric を使用したサンプルのブロックチェーン保険アプリケーションで SQL 分析を行います。サンプルのブロックチェーン保険アプリケーションは、こちらの GitHub リポジトリーに用意されています。Db2 と SQL を使って、このブロックチェーンに対してクエリーを実行して分析を行うために使用するのは、Apache Zeppelin ノードブックです。
注: このコード・パターンはローカルで実行することも、IBM Blockchain Platform に接続して実行することもできます。
説明
このコード・パターンでは、保険分野でのブロックチェーンの使用ケースとして、ブロックチェーンを使用して保険金請求を処理する例を紹介します。ここでは IBM Db2 のフェデレーション機能を使用して、Hyperledger Fabric を使用したサンプルのブロックチェーン保険アプリケーションで SQL 分析を行います。さらに、分析用の Apache Zeppelin ノートブックで、Db2 と SQL を使ってブロックチェーンのクエリーを実行します。
このアプリケーションに参加しているのは、保険契約者、警察、修理工場、店舗の 4 つです。これらの参加者のそれぞれに、独自のピア・ノードがあります。保険契約者のピアは商品の保険を提供する保険会社であり、保険金請求を処理します。警察のピアは、盗難の訴えを確認します。修理工場のピアは商品を修理し、店舗のピアは商品を消費者に販売します。このネットワークを IBM Blockchain Platform 上で実行する価値は、必要に応じてネットワーク・インフラストラクチャーを簡単にカスタマイズできることにあります。ノードの場所も、ハードウェアの CPU と RAM も、コンセンサスに至るために必要なエンドースメント・ポリシーも思いのままにカスタマイズできます。また、ネットワークに新しい組織とメンバーを追加するのも簡単です。
このコード・パターンを完了すると、以下の方法がわかるようになります。
- IBM Kubernetes Service を利用して Kubernetes クラスターを作成する
- IBM Blockchain サービス・インスタンスを作成して Kubernetes クラスター上で起動する
- 関連するすべてのコンポーネント (認証局、MSP (メンバーシップ・プロバイダー)、ピア、順序付けサービス・ノード、チャネル) からなるネットワークを作成する
- パッケージ化されたスマート・コントラクトを IBM Blockchain Platform 上にデプロイするために、スマート・コントラクトをピアにインストールしてインスタンス化する
- IBM Blockchain Platform の接続プロファイルを使用してアプリケーション管理者を作成し、クライアント・アプリケーションからトランザクションを送信する
- 構成ブロックチェーンにアクセスする Db2 フェデレーテッド・サーバーを構成する
- Db2 と SQL を使用する Zeppelin ノートブックを介してブロックチェーンのクエリーを実行し、ブロックチェーンのトランザクションを分析する
フロー
- ブロックチェーン・オペレーターが IBM Kubernetes Service クラスター (32CPU、32RAM、3 ワーカー・ノードを推奨) と IBM Blockchain Platform 2.0 サービス・インスタンスを作成します。
- IBM Blockchain Platform 2.0 により、IBM Kubernetes Service ベースの Hyperledger Fabric ネットワークが作成されます。オペレーターがこのネットワーク上にスマート・コントラクトをインストールしてインスタンス化します。
- Node.js アプリケーション・サーバーが Fabric SDK を使用して、IBM Blockchain Platform 2.0 上にデプロイされたネットワークと相互作用します。
- React UI では Node.js アプリケーション API を使用してネットワークと相互作用し、トランザクションを送信します。
- ユーザーが React UI を使用してブロックチェーン保険アプリケーションを操作し、ビジネス・トランザクションを作成します。
- ブロックチェーンでビジネス上のクエリーを実行するために、ユーザーが Db2 フェデレーション・サーバーのフロントエンドとしての Zeppelin ノートブックを操作して、ブロックチェーン・ネットワークに対する SQL クエリーを実行します。
手順
詳細な手順については、README ファイルを参照してください。手順の概要は以下のとおりです。
- IBM Cloud でサービス・インスタンスを作成します。
- ネットワークを構築するために、認証局を追加します。
- ネットワークを構築するために、MSP 定義を作成します。
- ネットワークを構築するために、ピアを作成します。
- ネットワークを構築するために、順序付けサービス・ノードを作成します。
- ネットワークを構築するために、チャネルを作成して参加します。
- 保険スマート・コントラクトをネットワーク上にデプロイします。
- アプリケーションをネットワークに接続します。
- アプリ管理者 ID を登録します。
- アプリケーションを実行します。
- ブロックチェーン・アプリケーションに対するビジネス・トランザクションを作成します。
- Db2 フェデレーテッド・サーバーと Zeppelin ノートブックを構成します。
- SQL クエリーを実行して分析を行います。