【发布时间】:2020-10-13 23:47:17
【问题描述】:
与以太坊相比,如果升级智能联系人,它将创建一个新地址,我们无法访问旧智能联系人的现有数据。为了解决这个问题,我们需要实现solidity的设计模式。
我想知道在 Hyperledger Fabric 中升级链代码时这是如何工作的。升级chaincode后是否可以访问旧chaincode中的数据?
【问题讨论】:
标签: hyperledger-fabric blockchain
与以太坊相比,如果升级智能联系人,它将创建一个新地址,我们无法访问旧智能联系人的现有数据。为了解决这个问题,我们需要实现solidity的设计模式。
我想知道在 Hyperledger Fabric 中升级链代码时这是如何工作的。升级chaincode后是否可以访问旧chaincode中的数据?
【问题讨论】:
标签: hyperledger-fabric blockchain
是的,升级链码后可以访问旧链码中的数据。
数据保存在由对等 StateDB 或 CouchDB 托管的分类帐中,链码是读取、写入和更新数据的业务逻辑。
您将升级您的链码,但存储在对等数据库(StateDB 或 CouchDb)中的键值对不会改变。
【讨论】:
首先,应该注意的是,你可以在以太坊上部署智能合约,以后你可以升级,保留它们的地址、状态和余额。
回答您的问题:现有交易不会发生任何事情,因为它们已存储在区块链的先前区块中。因此,您可以使用存储在该交易中的数据。数据存储在链的区块中,智能合约管理可以执行的操作。
在 Hyperledger Fabric 中,智能合约的性能类似于以太坊。您定义可以执行的方法和参数。当您使用此链代码时,您的数据将按照链代码的定义存储在区块链中。升级后,如果新的链码允许,您将访问数据。不管怎样,数据都会在区块链上。
【讨论】: