首页 > 解决方案 > Corda 是否支持状态删除场景?

问题描述

当不需要使用某些状态(在开发/生产中)时,corda 是否支持状态删除场景因为我在启动节点时遇到异常,例如“类未找到异常”,当我在项目中删除状态类并使用相同的旧时会发生这种情况持久性文件。

我认为这是因为状态类已经插入 VAULT_STATES 并且在启动节点时找不到该类。

我希望有一些提供状态删除的方法。

更多信息 在开发方面,我删除了持久性文件,当然它可以工作,但我只是担心生产方面。

标签: corda

解决方案


从 Corda 3 开始,如果节点将状态作为交易的一部分存储在其事务存储或保管库中,则该节点需要将状态的类定义永久保存在其类路径中。

您可以直接通过节点的数据库删除旧的交易和状态,但前提是交易解析不需要这些交易。NODE_TRANSACTIONS您可以通过从节点数据库中的和表中删除行来完成此VAULT_STATES操作(以及状态模式定义的任何自定义表,如果它是 a QueryableState)。但是,如果稍后需要将删除的交易作为交易解析的一部分,您的节点将抛出错误。

Corda 的未来版本可能会提供一种机制来删除旧的或“非当前”状态和事务。您可以在此处找到有关此过程的讨论:https ://groups.io/g/corda-dev/topic/20405353 。


推荐阅读