ネットワークへのFabric組織の追加

このトピックでは、Hyperledger Fabric組織のOracle Blockchain Platformネットワークへの参加について説明します。

Typical Workflow to Join a Fabric Organization to an Oracle Blockchain Platform Network

Fabric組織およびOracle Blockchain Platformファウンダ組織がFabric組織をOracle Blockchain Platformネットワークに参加させるために実行する必要があるタスクは次のとおりです。

タスク 実行者 説明 その他の情報入手先
Fabric組織の証明書ファイルの作成 Fabric組織 Fabric組織の管理者、CAおよびTLSの証明書情報を検索し、JSON証明書ファイルの作成に使用します。 Fabric組織の証明書ファイルの作成
Oracle Blockchain PlatformネットワークへのFabric組織の証明書ファイルのアップロード ファウンダ組織 コンソールを使用してFabric組織の証明書ファイルをアップロードしてインポートし、Fabric組織をネットワークに追加します。 ネットワークに組織を追加するための証明書のインポート
チャネルの作成 ファウンダ組織 新しいチャネルを作成し、Fabric組織を追加します。 チャネルの作成
ファウンダからのオーダリング・サービス設定のエクスポート ファウンダ組織 ファウンダの順序付けサービス設定をJSONファイルに出力し、そのファイルをFabric組織に送信します。 参加者またはスケールアウトされたOSNを創設者のオーダリング・サービスに参加
オーダラ証明書ファイルの作成 Fabric組織 tlscacert情報を含むorderer.pemという名前のファイルを作成します。

エクスポートした順序付けサービス設定ファイルに移動し、tlscacert情報をコピーします。tlscacert情報をorderer.pemファイルにペーストした後、\nをすべて改行文字で置き換える必要があります。

orderer.pemファイルは、次の形式である必要があります:

-----BEGIN CERTIFICATE-----
... 
...
... 
-----END CERTIFICATE-----
Fabric組織の証明書ファイルの作成
オーダリング・サービス設定の提供 ファウンダ組織 オーダリング・サービス設定ファイルをオープンし、オーダー・サービスのアドレスおよびポートを検索して、それらをFabric組織に渡します。たとえば次のようにします。
"orderingServiceNodes": [
{
"address": "grpcs://example_address:7777",
...
}]
NA
ネットワークへのFabric組織の追加 Fabric組織 Fabric組織は、証明書を環境にコピーし、環境変数の設定、ジェネシス・ブロックのフェッチ、チャネルへの参加およびチェーンコードのインストールを行います。 Oracle Blockchain Platformネットワークを使用するためのFabric環境の準備

Fabric組織の証明書ファイルの作成

Fabric組織がOracle Blockchain Platformネットワークに参加するには、admincerts、cacertsおよびtlscacerts情報を含む証明書ファイルを作成する必要があります。Oracle Blockchain Platformファウンダ組織は、このファイルをインポートしてFabric組織をネットワークに追加します。

Fabric証明書の情報は、Fabric組織のMSPフォルダにあるPEMファイルに格納されます。たとえば、network_name_example/crypto-config/peerOrganizations/example_org.com/msp/です。

証明書ファイルは、JSONで記述し、次のフィールドを含む必要があります。すべての証明書について、証明書情報をJSONファイルにコピーする際、次の例に示すように、すべての情報が空白なしで1行になるように、各改行文字を\nで置き換える必要があります。

  • mspid - Fabric組織の名前を指定します。

  • type - 組織がネットワーク参加者であることを示します。この値は、Participantである必要があります。
  • admincert - 組織の管理者証明書ファイル: Admin@example_org.com-cert.pemの内容が含まれます。

  • cacert - 組織のCA証明書ファイル: CA.example_org-cert.pemの内容が含まれます。

  • tlscacert - 組織のTLS証明書ファイル: tlsca.example_org-cert.pemの内容が含まれます。

  • intermediatecerts- このオプション要素には、中間CA証明書ファイルの内容が含まれます。中間CA証明書ファイルがない限り、この要素を指定しないでください。
  • nodeouidentifiercert- このセクションには、Node OUの役割を識別する証明書が含まれています。
  • adminouidentifiercert- ノードOU管理ロールの識別に使用される組織の証明書ファイルの内容が含まれます。管理ロールが不要な場合は、cacertファイルの内容または中間証明書ファイルの内容を管理者の内容として使用できます。

  • clientouidentifiercert - ノードOUクライアント・ロールの識別に使用される組織の証明書ファイルの内容が含まれます。

  • ordererouidentifiercert- ノードOUオーダラ・ロールの識別に使用される組織の証明書ファイルの内容が含まれます。ordererロールが不要な場合は、cacertファイルの内容または中間証明書ファイルの内容をordererouidentifierの内容として使用できます。

  • peerouidentifiercert- ノードOUピア役割の識別に使用される組織の証明書ファイルの内容が含まれます。

