オーダリング・サービスの管理

このトピックでは、ファインダおよび参加者がオーダリング・サービスを管理する方法について説明します。

このトピックで説明するコンテンツに加えて、コンソールのチャネル・ページで、オーダラ・ノードのいくつかのチャネル固有のタスクを実行できます。関連項目:

オーダリング・サービスとは

Oracle Blockchain Platformは、コンセンサス・タイプとしてRaftをサポートしています。

RaftプロトコルのHyperledger Fabric実装の詳細は、オーダリング・サービス- Raftに関する項を参照してください。

古いKafkaコンセンサス・タイプでは、ネットワーク全体に最大2つのオーナラ・ノードを含めることができ、すべてのチャネルに参加する必要があります。場合によっては、過負荷になり、スケール・アウトできないことがあります。Raftコンセンサス・タイプでは、ネットワークに注文者ノードの数を任意にでき、各チャネルで独自の注文者ノード・セットを定義できます。チャネルごとに異なるオーダラー・ノードを使用でき、オーダラー・ノードはボトルネックではなくなります。

ただし、Raftコンセンサス・タイプは、適切に構成するために複雑になる場合があります。実行できる操作または実行できない操作に関するルールがあり、チャネルがこれらのルールに従っていない場合は、ネットワークが機能しない可能性もあります。次のガイドラインに従って、発生する問題を減らす必要があります:

大部分のオーダリング・サービス・ノード(OSN)を存続させる

Raftコンセンサス・アルゴリズムでは、大部分のオーダー・サービス・ノード(OSN)が動作している必要があります。それ以外の場合は、コンセンサスを作成できません。過半数は50%より大きいことを意味します。たとえば、5つのOSNの場合、3つ以上のOSNが動作している必要があります。6つのOSNの場合、4つ以上のOSNが動作している必要があります。
  • ネットワークで動作しているOSNが50%以下の場合、ネットワーク管理は機能しません。新しいチャネルを作成することも、新しいオーダラ・ノードをネットワークに追加することも、オーダラをネットワークから削除することもできません。
  • アプリケーション・チャネルで動作しているOSNが50%以下の場合、このアプリケーション・チャネルにトランザクションを送信することはできません。問合せは正しく機能しますが、新しい組織の追加、アクセス制御リストの変更、チェーンコードのインスタンス化またはデプロイなどの管理操作は失敗します。

新しいOSNをネットワークまたはアプリケーション・チャネルに追加する場合は注意してください。所有者が信頼性があり、OSNが堅牢であることを確認してください。

OSNまたは組織を削除する場合は、50%を超えるOSNが引き続き機能します。たとえば、それぞれ3つのOSNを持つ2つの組織がある場合、1つの組織を削除すると、削除時にその組織はOSNの50%のみが機能していると解釈されます。余分な組織を削除する前に、OSNを残りの組織に追加して、機能しているOSNが常に50%を超えていることを確認します。

オーダラを頻繁に追加または削除しない

新しいOSNがネットワークまたはチャネルに追加されるか、既存のOSNがチャネルから削除されるたびに、現在のRaft OSNクラスタは一時的に不安定になります。この期間中はトランザクションを処理できず、次のエラー・メッセージが次のステータスを示す場合があります:
UNKNOWN: Stream removed
SERVICE UNAVAILABLE
BAD REQUEST

これは数分続く場合があります。前のRaftリーダーOSNをチャネルから削除した場合、20分間かかることがあります。

オーダラを頻繁に追加または削除しないようにします。複数のオーダラを追加または削除する必要がある場合は、1つずつ実行し、次の変更を行う前に、ネットワークが動作ステータスに戻っていることを確認します。

できるだけ早く新規オーダラが起動されていることの確認

新しい注文者をネットワークに追加する場合、通常は2つの組織(新しい注文者の創設者と所有者)が関与します。どちらのパーティも、完了するために「Founder's Ordering Serviceへの参加者またはスケールアウトされたOSNの参加」の指示に従う必要があります。そうしないと、作成者はネットワークを管理できなくなります。

参加者またはスケールアウトされたOSNを創設者のオーダリング・サービスに参加

参加者インスタンスをプロビジョニングすると、3つのオーダラで作成されます。オーダラは、ネットワークに参加するまで非アクティブです。ファウンダをスケール・アウトすると、ネットワークに参加するまで、新しいオーダラも非アクティブになります。

複数のオーダラを追加または削除する必要がある場合は、1つずつ実行し、次の変更を行う前に、ネットワークが動作ステータスに戻っていることを確認します。Raftオーダラの追加、削除、開始および停止に関するその他の重要な詳細は、「オーダー・サービスとは」を参照してください。

参加者またはスケールアウトされたオーダラーからのOSN設定のエクスポート

参加者またはスケールアウトしたオーダラをネットワークに参加させるには、それらの設定をエクスポートしてファナにインポートする必要があります。

  1. 「ノード」タブで、参加者コンソール(またはスケールアウトしたオーダラのファウンダ・コンソール)で、オーダラ・ノード(または複数のノードが存在する場合は最初のオーダラ・ノード)を見つけます。このノードの「アクション」メニューを選択し、OSN設定のエクスポートを選択します。

    これにより、設定を含むJSONファイルが生成され、ファイルが保存されます。このファイルには、組織の証明書と、参加者組織の管理者の秘密キーによって署名された選択済オーダラ・サービス・ノード(OSN)設定が含まれます。このファイルは、創設者インスタンスの管理者に送信する必要があります。

    このOSNを使用するチャネルでアプリケーションを実行するには、このエクスポートされたTLS証明書も必要です。「アプリケーションの開発の前に」を参照してください。

  2. ファウンダ・コンソールで、「ネットワーク」タブを開きます。OSNの追加をクリックします。参加者が指定したJSONファイルの場所の入力を求めるウィンドウが開きます。選択してファイルをアップロードして、「追加」をクリックします。

    参加者組織または新規にスケールアウトされたオーダラが、システム・チャネル・リストのオーダラ組織セクションに追加されます。

創設者の環境設定のエクスポート

参加者またはスケールアウトしたオーダラを創設者に追加したら、創設者の設定をエクスポートして参加者またはスケールアウトしたオーダラにインポートする必要があります。

  1. ファウンダ・コンソールで、「ネットワーク」タブを開きます。ネットワーク構成ブロックのエクスポートをクリックします。

    ネットワーク構成ブロックには、最新のシステム構成ブロックが含まれます。これは保存して参加者の管理者に送信できます。

  2. 「ノード」タブで、参加者コンソール(またはスケールアウトしたオーダラのファウンダ・コンソール)で、オーダラ・ノード(または複数のノードが存在する場合は最初のオーダラ・ノード)を見つけます。このノードの「アクション」メニューを選択し、ネットワーク構成ブロックのインポートを選択します。

    ファウンダ・インスタンス管理者から送信されたファイルの入力を求めるプロンプトが表示されます。

  3. 参加者コンソールで、「ノード」タブをリフレッシュします。注文者ノードのステータスは「停止中」としてリストされます。「アクション」メニューから、「起動」を選択します。

    起動された各注文者ノードは、ファウンダのRaftクラスタに追加されます。

(インスタンスのスケーリングの説明に従って)オーダラをスケール・アウトして新しいOSNを追加するたびに、これらのステップを繰り返して新しいOSNをRaftクラスタに追加する必要があります。

ノート:

複数のOSNを単一のバッチでネットワークに追加することはできません。一度に1つのOSNのみが追加されていることを確認します。

ネットワークのオーダリング・サービス設定の編集

ファウンダ・インスタンスのオーダリング・サービス設定を更新できます。

オーダリング・サービス設定の編集については、次の重要な情報に注意してください:
  • 更新された設定は、新しいチャネルを作成するときに使用され、既存のチャネルに適用されません。
  • 個別に既存のチャネルのオーダー・サービス設定を更新することもできます(「チャネルのオーダー・サービス設定の編集」を参照)。
  • オーダリング・サービス設定を変更し、ネットワークに対して実行されているアプリケーションがある場合、変更したオーダリング・サービス設定を使用するようにそれらのアプリケーションを手動で更新する必要があります。
  • 一般的ではありませんが、一部のネットワーク参加者に別のオーダリング・サービスを公開することがあります。その場合、更新されたネットワーク構成ブロックをエクスポートし、必要な参加者は変更された設定をインポートします。「創設者のオーダリング・サービスへの参加者またはスケールアウトされたOSNの参加」を参照してください。
このタスクを実行できるのは、管理者のみです。
  1. ファウンダのコンソールに移動し、ネットワーク・タブを選択します。
  2. オーダリング・サービス設定ボタンをクリックします。
    オーダリング・サービス設定ダイアログが表示されます。
  3. 必要に応じて設定を更新します。
    フィールド 説明
    バッチ・タイムアウト(ミリ秒) バッチが作成されるまでシステムが待機する時間をミリ秒単位で指定します。1から36000000の数字を入力してください。
    最大メッセージ数 バッチに含めるメッセージの最大数を指定します。1から4294967295の数字を入力してください。
    絶対メッセージ数 バッチ内のシリアライズされたメッセージに許容されるバイトの最大数を指定します。

    この数値は、優先メッセージ・バイト数・フィールドに入力する値より大きくする必要があります。

    優先メッセージ・バイト数 バッチ内のシリアライズされたメッセージに許容される優先バイト数を指定します。このサイズを超えるメッセージは大きいバッチになりますが、バッチ・サイズは絶対メッセージ・バイト数フィールドに指定したバイト数以下になります。

    Oracleでは、この値を1MB以下に設定することをお薦めします。

    このフィールドに入力する値は、「絶対メッセージ・バイト数」フィールドに入力する値より小さくする必要があります。

    スナップショット間隔のサイズ スナップショットが取得されるMB数を定義します。
  4. 更新」をクリックします。
    更新された設定が保存されます。

オーダリング・サービス設定の表示

参加者のOracle Blockchain Platformインスタンスにインポートされたファウンダのオーダリング・サービス設定を表示できます。

「参加者またはスケールアウトされたOSNを創設者のオーダー・サービスに参加する」の説明に従って、ファウンダがオーダー・サービス設定を変更した場合、新しい設定を参加者に対応させる必要があります。ネットワークに対して実行されているアプリケーションがある場合、変更したオーダリング・サービス設定を使用するようにそれらのアプリケーションを手動で更新する必要があります。
  1. 参加者のコンソールに移動し、ネットワーク・タブを選択します。
  2. 「オーダリング・サービス設定」をクリックし、「表示」をクリックします。
    オーダリング設定ダイアログが表示されます。