ネットワークへの第三者証明書を使用する組織の追加

このトピックでは、第三者証明書を使用する組織のOracle Blockchain Platformネットワークへの参加について説明します。

第三者証明書を使用する組織をOracle Blockchain Platformネットワークに参加させるための一般的なワークフロー

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

第三者認証局(CA)によって発行された証明書を持つ組織は、Oracle Blockchain Platformネットワークに参加者として参加できます。このような参加者はクライアントのみの組織で、ピアやオーダラは含まれません。ネットワークへの参加後、これらの参加者は、SDKまたはHyperledger Fabricコマンドライン・インタフェース(CLI)を使用して、ネットワーク上でブロックチェーン・トランザクションを開始できます。

タスク 実行者 説明 詳細情報
第三者証明書の取得 第三者証明書(参加者)組織 第三者CAサーバーに移動し、必要な証明書ファイルを生成します。必要に応じて、ネットワークへのインポート用にファイルをフォーマットします。 第三者証明書の要件
インポート用の証明書ファイルの作成 第三者証明書(参加者)組織 参加者の管理者およびCA証明書情報を検索し、その情報を使用してJSON証明書ファイルを作成します。 組織の第三者証明書ファイルの作成
第三者(参加者)組織の証明書ファイルのアップロード ファウンダ組織 コンソールを使用して参加者の証明書ファイルをアップロードしてインポートし、参加者をネットワークに追加します。 ネットワークに組織を追加するための証明書のインポート
ネットワーク・ファウンダからオーダリング・サービス設定をエクスポートし、第三者(参加者)組織に提供 ファウンダ組織 ファウンダのオーダリング・サービス設定をJSONファイルに出力し、そのファイルを参加者に送信します。

オーダリング・サービス設定ファイルを開き、オーダリング・サービスのアドレスおよびポートを検索して、それらを参加者に渡します。例:

"orderingServiceNodes": [
{
"address": "grpcs://example_address:7777"
...
}]
オーダリング・サービス設定のエクスポート
チャネルの作成 ファウンダ 新しいチャネルを作成し、参加者を追加します。 チャネルの作成
チェーンコードのインストールおよびインスタンス化 ファウンダ ファウンダのインスタンスで、チェーンコードをアップロード、インストールおよびインスタンス化します。チェーンコードをインストールするネットワーク・ピアを選択します。 クイック・デプロイメントの使用
第三者(参加者)組織の環境の設定 第三者証明書(参加者)組織 チェーンコードを問い合せるか呼び出すには、参加者は次のようにする必要があります:
  • ファウンダのオーダリング・サービスのアドレスおよびポートを参加者の環境に追加します。
  • Hyperledger Fabric CLIまたはSDKを使用するように環境を構成します。
  • チェーンコードをピアにインストールします。
Oracle Blockchain Platformネットワークを使用するための第三者環境の準備

第三者証明書の要件

ネットワークに正常に参加するには、組織は必要な第三者証明書を生成する必要があります。これらの証明書内の情報は、組織の証明書ファイルを作成するために使用され、それがファウンダのインスタンスにインポートされます。

組織が提供する必要がある証明書

CAサーバーから次の証明書を生成する必要があります:

  • クライアント・パブリック証明書
  • CAルート証明書

これらの証明書の要件

証明書は次の要件を満たしている必要があります:

  • 秘密キーの生成時に、Elliptic Curve Digital Signatureアルゴリズム(ECDSA)を使用する必要があります。このアルゴリズムは、Fabric MSPキーで受け入れられる唯一のアルゴリズムです。
  • サブジェクト・キー識別子(SKI)は必須で、拡張ファイルでx509拡張として指定する必要があります。
  • キー・ファイルを.keyから.pem形式に変換する必要があります。
  • 証明書を.crtから.pem形式に変換する必要があります。

適切なファイルを出力および更新したことを確認したら、Oracle Blockchain Platformネットワークにインポートするための証明書ファイルを作成できます。「組織の第三者証明書ファイルの作成」を参照してください。

組織の第三者証明書ファイルの作成

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