次の例のようにファイルを構造化します。
{
  "mspID": "examplemspID",
  "type":  "Participant",
  "certs": { 
   "admincert": "-----BEGIN CERTIFICATE-----\nexample_certificate\nexample_certificate==\n-----END CERTIFICATE-----\n",
   "cacert": "-----BEGIN CERTIFICATE-----\nexample_certificate\nexample_certificate==\n-----END CERTIFICATE-----\n",
   "tlscacert": "-----BEGIN CERTIFICATE-----\nexample_certificate\nexample_certificate==\n-----END CERTIFICATE-----\n"
   "nodeouidentifiercert": {
      "adminouidentifiercert": "-----BEGIN CERTIFICATE-----\nexample_certificate\nexample_certificate==\n-----END CERTIFICATE-----\n",
      "clientouidentifiercert": "-----BEGIN CERTIFICATE-----\nexample_certificate\nexample_certificate==\n-----END CERTIFICATE-----\n",
      "ordererouidentifiercert": "-----BEGIN CERTIFICATE-----\nexample_certificate\nexample_certificate==\n-----END CERTIFICATE-----\n",
      "peerouidentifiercert": "-----BEGIN CERTIFICATE-----\nexample_certificate\nexample_certificate==\n-----END CERTIFICATE-----\n"
    }
  }
} 
    

Oracle Blockchain Platformネットワークを使用するためのFabric環境の準備

Fabric組織の環境は、Oracle Blockchain Platformネットワークを使用する前に変更する必要があります。

次の前提条件タスクが完了していることを確認します。詳細は、「Fabric組織をOracle Blockchain Platformネットワークに参加させるための一般的なワークフロー」を参照してください。

  • Fabric組織の証明書ファイルが作成され、Oracle Blockchain Platformネットワーク・創設者に送信されました。

  • ネットワーク・創設者は証明書ファイルをアップロードしてFabric組織をネットワークに追加しました。

  • ネットワーク・創設者は新しいチャネルを作成し、Fabric組織をそこに追加しました。

  • ネットワーク・創設者は、オーダリング・サービス設定をダウンロードしてFabric組織に送信しました。

  • Fabric組織がオーダラ証明書ファイルを作成しました。

  • ネットワーク・創設者が、Fabric組織にオーダリング・サービスのアドレスおよびポートを提供しました。

Fabric組織を追加してチェーンコードをインストールおよびテストする必要があります。

  1. Fabricネットワーク・ディレクトリに移動し、ピア・コンテナを起動します。

  2. 次のコマンドを使用して、チャネルのジェネシス・ブロックをフェッチします:

    peer channel fetch 0 mychannel.block -o ${orderer_addr}:${orderer_port} -c mychannel --tls --cafile orderer.pem --logging-level debug  

    説明:

    • {orderer_addr}はファウンダのオーダラ・アドレスです。

    • {orderer_port}は創設者のポート番号です。

    • -c mychannelは、創設者が作成したチャネルの名前です。これは、Fabric組織がOracle Blockchain Platformネットワーク上でトランザクションを送信および受信するチャネルです。

    • orderer.pemはファウンダのオーダラ証明書ファイルです。

  3. 次のコマンドを使用してチャネルに参加します:

    peer channel join -b mychannel.block -o ${orderer_addr}:${orderer_port} --tls --cafile orderer.pem --logging-level debug
  4. 次のコマンドを使用してチェーンコードをインストールします:

    peer chaincode install -n mycc -v 1.0 -l "golang" -p ${CC_SRC_PATH}

    CC_SRC_PATHは、チェーンコードが含まれているフォルダです。

  5. 次のコマンドを使用してチェーンコードをインスタンス化します:

    peer chaincode instantiate -o  ${orderer_addr}:${orderer_port} --tls --cafile orderer.pem -C mychannel -n mycc -l golang -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P <policy_string> --logging-level debug
  6. 次のコマンドを使用してチェーンコードを呼び出します:

    peer chaincode invoke -o ${orderer_addr}:${orderer_port}  --tls true --cafile orderer.pem -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}' --logging-level debug
  7. 次のコマンドを使用してチェーンコードを問い合せます:

    peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'  --logging-level debug