Hyperledger Fabric フレームワークでは、チェーンコードはスマートコントラクトを実装します。チェーンコードは、Node.js、Go、または Java で記述できます。今後、さらに多くの言語がサポートされる予定です。このトピックでは、チャネル内の既存のチェーンコードをアップグレードする方法について説明します。
この章は、Fabric V2.2 のインスタンスを購入したユーザーに適用されます。 Fabric V1.4 のインスタンスを購入した場合は、「チェーンコードの管理 (V1.4)」のチェーンコードのアップグレードに関するセクションをご参照ください。
手順
チャネルにチェーンコードをデプロイしていない場合は、「チェーンコードのデプロイ」をご参照ください。チェーンコードパッケージのアップグレードでは、チェーンコードのソースファイル、バージョン番号、デプロイチャネル、エンドースメントポリシー、またはプライベートデータコレクションの構成を変更できます。チェーンコードをアップグレードするには、次の手順を実行します。
(オプション) チェーンコードのソースファイルをローカルで変更し、ソースファイルをパッケージ化してから、チェーンコードをデプロイします。チェーンコードのデプロイ方法の詳細については、「チェーンコードのデプロイ」トピックの「チェーンコードのアップロード」、「チェーンコードのインストール」、および「チェーンコード定義の送信」のセクションをご参照ください。チェーンコードをデプロイした後、アップグレードアクションチャネル内の状態実行中 列に が表示され、 列のステータスが に変わります。
アップグレードアクション 列の をクリックします。
表示されるダイアログボックスで、パラメーターを表示し、必要に応じて変更します。チェーンコードの名前は変更しないでください。
説明「プライバシーセットの構成」パラメーターで JSON データを編集する場合、name または blockToLive を設定すると、アップグレード中に変更できなくなります。
[アップグレード] をクリックします。チェーンコードがアップグレードされると、組織のチェーンコードリストにチェーンコードのレコードが表示され、チェーンコードの [チャネル内のステータス] 列のステータスが [コンセンサス中] に変わります。
チャネル内の別の組織でチェーンコード定義を確認して送信します。チェーンコード定義を確認して送信する方法の詳細については、「チェーンコードのデプロイ」トピックの「チェーンコード定義の送信」のセクションをご参照ください。チェーンコードがアップグレードされると、新しいチェーンコードのレコードが元のチェーンコードのレコードを上書きし、チェーンコードの チャネルの状態コンセンサスで実行中アップグレードログの表示アクション 列のステータスが から に変わり、 列に と が表示されます。
説明デフォルトでは、チェーンコードは、チャネル内の組織の 50% がインスタンス化を承認した後にのみインスタンス化できます。