Corda 当节点关闭时,事务不会进行

Corda 当节点关闭时,事务不会进行,corda,Corda,区块链商 我已经编写了一个区块链应用程序,使用Corda(4)开源作为分类账平台,使用Springboot开发中间件 我面临的问题是,当Corda网络中的一个节点关闭时,我的事务没有进行。在中间件层,我从corda网络中的网络地图(公证人和自我节点除外)动态获取节点。我故意关闭网络中的一个节点。我看不到网络图中提供的任何能够确定corda网络中节点状态的功能。现在,由于一个节点关闭,传递到停止节点的消息永远不会得到确认。因此,我的事务没有超出此节点,只是被卡住了 当我再次启动节点时,事务传播将从

区块链商

我已经编写了一个区块链应用程序,使用Corda(4)开源作为分类账平台,使用Springboot开发中间件

我面临的问题是,当Corda网络中的一个节点关闭时,我的事务没有进行。在中间件层,我从corda网络中的网络地图(公证人和自我节点除外)动态获取节点。我故意关闭网络中的一个节点。我看不到网络图中提供的任何能够确定corda网络中节点状态的功能。现在,由于一个节点关闭,传递到停止节点的消息永远不会得到确认。因此,我的事务没有超出此节点,只是被卡住了

当我再次启动节点时,事务传播将从停止的节点中拾取并提交到相应的节点

是否有一种方法可以从中间件层ping一个节点并确定其可用性以停止流执行

另外,是否有一种方法可以创建已停止节点的副本,以实现Corda节点的高可用性

我看不到网络图中提供的任何能够确定corda网络中节点状态的功能

没错,网络地图应该用作发现服务,以查找连接到网络中的其他节点所需的信息(请参见类)。它不包含有关这些节点的运行状况或可用性的任何信息。这可以通过尝试联系节点来确定

当我再次启动节点时,事务传播将从停止的节点中拾取并提交到相应的节点

这是意料之中的,因为流框架的设计方式允许流对节点的瞬时故障/停机具有弹性。节点作为流的一部分缓冲的消息保证最终在对方节点可用且流将取得进展时交付

是否有一种方法可以从中间件层ping一个节点并确定其可用性以停止流执行

目前没有本机功能来检查交易对手节点的运行状况/可用性。但是,您可以尝试交换一对消息或尝试p2p连接。看看如何实现这一目标的答案。还有一个允许终止流的API,请参见
CordaRPCOps
中的方法。但是,使用此API时需要格外小心,因为如果在错误的位置(例如,在最终性期间)终止流可能会产生不一致的分类账视图

另外,是否有一种方法可以创建已停止节点的副本,以实现Corda节点的高可用性

是的,作为Corda Enterprise的一部分,有各种高可用性设置。根据您的描述,我相信您正在寻找的是热-冷部署,有关更多详细信息,请参阅