Corda 我是否可以创建一个流来将状态迁移到新版本,而不是使用合同升级?

Corda 我是否可以创建一个流来将状态迁移到新版本,而不是使用合同升级?,corda,Corda,当我升级合同时,有两个步骤授权和启动。由于这两个步骤都需要在每个州一个接一个地完成(据我所知),所以当我有大量数据时,这需要很长时间 最后,我循环调用API来查询一些数据量,然后逐个循环调用ContractUpgradeFlow 结果是花了11个多小时才完成升级 所以问题是,我是否创建一个流来查询StateV1列表作为输入,并创建一个输出作为StateV2列表 它会减少合同升级的过程吗 应该快一点吗 这与升级合同考虑的结果相同吗 如果我想使用Corda合同升级而不是流A,那么对StateV2的

当我升级合同时,有两个步骤授权和启动。由于这两个步骤都需要在每个州一个接一个地完成(据我所知),所以当我有大量数据时,这需要很长时间

最后,我循环调用API来查询一些数据量,然后逐个循环调用ContractUpgradeFlow

结果是花了11个多小时才完成升级

所以问题是,我是否创建一个流来查询
StateV1
列表作为输入,并创建一个输出作为
StateV2
列表

  • 它会减少合同升级的过程吗
  • 应该快一点吗
  • 这与升级合同考虑的结果相同吗
  • 如果我想使用Corda合同升级而不是流A,那么对
    StateV2
    的下一次合同升级会有任何影响吗

是正确的,显式升级如果有大量数据,这将需要时间,因为很多事情都发生在幕后

获取每个未使用状态,创建新事务,使用旧合同创建旧状态,使用新合同创建新状态 添加到此事务中,事务将发送给每个签名者进行签名,设置适当的约束,最后将整个签名事务发送给公证人

“所以问题是,我是否创建一个流来查询StateV1列表作为输入,并创建一个输出作为StateV2列表”

是的,您可以很好地创建一个流来查询StateV1列表作为输入,并创建一个out输出作为StateV2列表,但请记住,您还必须注意我上面提到的所有步骤,这些步骤目前由ContractUpgradeFlow处理

“它会减少合同升级的过程吗?”

不,我不这么认为,因为您将必须处理上述所有步骤,这些步骤目前由ContractUpgradeFlow处理

“应该快一点吗?”

不,它将花费与ContractUpgradeFlow相同的时间