Corda是否支持状态删除方案?

时间:2019-01-03 07:35:24

标签: corda

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

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

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

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

2 个答案:

答案 0 :(得分:0)

出于开发目的,您只需删除persistence.mv.db文件即可,该文件是整个H2数据库。这将重置您的corda节点。

当然不要将其用于任何生产用途。

答案 1 :(得分:0)

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

您可以直接通过节点的数据库直接删除旧的事务和状态,但前提是事务解析不需要该事务。您可以通过从节点数据库的NODE_TRANSACTIONSVAULT_STATES表中删除行来完成此操作(如果状态为QueryableState,则可以删除状态模式定义的任何自定义表)。但是,如果以后需要将已删除的事务作为解决事务的一部分,则您的节点将抛出错误。

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