Corda 4.0 - 集群中的高可用性公证人

Corda 4.0 - Notary in cluster for High availability

我正在尝试在 Corda V4.0 中开发一个应用程序,我们正在使用客户端 RPC API 进行测试(使用 DriverDSL)。

我的解决方案有一个带有 2 个公证人的 Raft 集群来测试 HA。我还与观察者(在公证人节点中)一起实施了一个解决方案,因此公证人将所有交易记录在他的金库中。

当我发送几笔交易时,行为并不像预期的那样:一些交易记录在 notary-cluster 1 中,而另一笔交易记录在 notary-cluster 2 中。

可以吗?我希望所有交易都保存在公证集群中,否则 Corda 如何解决 HA?

谢谢

我们在 Corda 现场支持 [1] 上提出了这个问题,我们得到了答案:

该行为符合 Corda 的预期。 Notary 集群中唯一复制的数据是公证所需的。此 built-in 集群支持不适用于 HA。 为了实施 HA,他们建议我们使用负载均衡器,并且我们有两个或多个节点发布为 public IP 负载均衡器的 IP。两个节点应该使用相同的数据库(可能是 Postgres)。

总之,HA 应该在 Corda 之外解决。 他们还建议我们查看 Corda Enteprise [2] 中 "Hot-cold high availability deployment" 的文档,特别是负载均衡器配置部分。

  1. https://www.corda.net/participate/community.html
  2. https://docs.corda.r3.com/hot-cold-deployment.html#configuring-the-load-balancer