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

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

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

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

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つの組織(新しいオーダラのファウンダと所有者)が関与します。どちらのパーティも、完了するために「ファウンダのオーダリング・サービスへの参加者またはスケールアウトされたOSNの参加」の指示に従う必要があります。そうしないと、ファウンダはネットワークを管理できなくなります。

ファウンダのオーダリング・サービスへの参加者またはスケールアウトされたOSNの参加

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

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

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

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

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

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

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

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

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

ファウンダの構成設定のエクスポート

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

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

    ネットワーク構成ブロックには、最新のシステム・チャネル構成ブロックが含まれます。これは保存して参加者の管理者に連絡してください。

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

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

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

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

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

ノート:

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

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

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

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

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

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

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

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

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

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

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

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