Corda线性状态唯一性

时间:2019-06-24 07:32:31

标签: corda

我正在使用Corda 4.0。使用线性状态时,我发现可以用相同的线性ID(外部ID和UUID)创建多个线性状态。 按照我对不可替代的数字资产的逻辑,线性id假设是唯一的,类似于区块链实现中的唯一令牌。

在数据库的 vault_linear_states (与 vault_states vault_fungible_states 相同)表中,我可以看到主键约束定义为“ output_index transaction_id

如果某些状态将被多次更改,则同一线性将有多个条目。

我在数据库中看到的

output_index 列始终为“ 0”。

问题:

1) output_index 的目的是什么?找不到合适的信息。

2)如何根据唯一性正确处理线性状态?我应该在插入之前以编程方式选择并检查吗?还是有其他方法可以解决?

1 个答案:

答案 0 :(得分:0)

1)输出索引是前一个子事务的索引,因为一个事务可以有多个子事务。其始终为0的原因,如果有更多的子事务,那么它将为0,1,2,依此类推。

2)首先创建线性状态,然后返回其唯一ID,然后使用相同的ID来查询保管库,并将其用作事务构建器中的输入状态,并将其更新为输出状态创建链。

更多信息,请点击https://docs.corda.net/key-concepts-transactions.html