如何在不进行交易的情况下检查状态是否被公证人消费
How to check state is consumed or not to the notary without making transaction
我想定期检查输出状态是否被篡改消耗,所以想问问公证人状态是否被消耗。这可能吗?
您可以通过在库查询 API
中指定 Vault.StateStatus
来查询节点的消耗状态
val vaultSnapshot = proxy.vaultQueryBy<ContractState>(
QueryCriteria.VaultQueryCriteria(Vault.StateStatus.UNCONSUMED))
我相信您需要编写一个由 corda 公证人执行的流程,然后在公证人上执行保险库查询。这在 corda docs 中被列为实验性功能,因此您可能需要重新考虑如何首先设计您的 cordapp。我自己之前没有大量使用过此功能,所以我不确定它的支持程度如何,但它应该可以工作。这确实意味着您可能 运行 自己的 corda 网络,因为您需要控制公证人的部署方式。
让另一个可信节点或一方具有可见性并且是您要检查的 ContractState 的签名者可能更合适。然后,您的第三方也会有一个响应者流程,该流程在其自己的保险库上执行保险库查询并响应发起者。
我想定期检查输出状态是否被篡改消耗,所以想问问公证人状态是否被消耗。这可能吗?
您可以通过在库查询 API
中指定Vault.StateStatus
来查询节点的消耗状态
val vaultSnapshot = proxy.vaultQueryBy<ContractState>(
QueryCriteria.VaultQueryCriteria(Vault.StateStatus.UNCONSUMED))
我相信您需要编写一个由 corda 公证人执行的流程,然后在公证人上执行保险库查询。这在 corda docs 中被列为实验性功能,因此您可能需要重新考虑如何首先设计您的 cordapp。我自己之前没有大量使用过此功能,所以我不确定它的支持程度如何,但它应该可以工作。这确实意味着您可能 运行 自己的 corda 网络,因为您需要控制公证人的部署方式。
让另一个可信节点或一方具有可见性并且是您要检查的 ContractState 的签名者可能更合适。然后,您的第三方也会有一个响应者流程,该流程在其自己的保险库上执行保险库查询并响应发起者。