【问题标题】:Hyperledger Fabric: what happens to the existing transactions when a chaincode is upgraded?Hyperledger Fabric:升级链码时现有交易会发生什么?
【发布时间】:2020-10-13 23:47:17
【问题描述】:

与以太坊相比,如果升级智能联系人,它将创建一个新地址,我们无法访问旧智能联系人的现有数据。为了解决这个问题,我们需要实现solidity的设计模式。

我想知道在 Hyperledger Fabric 中升级链代码时这是如何工作的。升级chaincode后是否可以访问旧chaincode中的数据?

【问题讨论】:

    标签: hyperledger-fabric blockchain


    【解决方案1】:

    是的,升级链码后可以访问旧链码中的数据。

    数据保存在由对等 StateDB 或 CouchDB 托管的分类帐中,链码是读取、写入和更新数据的业务逻辑。

    您将升级您的链码,但存储在对等数据库(StateDB 或 CouchDb)中的键值对不会改变。

    【讨论】:

      【解决方案2】:

      首先,应该注意的是,你可以在以太坊上部署智能合约,以后你可以升级,保留它们的地址、状态和余额。

      回答您的问题:现有交易不会发生任何事情,因为它们已存储在区块链的先前区块中。因此,您可以使用存储在该交易中的数据。数据存储在链的区块中,智能合约管理可以执行的操作。

      在 Hyperledger Fabric 中,智能合约的性能类似于以太坊。您定义可以执行的方法和参数。当您使用此链代码时,您的数据将按照链代码的定义存储在区块链中。升级后,如果新的链码允许,您将访问数据。不管怎样,数据都会在区块链上。

      【讨论】:

      • 感谢您的回答。实际上,据我所知,我们总是在安装新的智能合约后获得一个新地址。如果我们与关系数据库进行比较,我们可以在部署后修改列和数据。我们如何使用超级账本结构做到这一点?回到您的回答,我们如何实现新的链码来访问以前版本的数据?
      • 如果你升级了一个链码,你将继续访问之前链码的数据。它由 Hyperledger Fabric 自动完成。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-22
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多