将数据从Corda 2迁移到Corda 3

将数据从Corda 2迁移到Corda 3,corda,Corda,声明“Corda 1.0和2.0的H2数据库实例不能用于Corda 3.0”。这是否意味着,如果我有一个运行Corda 2.0的Cordapp,并且我想将我的Cordapp升级到Corda 3.0,我需要放弃Corda 2.0中所有节点存储的信息,重新启动并重新运行所有已处理的事务,然后再接受新事务 让我们举个例子。我有一个Corda 2.0 CorDapp,可以记录现金收入和现金支出。这个CorDapp已经运行了一段时间,vault中已经存储了10k笔交易。假设每天有50笔新交易 假设在3月1

声明“Corda 1.0和2.0的H2数据库实例不能用于Corda 3.0”。这是否意味着,如果我有一个运行Corda 2.0的Cordapp,并且我想将我的Cordapp升级到Corda 3.0,我需要放弃Corda 2.0中所有节点存储的信息,重新启动并重新运行所有已处理的事务,然后再接受新事务

让我们举个例子。我有一个Corda 2.0 CorDapp,可以记录现金收入和现金支出。这个CorDapp已经运行了一段时间,vault中已经存储了10k笔交易。假设每天有50笔新交易

假设在3月1日,Alice存款30美元。3月2日,Alice提取了20美元。因此,她只有10美元可用


如果我想在3月14日将我的CordaApp升级到Corda3.0,我需要丢弃Corda2.0 CordaApp中存储的数据(
persistence.mv.db
,等等),并在Corda3.0中重新运行这些10k事务,然后允许Alice进行任何新的存款/取款(因为我不能允许Alice拥有10美元以外的任何东西)。我的理解正确吗?

没错。Corda 1.0保证了API的稳定性(这意味着您的CorDapps不会从一个Corda版本中断到下一个Corda版本),但它没有保证有线电视的稳定性。这意味着使用Corda 2.0或更早版本创建的数据不一定能被Corda 3.0读取

Corda 3.0确实保证了线路的稳定性,这意味着从Corda 3.0开始创建的数据将被未来的版本读取,并且运行不同Corda版本(3.0+)的节点将能够通信

从Corda 2.0迁移到Corda 3.0的最佳选择实际上是在Corda 3.0上重新运行所有事务,并且仅在该过程完成后运行新事务