如何在Corda中使用UTXO

问题描述

我学习了如何通过Corda创建输出状态。 但是,我找不到有关如何使用这些创建的输出的文档。

如何在流代码中指定要用作输入的输出

解决方法

通常是这样的:

  1. 您的状态是LinearState,其UUID属性具有linearId
  2. 想要消耗该状态的流具有一个构造函数,该构造函数将linearId作为输入参数。
  3. 在流中,您查询节点的保管库以通过其linearId获得该状态;查询将返回您的州StateAndRef
  4. 您将StateAndRef添加为交易的输入。
  5. 假设您正在尝试更新该状态,因此将输出添加到事务中;该输出对于linearId具有相同的值;但是您可以修改任何其他属性。这样,您就可以模拟更新,因为Corda中的状态是最终状态。因此要进行更新,请使用它,然后创建一个输出,该输出具有相同的linearId但其余属性的值不同。这样,您就可以通过其状态linearId来跟踪该状态的历史记录。
  6. This example显示了上述步骤,您将看到流构造函数获取投标的ID,查询该投标的保管库;然后通过创建具有相同ID但不同金额的新提案来更新其金额。