corda - 跟踪 Corda 中的状态变化
问题描述
我计划使用 vaultTrack 方法来跟踪状态对象的变化。一旦我在客户端级别捕获事件,我计划将这些数据存储在离线数据库中或调用另一个 API。在这个实施过程中会不会有任何挑战。据我了解,RPC 客户端库将一直在监听状态变化,并且它还会处理来自外部各方的传入 RPC 调用。会不会降低性能。VaultTrack 方法如何在内部工作。
解决方案
嗨,我在您的实施中没有看到任何挑战。
在 Corda 中,我们使用 Apache Artemis 进行 RPC 通信。Corda-RPC 库必须包含在客户端才能连接到服务器。
在内部这是这样工作的 -
启动时,将在 RPC 客户端(客户端)和 RPC 服务器(在 Corda 节点内)上创建 Artemis,创建客户端和服务器队列,并在客户端和服务器之间启用/建立会话。Corda-RPC 库包含一个客户端代理,它将 RPC 客户端调用转换为低级 Artemis 消息并将它们发送到服务器 Artemis 实例。这些 RPC 请求存储在服务器端的 Artemis 队列中。服务器端消费者检索这些消息,进行适当的 RPC 调用,并向客户端发送确认。方法完成后,将回复发送回客户端。回复包含在 Artemis 消息中,并由服务器 Artemis 发送到客户端 Artemis。然后客户端使用来自客户端 Artemis 队列的回复。
Corda-RPC 库中的客户端代理抽象了上述过程。从客户端的角度来看,您应该只创建代理实例并进行 RPC 调用。
我会敦促您使用重新连接客户端。您可以在我写的博客中阅读更多相关信息。
另请阅读博客的最后一部分,其中讨论了如何处理重新连接/故障转移场景。
推荐阅读
- php - Can I use the SSH vi code editor with phpseclib?
- php - Creating string with specified length
- html - 为什么边距底部不会增加父元素的大小?
- android - 现有项目中的错误 - XML 文档结构必须在同一实体内开始和结束
- azure-active-directory - 基于组成员身份的 Azure AD 动态组
- python - PyAudio stream.is_active(),它如何知道它是否处于活动状态
- javascript - 在 Heroku 中同时使用 Node.js 和 Python
- c# - C# 将数组转换为列表
- sql-server - 使用字段中的引号将 CSV 导入 SQL Server 的简单方法
- python - 使用相同的内容请求 google map api 并获得不同的结果