如何更新 corda 中的状态

How to update a state in corda

我已经在 corda 中创建了一个采购订单状态。它已成功保存在保险库中。我的要求是更新状态中的状态字段。我找不到任何方法来更新状态字段。任何人都可以帮助我。带有一些代码的示例将非常有用。

Corda 中的状态是不可变的。您必须编写一个流程,将旧状态作为输入并输出新版本的状态,而不是直接更新它们。

我们仍在研究更新流中状态的简单、预先固定的示例。同时,有一本食谱向您展示如何执行诸如从保险库中提取现有状态以及创建具有输入和输出的交易:https://docs.corda.net/flow-cookbook.html.

正如Joel所说,当你创建一个新的Transaction时,你需要将State(你想更改为CONSUMED)指定为Input of Transaction。 就其本身而言,状态将为 CONSUMED。

示例如下。

final TransactionBuilder txBuilder = new TransactionBuilder(notary) .addOutputState(你的状态,Your_CONTRACT_ID) .addInputState(this.stateAndRef) .addCommand(txCommand);