概要
この開発者コード・パターンは、IBM Cloud™ Kubernetes サービスに接続された IBM Blockchain Platform を利用して作成されています。このパターンでは、Hyperledger 1.2 でリリースされたプライベート・データ・コレクションの使用ケースを紹介します。具体的には、ある卸売販売業者との間での交渉価格を競合する他の卸売販売業者に対して非公開にする一方で、引き続き、製薬業者、卸売販売業者、薬局、患者のすべてが 1 つのチャネルでデータをやり取りし、すべてのデータが 1 つのレジャーに記録されるようにします。プライベート・データ・コレクションを使用することで、トランザクションの特定の詳細 (交渉価格など) を非公開にした状態で、ネットワークのすべての参加者にその他の詳細を公開できます。
説明
医療プラットフォーム上では、製薬業者、卸売販売業者、薬局、患者などの複数のエンティティーが製薬に関するデータを共有します。けれども場合によっては、一部のエンティティーが製薬に関する一部のデータを他のエンティティーに対して非表示にしなければならないこともあります。例えば、製薬会社が卸売販売業者ごとに異なる価格を取り決めていたとします。その場合、各卸売販売業者に対しては、この交渉価格が可視にならないようにしなければなりません。すべてのエンティティーが同じブロックチェーン・チャネル上でデータをやり取りする場合は基本的に、任意の 2 エンティティー間でのあらゆるトランザクションが他のすべてのエンティティーに可視になります。ただし、プライベート・データ・コレクションを導入すれば、所定のトランザクションに関するデータの特定の部分を、他のエンティティーに対して非公開にすることができます。
この開発者コード・パターンで取り上げる例では、1 つの製薬会社、2 つの卸売販売業者、1 つの薬局、1 人の患者がブロックチェーン上の同じチャネルでつながっています。製薬会社が新しい薬を開発し、その新薬を 2 つの卸売販売業者にそれぞれ異なる価格で販売することになりました。この例では、製薬会社と患者だけが両方の交渉価格を表示できるようにします。
このコード・パターンの対象は、Hyperledger Fabric のプライベート・データ・コレクション機能と IBM Blockchain Platform を使用する方法を学ぼうと目指している開発者です。このコード・パターンを完了すると、以下の方法がわかるようになります。
- IBM Blockchain Platform で複数の組織を作成する
- シングル・ページ・アプリケーション上に複数のダッシュボードからなる Vue.js Web アプリを作成し、ダッシュボードがリアルタイムで相互通信できるようにする
- Node.js サーバーを作成して IBM Cloud 上の Kubernetes にデプロイする
- プライベート・データ・コレクションを使用して、同じチャネル上の組織間でのデータ・プライバシーを確保する
フロー
- ブロックチェーン・オペレーターが IBM Cloud Kubernetes Service クラスターと IBM Blockchain Platform サービス・インスタンスを作成します。
- IBM Blockchain Platform により、IBM Cloud Kubernetes Service 上で Hyperledger Fabric ネットワークが作成されます。オペレーターはこのネットワーク上にスマート・コントラクトをインストールしてインスタンス化します。
- Node.js アプリケーション・サーバーが Fabric SDK を使用して、IBM Blockchain Platform 上にデプロイされたネットワークと相互作用します。
- Vue.js UI が Node.js アプリケーション API を使用してネットワークと相互作用し、トランザクションを送信します。
- ユーザーが医療プラットフォーム Web アプリを操作して、ブロックチェーンのレジャーと状態の更新およびクエリーを行います。
まとめ
このコード・パターンに取り組む準備はできましたか?詳しい手順については、README を参照してください。