ストリーミング・ブロックチェーン・イベントについて
ブロックチェーン内のチェーンコードは、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内のツールとサービスを使用して、複数のイベント・コンシューマに信頼性が高く安全なブロックチェーン・イベント通知を設定する方法を示しています。
これにより、イベントはブロックチェーン・プラットフォームからイベント・コンシューマに流れます。
- ブロックチェーンコードのチェーンコードは、イベントをペイロードとしてAPIゲートウェイをコールします。ブロックチェーン・イベントへのAPIゲートウェイURLを手動でサブスクライブします。
- APIゲートウェイは、リクエストをイベント・リレー・アプリケーションに渡します。Event Relay Appは、ユーザーが記述したアプリケーションです。次の機能を実行します。
- ストリーミング・サービスAPIのイベントを再フォーマットします。
- Vaultからストリーミング・サービス資格証明を取得します。
- ストリーミング・サービスAPIにイベントを送信します。
- Streaming Serviceは、イベントが認可されたコンシューマ・アプリケーションに配信されることを確認します。

図architecture-blockchain-event-streaming.pngの説明
開始する前に
必須サービスおよびロールについて
このソリューションを実装するには、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.