具有签署约束的合同状态的Corda演化

具有签署约束的合同状态的Corda演化,corda,Corda,在Corda 4.1安装中,我使用签名约束,并希望在我的状态中添加一个新的现场测试。添加并更新cordapp后,当我尝试查询我的vault时,会出现以下错误: VaultQueryException-尝试查询vault时出错:未能反序列化事务中索引0处的组输出\u组:无法为远程类型sg.tradecloud.contracts.states.company.properties.company构造演化序列化程序:远程类型中不存在本地类型的强制属性测试。这意味着该类型没有以向后兼容的方式演化。考虑

在Corda 4.1安装中,我使用签名约束,并希望在我的状态中添加一个新的现场测试。添加并更新cordapp后,当我尝试查询我的vault时,会出现以下错误:

VaultQueryException-尝试查询vault时出错:未能反序列化事务中索引0处的组输出\u组:无法为远程类型sg.tradecloud.contracts.states.company.properties.company构造演化序列化程序:远程类型中不存在本地类型的强制属性测试。这意味着该类型没有以向后兼容的方式演化。考虑在这种新版本中进行可空测试。


解决此问题需要哪些选项?我应该使测试为空吗?我应该进行显式状态更新吗?或者有其他方法可以解决这个问题?

您应该将引入的新字段设置为可空。除非将新添加的字段设置为可空,否则Corda将无法反序列化旧的已发布状态。

但无论如何,如果我需要使它们不可空,该怎么做?显式迁移?