概要
Hyperledger Fabric では、モジュール式アーキテクチャーとコンセンサス・プロトコルを使用して、ネイティブの暗号通貨を必要としないブロックチェーン・ネットワークを構築できます。Ethereum は、分散型アプリケーション用のスマート・コントラクトを作成し、ライブラリーを使ってスマート・コントラクトとやり取りするための構造化された革新的プラットフォームです。Ethereum では、例えば Ethereum の Solidity を利用してスマート・コントラクトを作成し、web3.js ライブラリーを使用してスマート・コントラクトとやり取りできます。このコード・パターンでは、これらのツールを Hyperledger Fabric ネットワークを使用したブロックチェーン・ネットワークで利用する方法を説明します。Ethereum 仮想マシン (EVM) を使用して Fabric をローカルにデプロイする手順、そして Node.js Web アプリケーションを介してスマート・コントラクトとやり取りするプロキシーを作成する手順を学んでください。
説明
このコード・パターンで説明する Hyperledger Fabric EVM では、開発者が Solidity などの EVM スマート・コントラクト言語を使用してブロックチェーン・アプリケーションを作成できます。Solidity で作成したスマート・コントラクトは、Fabric ピア上で実行される EVM チェーンコードにデプロイします。このパターンの使用ケースでは、ロイヤルティー・ポイント・プログラムのメンバーまたはパートナーとしてのユーザーが、Fabric ネットワークのプロキシーとしての Fab3 を介してスマート・コントラクトとやり取りする仕組みを説明します。Fab3 では Ethereum web3.js ライブラリーを使用して、Fabric ネットワーク内の EVM とやり取りできます。
このコード・パターンで対象としているのは、Hyperledger Fabric EVM を使用して Solidity スマート・コントラクトを統合したブロックチェーン・アプリケーションを作成することを目指している開発者です。このパターンを完了すると、以下の方法がわかるようになります。
- EVM チェーンコードを使用した Hyperledger Fabric インスタンスをローカルにデプロイする
- Fab3 インスタンスを起動して Fabric ネットワークとやり取りする
- web3 ライブラリーを使用して、Solidity スマート・コントラクトとやり取りする
- web3 ライブラリーを使用して、Node.js ブロックチェーン Web アプリケーションを構築する
フロー
- ロイヤルティー・ポイント・プログラムのパートナーが自分のアカウント用の fab プロキシーを使用してブロックチェーン・ネットワークにアクセスします。最初のパートナーがスマート・コントラクトをブロックチェーン・ネットワークにデプロイします。
- パートナーがプロキシーを介して Web アプリケーションにアクセスし、ネットワークに登録します。登録後は、すべてのトランザクションを表示できるようになります。
- ロイヤルティー・ポイント・プログラムのメンバーが自分のアカウント用の fab プロキシーを使用してブロックチェーン・ネットワークにアクセスします。
- メンバーがプロキシーを介して Web アプリケーションにアクセスし、ネットワークに登録します。登録後は、ネットワーク上のパートナーからポイントを獲得するためのトランザクションやポイントを交換するためのトランザクションを行ったり、すべてのトランザクションを表示したりできます。
- Web アプリケーションでは Ethereum web3.js ライブラリーを使用してスマート・コントラクトを実行します。
- ピア上にインストールされた EVM チェーンコードにより、スマート・コントラクトの実行結果がネットワーク上で更新されます。
手順
詳細な手順については、README を参照してください。手順の概要は以下のとおりです。
- EVM チェーンコードを使用した Hyperledger Fabric インスタンスをローカルにデプロイします。
- Fab3 をセットアップします。
- スマート・コントラクトをデプロイします。
- 2つ目の Fab3 をセットアップします。
- Web アプリケーションを実行します。