关于流式区块链事件
区块链中的链代码可以通过两种方式之一发布事件。一个使用超级账本架构 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 中的工具和服务为多个事件使用者设置安全可靠的区块链事件通知。
以下是活动如何从区块链平台流向活动消费者:
- 区块链中的链代码使用事件作为有效负载调用 API 网关。您可以手动订阅 API 网关 URL 以区块链事件。
- API 网关将请求传递到事件中继应用程序。事件中继应用程序是您编写的应用程序。它执行以下功能:
- 重新格式化流服务 API 的事件。
- 从 Vault 检索流服务身份证明。
- 将事件发送到流式处理服务 API。
- 流式处理服务确保事件被传送到授权的使用者应用。

插图 architecture-blockchain-event-streaming.png 的说明
准备工作
关于必需服务和角色
要实施此解决方案,您需要一个 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.