Corda在节点之间共享排序[1,2.]



我正在尝试找出Corda测序,以便能够制作ID序列,例如1,2,3

的2个节点。用例:- 节点 A 和节点 B 在事务中 节点 A 将希望遵循节点 B 生成的节点 B 的序列号,因此当节点 A 创建第一个状态时,它将100000001,如果节点 B 创建了另一个与节点 C 的订单,则下一个状态,节点 A 将能够检测并获取下一个序列号,例如100000003并创建订单。

  • 我试图找出几种方法来解决这个问题,这是使用 一个链下DB(在节点B上)排序来执行这个行为,但是 创建自定义序列的问题是来自的任何随机 ping 调用 任何源都可以将序列索引增加 1。
  • 我还想过使用flowSessionping Corda账本 获得存储编号。用于索引我的新状态。但它也会导致 与上述相同的问题。
  • 我也虽然创建一个随机编号。 在节点 A 中,节点 B 将 稍后获取自己的序列,并用新的覆盖数字 数字,但这不可行,因为创建时 ID 必须是 一致且在生命周期内不能随机更改 州。

请注意,建议的ID不是Corda的线性ID,它只是用户视角的外部ID。

对此有什么好的解决方案/建议吗?

您可以创建一个仅用于保存序列号的状态。

  • 使所有节点都参与此状态,以便在序列递增时更新它们。
  • 编写合约代码,使序列状态需要成为每个事务的一部分,并正确递增。
  • 现在,所有节点都可以通过查询其 Vault 中的序列状态来查找当前序列。

最新更新