IBM Developer Japan Webサイトは2021年3月15日をもって終了となり、日本語コンテンツの一部は、オープンソースとして、提供予定です。 URLはこちら

ブロックチェーン・トランザクションを分析する

概要

このコード・パターンでは、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 ノートブックを介してブロックチェーンのクエリーを実行し、ブロックチェーンのトランザクションを分析する

フロー

フロー

  1. ブロックチェーン・オペレーターが IBM Kubernetes Service クラスター (32CPU、32RAM、3 ワーカー・ノードを推奨) と IBM Blockchain Platform 2.0 サービス・インスタンスを作成します。
  2. IBM Blockchain Platform 2.0 により、IBM Kubernetes Service ベースの Hyperledger Fabric ネットワークが作成されます。オペレーターがこのネットワーク上にスマート・コントラクトをインストールしてインスタンス化します。
  3. Node.js アプリケーション・サーバーが Fabric SDK を使用して、IBM Blockchain Platform 2.0 上にデプロイされたネットワークと相互作用します。
  4. React UI では Node.js アプリケーション API を使用してネットワークと相互作用し、トランザクションを送信します。
  5. ユーザーが React UI を使用してブロックチェーン保険アプリケーションを操作し、ビジネス・トランザクションを作成します。
  6. ブロックチェーンでビジネス上のクエリーを実行するために、ユーザーが Db2 フェデレーション・サーバーのフロントエンドとしての Zeppelin ノートブックを操作して、ブロックチェーン・ネットワークに対する SQL クエリーを実行します。

手順

詳細な手順については、README ファイルを参照してください。手順の概要は以下のとおりです。

  1. IBM Cloud でサービス・インスタンスを作成します。
  2. ネットワークを構築するために、認証局を追加します。
  3. ネットワークを構築するために、MSP 定義を作成します。
  4. ネットワークを構築するために、ピアを作成します。
  5. ネットワークを構築するために、順序付けサービス・ノードを作成します。
  6. ネットワークを構築するために、チャネルを作成して参加します。
  7. 保険スマート・コントラクトをネットワーク上にデプロイします。
  8. アプリケーションをネットワークに接続します。
  9. アプリ管理者 ID を登録します。
  10. アプリケーションを実行します。
  11. ブロックチェーン・アプリケーションに対するビジネス・トランザクションを作成します。
  12. Db2 フェデレーテッド・サーバーと Zeppelin ノートブックを構成します。
  13. SQL クエリーを実行して分析を行います。