このような組織はクライアントのみで、ピアやオーダラは含まれません。ネットワークへの参加後、これらの組織はSDKまたはHyperledger Fabric CLIを使用してネットワークでブロックチェーン・トランザクションを開始できます。

CAサーバーから生成した証明書ファイルに移動して、証明書ファイルの作成に必要な情報を確認します。「第三者証明書の要件」を参照してください。

証明書ファイルは、JSONで記述し、次のフィールドを含む必要があります:

  • mspid — 組織の名前を指定します。
  • type — 組織がネットワーク参加者であることを示します。この値は、Participantである必要があります。
  • admincert — 組織の管理者証明書ファイルの内容が含まれます。証明書情報をJSONファイルにコピーする際、各改行文字を\nで置き換える必要があります。
  • cacert — 組織のCA証明書ファイルの内容が含まれます。証明書情報を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"
 }
} 
    

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

第三者組織がOracle Blockchain Platformネットワークを使用するには、第三者組織の環境を設定する必要があります。

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

  • 第三者組織の証明書ファイルが作成され、Oracle Blockchain Platformネットワーク・ファウンダに送信されました。
  • ネットワーク・ファウンダは証明書ファイルをアップロードして第三者組織をネットワークに追加しました。
  • ネットワーク・ファウンダはオーダラ・サービスの設定をエクスポートし、サービスのアドレスおよびポートを第三者組織に渡し、組織が環境に追加しました。
  • ネットワーク・ファウンダは新規チャネルを作成し、第三者組織をそこに追加しました。
  • ネットワーク・ファウンダはチェーンコードをインストールし、インスタンス化しました。

組織の環境の設定

第三者組織がOracle Blockchain Platformネットワークを正常に使用できるようにするには、Hyperledger Fabric CLIまたはSDKを使用するように環境を設定する必要があります。『Welcome to Hyperledger Fabric』を参照してください。

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

第三者組織は、チェーンコードをピアにインストールする必要があります。これらのピアはその後、チェーンコードを呼び出せるようにチャネルに参加させる必要があります。

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

必要に応じて、第三者組織はチャネルでチェーンコードをインスタンス化できます。例:

export  CORE_PEER_TLS_ENABLED=true
export  CORE_PEER_TLS_ROOTCERT_FILE=$PWD/tls-ca.pem
export  CORE_PEER_MSPCONFIGPATH=$PWD/crypto-config/peerOrganizations/customerorg1.com/users/Admin@customerorg1.com/msp
export  CORE_PEER_LOCALMSPID="customerorg1" 

### gets channel name from input###
CHANNEL_NAME=$1

echo "######### going to instantiate chaincode on channel ${CHANNEL_NAME} ##########"
CORE_PEER_ADDRESS=${peer_host}:${port} peer chaincode instantiate
-o ${peer_host}:${port}  --tls $CORE_PEER_TLS_ENABLED --cafile 
./tls-ca.pem -C ${CHANNEL_NAME}  -n obcs-example02 -v v0 -c '{"Args":["init","a","100","b","200"]}'

チェーンコードの呼出し

第三者組織は、Hyperledger Fabric CLIまたはSDKを使用してチェーンコードを呼び出します。例:

export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_TLS_ROOTCERT_FILE=$PWD/tls-ca.pem
export CORE_PEER_MSPCONFIGPATH=$PWD/crypto-config/peerOrganizations/customerorg1.com/users/User1@customerorg1.com/msp
export CORE_PEER_LOCALMSPID="customerorg1"

### gets channel name from input ###
CHANNEL_NAME=$1

#### do query or invoke on chaincode ####

CORE_PEER_ADDRESS=${peer_host}:${port} peer chaincode query -C
${CHANNEL_NAME} -n $2 -c '{"Args":["query","a"]}'

CORE_PEER_ADDRESS=${peer_host}:${port} peer chaincode invoke -o
${peer_host}:${port} --tls $CORE_PEER_TLS_ENABLED --cafile ./tls-
ca.pem -C ${CHANNEL_NAME} -n $2 -c '{"Args":["invoke","a","b","10"]}'