https://docs.corda.net/changelog.html#version-3-0声明“Corda1.0和2.0的H2数据库实例不能在Corda3.0中重用”。这是否意味着如果我有一个运行Corda2.0的Cordapp,并且我想将我的CorDapp升级到Corda3.0,我需要丢弃我的节点从Corda2.0存储的所有信息,重新开始并在接受新事务之前重新运行所有处理过的事务吗?
让我们举个例子。我有一个Corda2.0 CorDapp记录现金和现金.这个CorDapp已经运行了一段时间,已经有10k个事务存储在保险库中。假设每天有50笔新交易。
假设3月1日,艾丽斯存了30美元。3月2日,爱丽丝提取了20美元,因此她只有10美元可用。
如果我想在3月14日将我的Cordapp升级到Corda3.0,我需要丢弃我的Corda2.0Cordapp (persistence.mv.db等)中存储的数据。在允许Alice进行任何新的存款/提款之前,在Corda3.0中重新运行这些10k的交易(因为我不能允许Alice拥有10美元以外的任何东西)。我的理解正确吗?
发布于 2018-03-15 14:13:01
是这样的。Corda1.0保证了API的稳定性(这意味着您的CorDapps不会从一个版本中断到下一个版本),但是它不能保证线的稳定性。这意味着使用Corda2.0或更高版本创建的数据不一定可以被Corda3.0读取。
Corda3.0确实保证了导线的稳定性,这意味着从Corda3.0开始创建的数据将被未来版本所读取,并且运行不同Corda (3.0+)的节点将能够进行通信。
从Corda2.0迁移到Corda3.0的最佳选择实际上是重新运行Corda3.0上的所有事务,并且只有在该过程完成后才运行新事务。
https://stackoverflow.com/questions/49301744
复制相似问题