参与者节点处于 Draining 模式时的 FinalityFlow 行为

FinalityFlow behavior when a participant’s node is in Draining Mode

网络:

场景:

结果:

学习:

我假设因为 PartyC 在 getParticipants() 中列在 PartyB 之后,所以它必须等到 PartyB 重新上线后才能接收交易。这是不幸的,因为PartyB的节点挂了,PartyC受到了惩罚。

问题:

这只是Corda开源版本的限制吗? Corda Enterprise 会以同样的方式运行吗?

想法:

可能有必要明确告知您的 CorDapp 用户这种现象,因为它造成了由网络上其他节点引起的信息不对称的情况。

这是 Corda Open Source 的一个限制。 Corda Enterprise 的 FinalityFlow(直到 4.x)在公证后将交易发送给所有节点,并并行执行解析以提高性能。在 Corda Open Source 中,它是按顺序完成的。