Java Corda-避免发布重复状态

Java Corda-避免发布重复状态,java,corda,Java,Corda,我对科尔达很陌生,所以我可能错过了一些东西。 避免一方(或不同方)发布重复状态的最佳方式是什么? 例如,我想阻止向卖方、买方发出借据, 以前发布的日期和值。 在科尔达,各州是在需要了解的基础上进行分配的;这意味着如果一方是该州的参与者,它将把该州存储在其保险库中 考虑到这一点,您只能确保某个状态不会在“颁发者”级别上重复 因此,我们可以说,在你的借条中,总是贷款人发出新的借条;因此,您的流程(由贷方启动)应该首先查询贷方的保险库,查看是否有匹配的IOU,如果有,则抛出异常,否则发出新的IOU 因

我对科尔达很陌生,所以我可能错过了一些东西。
避免一方(或不同方)发布重复状态的最佳方式是什么?
例如,我想阻止向卖方、买方发出借据,
以前发布的日期和值。

  • 在科尔达,各州是在需要了解的基础上进行分配的;这意味着如果一方是该州的
    参与者
    ,它将把该州存储在其保险库中
  • 考虑到这一点,您只能确保某个状态不会在“颁发者”级别上重复
  • 因此,我们可以说,在你的借条中,总是
    贷款人
    发出新的借条;因此,您的流程(由
    贷方启动)应该首先查询
    贷方的保险库,查看是否有匹配的IOU,如果有,则抛出异常,否则发出新的IOU
  • 因此,如果你有一张借据,上面有
    贷款人=PartyA
    借款人=PartyB
    ;PartyC无法知道所提到的IOU是否存在(因为它不是处于该状态的参与者)
  • 这不是问题,因为您应该以这样的方式编写流,即流的发起人成为IOU的贷方;这样你就把东西锁起来了
  • 每个
    出借人在发出类似借据之前都会检查他们的金库

您的问题涉及多个方面(UTXO、哈希、双倍支出、可替代/不可替代..)。你能定义你所说的“重复状态”是什么意思吗?我不是说双重花费,也就是说,它不是指引用两次相同的输入状态。但是关于不允许流(输入状态为0)发出/创建状态作为输出,如果系统中已经存在具有相同属性值的状态。(您不应该能够运行相同的流两次)在这种情况下可能可以工作吗?你能解释一下吗?