チャネルの管理
このトピックでは、チャネルの作成および表示、ピアとアンカー・ピアの参加方法、ポリシーおよびアクセス制御リストの使用方法、オーダラーとチャネルを関連付ける方法など、ネットワーク内のチャネル管理について説明します。
チャネルとは
チャネル・パーティションは、ピアとレジャー・データを分離して隔離し、ブロックチェーン・ネットワークでプライベートおよび機密トランザクションを提供します。
- 同僚
- 共有元帳
- チャネルにデプロイされたチェーンコード
- 1つ以上のオーダリング・サービス・ノード
- チャネル・ポリシー定義および定義が適用されるACL
チャネルに参加する各ピアは、チャネルのピアおよびサービスに対し認証する独自のアイデンティティをそれぞれ保持しています。ピアは複数のチャネルに属することができますが、トランザクション、レジャー状態およびチャネル・メンバーシップに関する情報は、各チャネル内のピアに限定されます。
Oracle Blockchain PlatformコンソールまたはHyperledger Fabric SDKを使用して、ブロックチェーン・ネットワークにチャネルを作成できます。「チャネルの表示」を参照してください。
チャネルの表示
ネットワークのメンバーは、チャネルを使用してブロックチェーン・トランザクション情報を非公開に通信します。
チャネルの作成
ネットワークにチャネルを追加し、そのチャネルを使用できるメンバーおよびそのチャネルに参加できるピアを指定できます。チャネルは削除できません。
このタスクを完了できるのは、管理者のみです。
-
チャネルにチェーンコードをデプロイします。「チェーンコードのデプロイ」を参照してください。
-
ネットワークに参加者が含まれる場合、参加者はコンソールを使用してメンバー・ピアをチャネルに参加させます。「ピアのチャネルへの参加」を参照してください。
チャネルの組織リストの表示または更新
チャネルへのアクセス権を持つ組織のリストを表示できます。チャネルを作成した場合は、チャネルに対する組織の権限を変更でき、チャネルに対して組織を追加または削除できます。
チャネルへのピアの参加
ノードを使用してプライベート・トランザクション情報をチャネル上の他のピア・ノードと交換できるように、ピア・ノードはチャネルに追加できます。
-
チャネルの作成時に、チャネルに参加できるローカル・ピア・ノードを指定します。
-
参加者が含まれるネットワークを作成する場合は、チャネルのメンバーとしてその参加者を選択します。または、チャネルの作成後にその参加者を追加することもできます。
-
インスタンスに複数の可用性ドメインまたはフォルト・ドメインがあるため、Oracleでは、各パーティションからチャネルを1つずつ参加させることをお薦めします。これは、一方のワーカー・ノードが利用できない場合も、チャネルが引き続きエンドースメントおよびコミットで使用できるためです。ピアが配置されているドメインを確認するには、「その他のアクション」メニューでAD情報の表示を選択して可用性ドメイン情報を表示します。
- 各ドメインから最大7つのピアに参加できます。
「チャネルの作成」を参照してください。
このタスクを実行できるのは、管理者のみです。
アンカー・ピアの追加
チャネルを使用する各メンバーは、1つ以上のアンカー・ピアを指定する必要があります。アンカー・ピアは、プライマリ・ネットワークのコンタクト・ポイントで、チャネル上の他のネットワーク・ピアを検出して通信するために使用されます。
組織で、チャネル上のアンカー・ピアとして1つ以上のピアを指定できます。高可用性ネットワークでは、アンカー・ピアを2つ以上指定できます。ネットワーク・チャネルを使用するすべてのメンバーは、コンソールを使用してピア・ノードを1つ以上アンカー・ピアとして指定する必要があります。
このタスクを実行できるのは、管理者のみです。
アンカー・ピアの変更または削除
チャネルのアンカー・ピアを変更または削除できます。アンカー・ピアは、プライマリ・ネットワークのコンタクト・ポイントで、チャネル上の他のネットワーク・ピアを検出して通信するために使用されます。
チャネルのアンカー・ピアを変更または削除する前に、次の情報に注意してください:
- チャネルで通信するには、組織内の1つ以上のピアをアンカー・ピアとして指定する必要があります。
- 高可用性ネットワークでは、アンカー・ピアを2つ以上指定できます。
- ネットワーク・チャネルを使用するすべてのメンバーは、コンソールを使用して、アンカー・ピアとして1つまたは複数のピア・ノードを指定する必要があります。
このタスクを実行できるのは、管理者のみです。
デプロイされたチェーンコードに関する情報の表示
ネットワーク内の様々なチャネルにデプロイされているチェーンコードに関する情報を表示できます。
- コンソールに移動し、チャネル・タブを選択します。
- チャネル表で、情報を表示するチェーンコードがあるチャネル名をクリックします。
- 「チャネル情報」ページで、「デプロイ済チェーンコード」ペインが選択されていることを確認します
- チェーンコード表では、次のことができます:
- チェーンコード・パッケージIDをクリックして「チェーンコード」タブに移動し、その詳細を確認します。たとえば、チェーンコードがインストールされているピアやチェーンコードがデプロイされているチャネルなどです。
- チェーンコードの「その他のアクション」メニューで、「チェーンコード定義の表示」をクリックして、エンドースメント・ポリシーを含むチェーンコードの定義に関する詳細を検索します。
- (オプション)チェーンコードなしのチャネルが表示された場合は、「チェーンコード」タブに移動してチャネルにチェーンコードをデプロイできます。「チェーンコードのデプロイ」を参照してください。
チャネル・ポリシーとACLの使用
このトピックでは、チャネルのポリシーおよびアクセス制御リスト(ACL)について説明します。ここでは、ポリシーの概要、ポリシー・タイプ、ポリシーの変更方法、およびACLを使用してチャネルのリソースにアクセスできる組織およびロールを管理する方法について説明します。
チャネル・ポリシーとは
ポリシーは、一連の条件を定義します。署名が有効とみなされ、対応するリクエストがネットワーク上で実行されるには、その当事者がポリシーの条件を満たしている必要があります。
ブロックチェーン・ネットワークは、これらのポリシーによって管理されます。ポリシーは、リクエストに関連付けられたアイデンティティを、リクエストを満たすために必要なリソースに関連付けられたポリシーに対してチェックします。ポリシーはチャネルの構成内にあります。
チャネルのポリシーの構成後、チャネルのACLリソースに割り当て、チャネルでの変更または処理が実行されるために署名する必要があるメンバーを決定します。たとえば、組織Aまたは組織Bのメンバーを含めるようにライター・ポリシーを変更したとします。次に、ライター・ポリシーをチャネルのcscc/GetConfigBlock ACLリソースに割り当てます。これで、csccコンポーネントに対してGetConfigBlockをコールできるのは、組織Aまたは組織Bのメンバーのみです。
ポリシー・タイプとは
ポリシー・タイプには、署名とImplicitMetaの2つがあります。
- 署名 — 評価ルールの組合せを指定します。AND、ORおよびNOutOfの組合せがサポートされます。たとえば、"組織Aの管理者1名と2名の管理者"や"20社の組織管理者のうち11名"などのような定義が可能です。
新たに作成するポリシーは、署名ポリシーになります。
- ImplicitMeta — このポリシー・タイプは、構成のコンテキストでのみ有効です。署名ポリシーで定義されているポリシーを構成階層の深くで評価した結果が集約されます。"大半の組織管理ポリシー"などのデフォルト・ルールがサポートされます。
ポリシーが作成されるタイミング
ネットワークにチャネルを追加すると、Oracle Blockchain Platformによってデフォルトのポリシーが作成されます。デフォルトのポリシーは、管理者、ライター、リーダー、エンドースメント、LifecycleEndorsement (ImplicitMetaポリシー)および作成者(署名ポリシー)です。必要に応じて、これらのポリシーを変更したり、ポリシーを作成したりできます。
チャネル・ポリシーに関する次の重要な問題に注意してください:
-
コンソールを使用して、チャネルを作成し、組織のACLをReaderOnlyに設定できます。新しいチャネルを保存した後は、このACL設定をチャネルの組織の編集オプションから更新することはできません。
ただし、コンソールのチャネル・ポリシーの管理機能を使用すれば、組織もライター・ポリシーに追加でき、これにより、チャネルのReaderOnly ACL設定が上書きされます。
チャネルのポリシーの追加または変更
チャネルのポリシーを追加または変更して、チャネルで特定のアクションを実行する必要があるメンバーを指定できます。ポリシーを定義したら、それらをチャネルのACLに割り当てます。
ポリシーを追加または更新する前に、Oracle Blockchain Platformでデフォルト・チャネル・ポリシーがどのように作成されるのかを理解する必要があります。「チャネル・ポリシーとは」を参照してください。
このタスクを実行できるのは、管理者のみです。
- コンソールに移動し、チャネル・タブを選択します。
チャネル・タブが表示され、チャネル表にネットワーク上のすべてのチャネルのリストが表示されます。
- チャネル表で、ポリシーを追加または変更するチャネル名をクリックします。
チャネル情報ページが表示されます。
- チャネル情報ページで、チャネル・ポリシー・ペインをクリックします。
- 次のいずれかを行います:
- 新規ポリシーを追加するには、新規ポリシーの作成ボタンをクリックします。ポリシーの作成ダイアログが表示されます。ポリシー名フィールドに名前を入力し、ポリシー・タイプ・フィールドで署名を選択します。署名ポリシー・セクションを展開します。
- 既存のポリシーを変更するには、ポリシー名をクリックします。ポリシーの更新ダイアログが表示されます。
- アイデンティティの追加ボタンをクリックして組織を追加します。または、必要に応じて、既存の署名ポリシーを変更します。次の点に注意してください。
フィールド 説明 MSP ID ドロップダウン・メニューから、ポリシーに署名する必要のある組織を選択します。 ロール ポリシーに必要な対応するピア・ロールを選択します。通常、これはメンバーです。ピアのロールは、その構成情報を表示することで確認できます。 ポリシー式モード ほとんどの場合、「基本」を使用します。「拡張」を選択し、AND、ORおよびNOutOfを使用して式文字列を記述します。有効なポリシー式文字列を記述する方法の詳細は、Hyperledger Fabricドキュメントの「Endorsement policies」を参照してください。 署名者 リクエストを実行するためにポリシーに署名する必要のあるメンバーの数を選択します。 - 新しいポリシーを追加する場合、「作成」をクリックします。ポリシーを変更する場合、「更新」をクリックします。
チャネルのポリシーの削除
自分で作成したチャネル・ポリシーは削除できます。
デフォルト・ポリシー(管理者、作成者、リーダー、ライター、エンドースメントおよびLifecycleEndorsement)は削除できません。また、ACLに割り当てられているチャネル・ポリシーは削除できません。チャネル・ポリシーを削除する前に、ポリシーが割り当てられていないことを確認します。
このタスクを実行できるのは、管理者のみです。
- コンソールに移動し、チャネル・タブを選択します。
チャネル・タブが表示され、チャネル表にネットワーク上のすべてのチャネルのリストが表示されます。
- チャネル表で、ポリシーを削除するチャネルをクリックします。
チャネル情報ページが表示されます。
- チャネル情報ページで、チャネル・ポリシー・ペインをクリックします。
- 削除するポリシーを特定し、その詳細オプション・ボタンをクリックします。
- 「削除」をクリックし、削除を確定します。
チャネルACLとは
アクセス制御リスト(ACL)では、ポリシーを使用してチャネルのリソースにアクセスできる組織およびロールを管理します。
ユーザーは、問合せシステム・チェーンコード(qscc)、ライフサイクル・システム・チェーンコード(_lifecycle)、構成システム・チェーンコード(cscc)、ピア、イベントなどのコンポーネントをターゲットとしてブロックチェーン・ネットワークと対話します。これらのコンポーネントは、チャネル・レベルでポリシーを割り当てることができる特定のリソース(GetConfigBlockやGetChaincodeDataなど)に関連付けられています。これらのポリシーは、チャネルの構成の一部です。
ポリシーは、リソースをリクエストできる組織およびロールを定義します。リクエストがあると、システムはリクエスタのアイデンティティを確認し、ポリシーでそのリクエスタにリクエストの作成が許可されているかどうかを判断します。チャネルの作成時、Oracle Blockchain PlatformによってデフォルトのHyperledger Fabric ACLがチャネルに付けられます。また、Oracle Blockchain Platformは、チャネルに対してデフォルト・ポリシー(管理者、作成者、ライター、リーダー、エンドースメントおよびLifecycleEndorsement)を作成します。必要に応じて、これらのポリシーを変更したり、ポリシーを作成できます。「チャネル・ポリシーとは」を参照してください。
チャネルACLの更新
チャネルのリソースにポリシーを割り当てることで、チャネルのACLを更新できます。ポリシーは、リソースをリクエストできる組織およびロールを定義します
チャネルのACLを更新する前に、ポリシーおよびACLとは何かを理解している必要があります。詳細は、「チャネルACLとは」を参照してください。
- コンソールに移動し、「チャネル」タブをクリックします。
チャネル・ページが表示され、チャネル表にネットワーク上のすべてのチャネルのリストが表示されます。
- 「Channels」表で、ACLを更新するチャネルの名前をクリックします。
チャネル情報ページが表示されます。
- チャネル情報ページで、ACLペインをクリックします。
- リソース表で、更新するリソースを特定します。リソースの展開ボタンをクリックし、リソースに割り当てるポリシーを選択します。
- 必要に応じて、他のリソースのポリシーを変更します。
- 「ACLの更新」をクリックします。
チャネルに対するオーダラの追加または削除
オーダラ管理組織は、チャネルに対してオーダラを追加または削除できます。
- ファウンダ・コンソールで、「チャネル」タブを開き、チャネルを選択してその詳細ビューを表示します。
- オーダラ・サブタブを開きます。現在チャネルに参加しているオーダラ・ノードがすべてリストされます。
- チャネルに参加をクリックします。このチャネルにまだないOSNを選択し、「参加」をクリックします。
- ファウンダ・コンソールで、「チャネル」タブを開き、チャネルを選択してその詳細ビューを表示します。
- オーダラ・サブタブを開きます。現在チャネルに参加しているオーダラ・ノードがすべてリストされます。
- チャネルから削除するオーダラを選択し、その「その他のアクション」メニューから、「削除」を選択します。
オーダラ管理者組織の設定
チャネル内のOSNの管理を任意の組織に割り当てることができます。通常は、ファウンダまたはチャネル作成者が割り当てられます。
- ファウンダ・コンソールで、チャネル・タブを開きます。
- オーダラ管理者組織を設定するチャネルを選択し、「アクション」メニューからOSN管理者の管理を選択します。
- 使用可能な組織のリストから選択してから、「送信」をクリックします。
チャネルのオーダリング・サービス設定の編集
特定のチャネルのオーダリング・サービス設定を更新できます。
- ネットワークのオーダリング・サービス設定の編集の説明に従って、ネットワーク全体のオーダリング・サービス設定を更新できます。
- オーダリング・サービス設定を変更し、ネットワークに対して実行されているアプリケーションがある場合、変更したオーダリング・サービス設定を使用するようにそれらのアプリケーションを手動で更新する必要があります。
- 一般的ではありませんが、状況によっては、ファウンダがネットワーク参加者に異なるオーダリング・サービスを公開することがあります。その場合、更新されたネットワーク構成ファイル・ブロックをエクスポートし、必要な参加者は修正された設定をインポートします。「ファウンダのオーダリング・サービスへの参加者またはスケールアウトされたOSNの参加」を参照してください。