关于流式区块链事件

您可以使用 Oracle Cloud Infrastructure 中的工具和服务来安全可靠地将 Oracle Blockchain Platform 事件通知发布到多个已验证订户。

区块链中的链代码可以通过两种方式之一发布事件。一个使用超级账本架构 SDK,另一个使用区块链平台 REST API。但是,这两种方法存在以下限制:

  • Hyperledger Fabric SDK 仅位于 Java 或 Node.js 中。
  • 您必须先修补 Hyperledger Fabric SDK,然后才能将其用于 Oracle Blockchain Platform
  • 不保证传送事件通知。
  • REST API 的使用者必须在区块链创建者实例中有身份证明。

要避免这些限制,请将 Oracle Blockchain Platform REST API 与中继应用程序结合使用。中继应用程序可以是无服务器功能。它从区块链中接收 JSON 格式的事件有效负载,然后重新设置事件有效负载的格式以与 Apache Kafka API 兼容。中继应用程序从 Oracle Vault 获取验证身份证明,然后将事件发送到 Oracle 流处理服务。然后,多个事件使用者可以订阅 Oracle 流式处理服务并开始接收他们有权接收的事件。

体系结构

下图显示了如何使用 Oracle Cloud Infrastructure 中的工具和服务为多个事件使用者设置安全可靠的区块链事件通知。

以下是活动如何从区块链平台流向活动消费者:

  1. 区块链中的链代码使用事件作为有效负载调用 API 网关。您可以手动订阅 API 网关 URL 以区块链事件。
  2. API 网关将请求传递到事件中继应用程序。事件中继应用程序是您编写的应用程序。它执行以下功能:
    • 重新格式化流服务 API 的事件。
    • 从 Vault 检索流服务身份证明。
    • 将事件发送到流式处理服务 API。
  3. 流式处理服务确保事件被传送到授权的使用者应用。
后面是 architecture-blockchain-event-streaming.png 的说明
插图 architecture-blockchain-event-streaming.png 的说明

准备工作

您需要一个发出事件的链代码应用程序,并且需要一个或多个使用链代码发出的事件的应用程序。如果您没有现有的区块链资产,可以修改 Oracle Blockchain Platform 中包括的一个示例。

关于必需服务和角色

要实施此解决方案,您需要一个 Oracle Cloud Infrastructure 账户。

您的用户帐户必须具有足够的权限来创建和部署以下服务:

  • Oracle Blockchain Platform

  • Oracle Functions

  • Oracle Cloud Infrastructure Vault

  • Oracle Cloud Infrastructure 流处理

  • 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.