gpt4 book ai didi

blockchain - 状态演化的架构问题

转载 作者:行者123 更新时间:2023-12-01 23:15:47 25 4
gpt4 key购买 nike

我有一个示例贷款用例,其中有两种状态:

  • 发票状态,以及
  • 贷款州。

贷款状态是通过将发票状态作为输入传递来创建的。

enter image description here

现在,由于 Corda 遵循 UTXO 模型,当我执行默认的保管库查询时,发票状态不会显示,因为它现在已被消耗。

要解决这个问题,有两种可能的方法:

  1. 或者,我查询所有状态,即已消耗和未消耗的状态。
  2. 或者,我可以维持 Invoice 状态并将状态标记为发票在消耗它以创建贷款状态后支付的东西(所以这更像是不断发展的状态,就像比特币一样,余额总是在转移。)。像这样的事情:

enter image description here

有人可以推荐什么是正确的架构决策吗?

最佳答案

您的发票应有一个“状态”字段,其中至少包含“未付”和“已付”枚举您的“payInvoice”命令应具有以下输入和输出:输入: 发票 - 状态=未付输出 发票 - 状态=已付款 贷款

验证函数应检查该命令的输入和输出是否如上。此后,“未付”发票状态将被用完且不能再次使用。我希望这是有道理的。

查看以下代码中的“MeteringInvoiceCommands.Pay”方法。这与您所需要的类似,但在本例中,它检查是否已生成付款以及输入状态为“ISSUED”且输出状态为“PAID”

https://gitlab.com/cordite/cordite/blob/master/cordapps/metering-contracts-states/src/main/kotlin/io/cordite/metering/contract/MeteringInvoiceContract.kt

关于blockchain - 状态演化的架构问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52210412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com