D Hyperledger Fabric v2.xのアプリケーションの更新

プラットフォーム・バージョンをアップグレードするときに、新しいバージョンのHyperledger Fabricで機能するように、既存のアプリケーションを変更する必要がある場合があります。

Hyperledger Fabric SDKの複数のバージョンを使用できます。インスタンスのベースとなっているHyperledger Fabricのバージョンと互換性のあるSDKのバージョンを使用します。Hyperledger Fabric v2.xに基づくインスタンスでは、Hyperledger Fabric v2.2の長期サポート(LTS)リリースと互換性のあるバージョンを使用します。Oracle Blockchain Platformは、Hyperledger Fabric v2.xの次のバージョンで動作することが検証されました。
  • Hyperledger FabricクライアントSDK for Node.jsバージョン2.2.9
  • Hyperledger FabricクライアントSDK for Javaバージョン2.2.2
  • Hyperledger FabricクライアントSDK for Goバージョン1.0.0

Hyperledger Fabric v2.xではGoバージョン1.20以降が必要であるため、使用するGoのバージョンをアップグレードする必要がある場合があります。

ノート:

既存のチェーンコード.zipファイルを再度デプロイし、索引がMETA-INFディレクトリではなくチェーンコード・パッケージのルート・ディレクトリに格納されている場合、問合せでタイムアウト・エラーが発生することがあります。タイムアウト・エラーを回避するには、Hyperledger Fabric v2.xインスタンスにデプロイする既存のチェーンコード内の索引が次のディレクトリにあることを確認します:
META-INF/statedb/relationaldb/indexes
「状態データベースの索引」を参照してください。

次の項で説明するように、クライアントSDKを使用してチェーンコード・ライフサイクルの管理、イベントのリスニング、デジタル・ウォレットの管理など、より複雑な操作を完了する場合、アプリケーションの更新が必要になることがあります。

Hyperledger Fabric SDK for Node.js

次の表に、Hyperledger Fabric SDK for Node.jsのバージョン1.4と2.xの違いをまとめます。詳細は、Hyperledger Fabricドキュメントのv1.4からv2.0へのクライアント・アプリケーションの移行を参照してください。

バージョン2.xでの変更 顧客の行動
fabric-clientモジュールが削除されました。 fabric-networkモジュールを使用するようにアプリケーションをリファクタします。
アイデンティティ情報の格納およびアクセスに使用されるウォレットが再設計されました。 ウォレットを移行するためのガイドラインおよびユーティリティについては、Hyperledger Fabricのドキュメントを参照してください。
イベント・リスナーAPIおよび動作が再設計されました。 新しいAPIを使用するようにイベント・リスナーを書き換えます。
SDKには、チャネルの作成やチェーンコードのライフ・サイクルの管理など、管理機能や管理機能がなくなりました。 これらの操作には、コマンド行インタフェースを使用します。ライフサイクル管理にバージョン1.4関数を使用する既存のクライアントは、Hyperledger Fabric v2.xインスタンスでは機能しません。

次の表に、Hyperledger Fabric v2.x fabric-networkモジュールとHyperledger Fabric v1.4.7 fabric-networkモジュールで使用可能なクラスを示します。

バージョン2.xファブリックネットワークモジュールクラス バージョン1.4ファブリックネットワークモジュールクラス

DefaultCheckpointers
Gateway
HsmX509Provider
IdentityProviderRegistry
Transaction
Wallet

AbstractEventHubSelectionStrategy
AbstractEventListener
BaseCheckpointer
BaseWallet
CommitEventListener
Contract
ContractEventListener
CouchDBWallet
EventHubManager
FileSystemCheckpointer
FileSystemWallet
Gateway
HSMWalletMixin
InMemoryWallet
Network
Query
RoundRobinEventHubSelectionStrategy
Transaction
X509WalletMixin

Hyperledger Fabric SDK for Java

アプリケーションで、Java SDK for Hyperledger Fabric 2.0 (InstallProposalRequest、InstantiateProposalRequestおよびUpgradeProposalRequest)で非推奨になったライフサイクルAPIを使用している場合は、新しいバージョンのSDKでAPIを使用するようにアプリケーションをリライトします。詳細は、Java SDK for Hyperledger Fabric 2.0のリリース・ノートを参照してください。

Oracle Blockchain Platform REST API (RESTプロキシ)

既存のチェーンコードを起動するための変更は必要ありません。

これを必要とする新しいチェーンコードの初期化関数をサポートするために、オプションのisInitパラメータが既存のトランザクションAPIに追加されました。詳細は、REST APIドキュメントのトランザクションの送信を参照してください。

Oracle Blockchain Platform REST API (コンソール)

すべてのAPIコールで使用されているバージョンを更新します。Hyperledger Fabric v1.4.7の場合、APIのバージョン番号は1.1です。Hyperledger Fabric v2.xの場合、APIのバージョン番号は2です。

たとえば、Hyperledger Fabric v1.4.7のインストール済チェーンコードのリストを取得するには、次のRESTエンドポイントを使用します:
/console/admin/api/v1.1/chaincodes
Hyperledger Fabric v2.xのインストール済チェーンコードのリストを取得するには、次のRESTエンドポイントを使用します:
/console/admin/api/v2/chaincodes

ノート:

既存のAPIのほとんどは、新しいHyperledger Fabric v2.xに相当しますが、1対1の一致はありません。一部のAPIは、Hyperledger Fabricの各バージョンに固有であり、リリースごとに異なるパラメータを持つものもあります。たとえば、Hyperledger Fabric v2.xでは、デプロイメント関数がchaincodeサブパスからchannelサブパスに移動しました。詳細は、REST APIドキュメントの新規、変更および非推奨のAPIを参照してください。

Hyperledger Fabric v2.xには、ピアにチェーンコードをインストールしてチャネルで開始するための新しい手順を含む新しいチェーンコード・ライフサイクルが含まれているため、関連するAPIコールを更新する必要がある場合があります。さらに学習するには、チェーンコード・ライフサイクルを参照してください。