当前位置: 首页 > 知识库问答 >
问题:

如何在corda中获取一个州的历史?

祁星阑
2023-03-14

在我的Corda项目中,项目状态可能会随着时间的推移而发展。我已经制作了线性状态类型的状态。现在我想检索Corda状态的历史,这意味着,它是如何随着时间的推移而演变的。如何查看科尔达特定州的演变历史?

特别是,我想访问一个州的完整交易链。

共有1个答案

卢涵畅
2023-03-14

当然,如果不能访问您的代码,这个答案会有所不同,但是这里有两个文档需要注意。

您要执行的内容实质上是 Vault 查询(具体取决于您要获取的信息)。

从< code>LinearState上的文档中:

每当一个节点记录一个新的事务时,它还决定是否应该将每个事务的输出状态存储在其存储库中。默认的vault实现基于以下规则做出决定。

来源:https://docs.corda.net/docs/corda-os/4.6/api-states.html#the-vault

也就是说,要执行您的保管库查询,您可以像执行其他状态一样执行它。这是保管库查询API上的文档:https://docs.corda.net/docs/corda-os/4.6/api-vault-query.html

如果您有线性Id,您可以从node shell或使用H2并查看VAULT_LINEAR_STATES表等位置。

如果您想要一个在代码中查询的示例,请查看将linearID作为流参数的义务cordapp。

           // 1. Retrieve the IOU State from the vault using LinearStateQueryCriteria
            List<UUID> listOfLinearIds = Arrays.asList(stateLinearId.getId());
            QueryCriteria queryCriteria = new QueryCriteria.LinearStateQueryCriteria(null, listOfLinearIds);
            Vault.Page results = getServiceHub().getVaultService().queryBy(IOUState.class, queryCriteria);
            StateAndRef inputStateAndRefToSettle = (StateAndRef) results.getStates().get(0);
            IOUState inputStateToSettle = (IOUState) ((StateAndRef) results.getStates().get(0)).getState().getData();

此处的源代码示例:https://github.com/corda/samples-java/blob/master/Advanced/obligation-cordapp/workflows/src/main/java/net/corda/samples/flows/IOUSettleFlow.java#L56-L61级

 类似资料:
  • 本文向大家介绍jQuery 获取遍历获取table中每一个tr中的第一个td的方法,包括了jQuery 获取遍历获取table中每一个tr中的第一个td的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上就是小编为大家带来的jQuery 获取遍历获取table中每一个tr中的第一个td的方法全部内容了,希望大家多多支持呐喊教程~

  • 问题内容: 假设我有ID为3、4、7、9的记录,并且我希望能够通过下一个/上一个链接导航到另一个。问题是,我不知道如何获取具有最近的较高ID的记录。 因此,当我有一个ID为4的记录时,我需要能够获取下一个现有记录,即7。查询可能看起来像 如何获取下一个/上一个记录而不获取整个结果集并手动进行迭代? 我正在使用MySQL 5。 问题答案: 下一个: 以前:

  • 我的布局中有一个,我已经在其中添加了日期更改侦听器: 我可以访问所选日期的年、月、日。但是我怎么知道一周中的哪一天呢?我想要在

  • 这里Book是根类,即最终的CSV将命名为books.CSV。 使用,我们只获得字段名title和author,但是我们还需要来自author类的字段名(name和age),有没有方法获得这些字段名?

  • 问题内容: 我正在用c#。创建一个Winform应用程序,并使用sql数据库。 我有一个表,其中有列,如和。是自动递增,所有其他数据类型是。 我正在使用此代码来获取下一个自动增量值: 我在textBox上显示。 但是,当删除表中的最后一行时,我仍然得到该值,该值最近在文本框中删除了 我应该如何获得下一个自动增量值? 问题答案: 要从SQLServer获取下一个自动增量值: 这将获取当前的自动增量值

  • 问题内容: 我的关联数组: 使用以下代码,用的值填充 我该如何获取密钥? 问题答案: 你可以做: 如PHP文档中所述。