ストリーミング・ブロックチェーン・イベントについて

Oracle Blockchain Platformのイベント通知は、Oracle Cloud Infrastructure内のツールやサービスを利用して、安全かつ確実に複数の認証されたサブスクライバに公開できます。

ブロックチェーン内のチェーンコードは、2つの方法のいずれかでイベントを公開できます。1つはHyperledger Fabric SDKを使用しており、もう1つはBlockchain Platform REST APIです。ただし、この2つの方法には次のような制限があります。

  • Hyperledger Fabric SDKはJavaまたはNode.jsのみにあります。
  • Oracle Blockchain Platformで使用する前に、Hyperledger Fabric SDKにパッチを適用する必要があります。
  • イベント通知は配信されません。
  • REST APIのコンシューマは、ブロックチェーン・ファウンダ・インスタンスで資格証明を持っている必要があります。

これらの制限を回避するには、リレー・アプリケーションでOracle Blockchain Platform REST APIを使用します。リレー・アプリはサーバーレス機能にすることができます。ブロックチェーンからJSON形式のイベント・ペイロードを受信し、Apache Kafka APIと互換性があるようにイベント・ペイロードを再フォーマットします。リレー・アプリケーションは、Oracle Vaultから認証資格証明を取得し、イベントをOracle Streaming Servicesに送信します。その後、複数のイベント・コンシューマがOracle Streaming Servicesにサブスクライブし、受信が承認されているイベントの受信を開始できます。

アーキテクチャ

この図は、Oracle Cloud Infrastructure内のツールとサービスを使用して、複数のイベント・コンシューマに信頼性が高く安全なブロックチェーン・イベント通知を設定する方法を示しています。

これにより、イベントはブロックチェーン・プラットフォームからイベント・コンシューマに流れます。

  1. ブロックチェーンコードのチェーンコードは、イベントをペイロードとしてAPIゲートウェイをコールします。ブロックチェーン・イベントへのAPIゲートウェイURLを手動でサブスクライブします。
  2. APIゲートウェイは、リクエストをイベント・リレー・アプリケーションに渡します。Event Relay Appは、ユーザーが記述したアプリケーションです。次の機能を実行します。
    • ストリーミング・サービスAPIのイベントを再フォーマットします。
    • Vaultからストリーミング・サービス資格証明を取得します。
    • ストリーミング・サービスAPIにイベントを送信します。
  3. Streaming Serviceは、イベントが認可されたコンシューマ・アプリケーションに配信されることを確認します。
architecture-blockchain-event-streaming.pngの説明が続きます
図architecture-blockchain-event-streaming.pngの説明

開始する前に

イベントを発行するチェーンコード・アプリケーションが必要であり、チェーンコードが発行するイベントを消費する1つ以上のアプリケーションが必要です。既存のブロックヘイン資産がない場合は、Oracle Blockchain Platformに含まれているサンプルのいずれかを変更できます。

必須サービスおよびロールについて

このソリューションを実装するには、Oracle Cloud Infrastructureアカウントが必要です。

ユーザー・アカウントには、次のサービスを作成およびデプロイするための十分な権限が必要です。

  • Oracle Blockchain Platform

  • Oracle Functions

  • Oracle Cloud Infrastructure Vault

  • Oracle Cloud Infrastructure Streaming

  • Oracle Cloud Infrastructure Registry

  • Oracle Cloud Infrastructureゲートウェイ

アクセスに必要なポリシーの詳細は、共通ポリシーを参照してください。

See Learn how to get Oracle Cloud services for Oracle Solutions to get the cloud services you need.