すべてのプロダクト
Search
ドキュメントセンター

Blockchain as a Service:チェーンコードのデプロイ

最終更新日:Apr 02, 2025

Hyperledger Fabric フレームワークでは、チェーンコードはピア上で実行され、トランザクションを作成する「スマートコントラクト」です。BaaS は現在、Go、Node.js、および Java をサポートしています。このドキュメントでは、チャンネルに新しいチェーンコードをデプロイする方法について説明します。

チャンネルに存在するチェーンコードをアップグレードする場合は、「チェーンコードのアップグレード」をご参照ください。

説明

この章は、Fabric V1.4 のインスタンスを購入したユーザーに適用されます。 Fabric V2.2 のインスタンスを購入した場合は、「チェーンコードの管理 (V2.2)」のチェーンコードのデプロイに関するセクションをご参照ください。

  • Fabric チェーンコードの開発方法の詳細については、「Chaincode for Developers」を参照してください。

  • peer chaincode package コマンドを使用して、すべてのコード依存関係を含むチェーンコードパッケージをビルドしてください。 golang チェーンコードを例にとると、依存ファイルを golang プロジェクトの vendor ディレクトリに配置します。

    1. govendor ツールをインストールします。

      go get -u -v github.com/kardianos/govendor
    2. チェーンコードプロジェクトディレクトリで、vendor ディレクトリを初期化します。

      govendor init
    3. GOPATH 内の依存ファイルを vendor ディレクトリに移動します。

      govendor add +external
  • チェーンコードパッケージの詳細については、「peer chaincode commands」をご参照ください。

ヒント:

  1. golang では、-p はベースディレクトリ ($GOPATH/src) からのメインパッケージの相対パスである必要があります。 Java では、-p はチェーンコードプロジェクトのルートディレクトリである必要があります。 nodejs では、-p は package.json を含むチェーンコードプロジェクトのルートディレクトリである必要があります。 -p は「./xxx」形式であってはなりません。

  2. チェーンコード言語が golang の場合は -l を省略します。 チェーンコード言語が nodejs の場合は -l node を使用し、Java の場合は -l java を使用します。

  3. input が不要な場合は、-c を省略します。

  4. -i-S は使用しないでください。

たとえば、$GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/go/example02 ディレクトリから、mycc という名前でバージョン 1.0ccpack.out という名前の golang チェーンコードパッケージを作成するには、次のようにします。

peer chaincode package ccpack.out -n mycc -p github.com/hyperledger/fabric/examples/chaincode/go/example02/cmd -c '{"Args":["init","a","100","b","200"]}' -v 1.0

peer バイナリはここからダウンロードできます。


新しいチェーンコードのデプロイは、次の 3 つのステップで行います。

  1. チェーンコードのアップロード

  2. チェーンコードのインストール

  3. チェーンコードのインスタンス化

チェーンコードのアップロード

  1. Alibaba Cloud BaaS コンソール にログインします。

  2. [概要] ページで、[組織] を見つけ、対象の組織を見つけて、組織名をクリックします。

  3. チェーンコード タブをクリックします。

  4. [チェーンコードのアップロード] をクリックします。

  5. 表示されるダイアログボックスで、ローカルにパッケージ化されたチェーンコードをアップロードします。

  6. チェーンコードをデプロイするチャンネルを選択します。新規デプロイの場合は、どのチャンネルにも同じチェーンコード名が存在しないことを確認してください。

  7. エンドースメントポリシーを入力します。

    例: OR ('Org1MSP.peer','Org2MSP.peer') は、チャンネル内の 2 つの組織のいずれかからのエンドースメントが必要であることを意味し、AND ('Org1MSP.peer','Org2MSP.peer') は、このチャンネル内の 2 つの組織からのエンドースメントが必要であることを示します。

  8. OK をクリックします。

チェーンコードがアップロードされると、チェーンコードチェーンコードバージョン タブのチェーンコードリストにチェーンコードが表示されます。 列に表示されるチェーンコードの名前と 列に表示されるバージョン番号は、チェーンコードをローカルにパッケージ化するときに指定されます。

チェーンコードのインストール

前提条件

チェーンコードをアップロード済みであること。

手順

  1. Alibaba Cloud BaaS コンソール にログインします。

  2. [概要] ページで、[組織] を見つけ、対象の組織を見つけて、組織名をクリックします。

  3. チェーンコード タブをクリックします。

  4. インストールするチェーンコードを探し、[アクション] 列の [インストール] をクリックして、組織にチェーンコードをインストールします。

Install

インストールが完了すると、組織内のステータスアンインストール済みインストール済みインストールアクションインスタンス化 が から に変わり、 列の が に変わります。

  1. チェーンコードのアップロード時に設定したエンドースメントポリシーで、このチェーンコードを実行するために複数の組織が必要な場合は、他の組織にもチェーンコードをインストールする必要があります。

チェーンコードのインスタンス化

前提条件

チェーンコードをアップロードしてインストール済みであること。

手順

  1. Alibaba Cloud BaaS コンソール にログインします。

  2. [概要] ページで、[組織] を見つけ、対象の組織を見つけて、組織名をクリックします。

  3. チェーンコード タブをクリックします。

  4. インストールするチェーンコードを見つけます。 [アクション] 列で、[インスタンス化] をクリックします。

  5. 表示されるダイアログボックスには、チェーンコードのアップロード時に入力したエンドースメントポリシーが自動的に表示されます。ポリシーを保持することも、新しいポリシーに変更することもできます。

    例: OR ('Org1MSP.member','Org2MSP.member') は、チャンネル内の 2 つの組織のいずれかからのエンドースメントが必要であることを意味し、AND ('Org1MSP.member','Org2MSP.member') は、このチャンネル内の 2 つの組織からのエンドースメントが必要であることを意味します。

  6. ダイアログボックスの 上位プライバシー設定の構成 をクリックすると、 入力ボックスにコレクション定義 JSON データを入力できます (オプション、チェーンコードがプライベートデータ機能を使用しない場合)。

    例: [{"name": "collectionName", "policy": "OR('Org1MSP.peer')", "memberOnlyRead": false, "requiredPeerCount": 0, "maxPeerCount": 3, "blockToLive": 0}] は、チェーンコードに collectionName という名前のプライベートコレクション名前空間が必要であり、組織 Org1 内のピアのみがこのコレクションのデータにアクセスできることを意味します。

    注意: nameblockToLive を設定すると、後でアップグレードしても変更できなくなります。 詳細については、「Using Private Data in Fabric」をご参照ください。

  7. インスタンス化 をクリックします。

Instantiate the chaincode

この操作は、チェーンコードの依存関係の複雑さによっては、数秒から数分かかります。操作が成功すると、チャネルの状態インスタンス化可能実行中アクション が から に変わり、 列の値が空になります。

次のステップ

ユーザーの管理」と「ブロックチェーンネットワークへのアクセス