ネットワークへのFabric組織の追加
このトピックでは、Hyperledger Fabric組織のOracle Blockchain Platformネットワークへの参加について説明します。
Fabric組織をOracle Blockchain Platformネットワークに参加させるための一般的なワークフロー
Fabric組織およびOracle Blockchain Platformファウンダ組織がFabric組織をOracle Blockchain Platformネットワークに参加させるために実行する必要があるタスクは次のとおりです。
タスク | 実行者 | 説明 | 詳細情報 |
---|---|---|---|
Fabric組織の証明書ファイルの作成 | Fabric組織 | Fabric組織の管理者、CAおよびTLSの証明書情報を検索し、それを使用してJSON証明書ファイルを作成します。 | Fabric組織の証明書ファイルの作成 |
Oracle Blockchain PlatformネットワークへのFabric組織の証明書ファイルのアップロード | ファウンダ組織 | コンソールを使用してFabric組織の証明書ファイルをアップロードしてインポートし、Fabric組織をネットワークに追加します。 | ネットワークに組織を追加するための証明書のインポート |
チャネルの作成 | ファウンダ組織 | 新しいチャネルを作成し、Fabric組織を追加します。 | チャネルの作成 |
ファウンダからのオーダリング・サービス設定のエクスポート | ファウンダ組織 | ファウンダのオーダリング・サービス設定をJSONファイルに出力し、そのファイルをFabric組織に送信します。 | オーダリング・サービス設定のエクスポート |
オーダラ証明書ファイルの作成 | Fabric組織 | tlscacert情報が含まれたorderer.pemという名前のファイルを作成します。
エクスポートしたオーダリング・サービス設定ファイルに移動し、tlscacert情報をコピーします。tlscacert情報をorderer.pemファイルに貼り付けた後、\nをすべて改行文字で置き換える必要があります。 orderer.pemファイルは、次の形式である必要があります:
|
Fabric組織の証明書ファイルの作成 |
オーダリング・サービス設定の提供 | ファウンダ組織 | オーダリング・サービス設定ファイルを開き、オーダリング・サービスのアドレスおよびポートを検索して、それらをFabric組織に渡します。例:
|
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で記述し、次のフィールドを含む必要があります:
-
mspid — Fabric組織の名前を指定します。
- type — 組織がネットワーク参加者であることを示します。この値は、Participantである必要があります。
-
admincert — 組織の管理者証明書ファイル:
Admin@example_org.com-cert.pem
の内容が含まれます。証明書情報をJSONファイルにコピーする際、各改行文字を\nで置き換える必要があります。 -
cacert — 組織のCA証明書ファイル:
ca.example_org-cert.pem
の内容が含まれます。証明書情報をJSONファイルにコピーする際、各改行文字を\nで置き換える必要があります。 -
tlscert — 組織のTLS証明書ファイル:
tlsca.example_org-cert.pem
の内容が含まれます。証明書情報をJSONファイルにコピーする際、各改行文字を\nで置き換える必要があります。
{
"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"
}
}
Oracle Blockchain Platformネットワークを使用するためのFabric環境の準備
Fabric組織がOracle Blockchain Platformネットワークを使用するには、Fabric組織の環境を変更する必要があります。
次の前提条件タスクが完了していることを確認します。詳細は、「Fabric組織をOracle Blockchain Platformネットワークに参加させるための一般的なワークフロー」を参照してください。
-
Fabric組織の証明書ファイルが作成され、Oracle Blockchain Platformネットワーク・ファウンダに送信されました。
-
ネットワーク・ファウンダは証明書ファイルをアップロードしてFabric組織をネットワークに追加しました。
-
ネットワーク・ファウンダは新規チャネルを作成し、Fabric組織をそこに追加しました。
-
ネットワーク・ファウンダは、オーダリング・サービス設定をダウンロードしてFabric組織に送信しました。
-
Fabric組織がオーダラ証明書ファイルを作成しました。
-
ネットワーク・ファウンダが、Fabric組織にオーダリング・サービスのアドレスおよびポートを提供しました。
Fabric組織を追加してチェーンコードをインストールおよびテストする必要があります。
-
Fabricネットワーク・ディレクトリに移動し、ピア・コンテナを起動します。
-
次のコマンドを使用して、チャネルのジェネシス・ブロックをフェッチします:
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はファウンダのオーダラ証明書ファイルです。
-
-
次のコマンドを使用してチャネルに参加します:
peer channel join -b mychannel.block -o ${orderer_addr}:${orderer_port} --tls --cafile orderer.pem --logging-level debug
-
次のコマンドを使用してチェーンコードをインストールします:
peer chaincode install -n mycc -v 1.0 -l "golang" -p ${CC_SRC_PATH}
CC_SRC_PATHは、チェーンコードが含まれているフォルダです。
-
次のコマンドを使用してチェーンコードをインスタンス化します:
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
-
次のコマンドを使用してチェーンコードを呼び出します:
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
-
次のコマンドを使用してチェーンコードを問い合せます:
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}' --logging-level debug