Hyperledger fabric 是否可以更新或更改Hyperledger网络中部署的智能合约(链码)
是否可以更新或更改Hyperledger网络中部署的智能合约(链码)?i、 e.我已经部署了智能合约,区块是用事务创建的,过了一段时间后,我想更改链码,可以这样做吗。基本上,我们无法为某个频道更新已安装的链码,但我们可以使用链码版本来区分更新的链码和旧的链码(我们确实进行了升级。Hyperledger fabric 是否可以更新或更改Hyperledger网络中部署的智能合约(链码),hyperledger-fabric,blockchain,hyperledger,hyperledger-composer,Hyperledger Fabric,Blockchain,Hyperledger,Hyperledger Composer,是否可以更新或更改Hyperledger网络中部署的智能合约(链码)?i、 e.我已经部署了智能合约,区块是用事务创建的,过了一段时间后,我想更改链码,可以这样做吗。基本上,我们无法为某个频道更新已安装的链码,但我们可以使用链码版本来区分更新的链码和旧的链码(我们确实进行了升级。 要使用新的更新的链码,我们必须安装新版本的更新的链码(这里是示例版本1,它以前是版本0),链码名称与对等计算机上的旧链码名称相同: peer chaincode install -p chaincodedev/chai
要使用新的更新的链码,我们必须安装新版本的更新的链码(这里是示例版本1,它以前是版本0),链码名称与对等计算机上的旧链码名称相同:
peer chaincode install -p chaincodedev/chaincode/sacc -n mycc -v 1
请参见上面命令中带有版本1的-v
标记和带有chaincode name的-n
标记
然后升级频道上的链码:
peer chaincode upgrade -n mycc -v 1 -c '{"Args":["a","10"]}' -C myc
使用版本1,-n
带有chaincode name的标签和-C
带有频道名称的标签,在上面的命令中再次查看-v
标签,该标签在其上实例化
因此,一旦安装并升级了链码,它将保留在频道上,我们可以通过升级来使用更新的链码。当我们在对等机上调用链码时,它将调用安装在频道上的最新链码。e、 g: 参考文献:
1) :对等链码升级示例()由于您使用Hyperledger Composer标记了您的问题,我将在前面的回答中添加一句话,即使用Composer,您可以通过以下命令实现相同的升级:
composer网络安装-cPeerAdmin@hlfv1-我的-network@0.0.2.bna
及
composer网络升级-cPeerAdmin@hlfv1-n我的网络-V 0.0.2
要升级到网络的v0.0.2(链码)。谢谢或您的回复安装新链码后,您无需再次调用
实例化
。您只需要运行对等链码安装
和对等链码升级
命令(Init()
方法在链码升级期间也被调用,这就是为什么升级时必须小心避免重设状态的原因)
peer chaincode invoke -n mycc -c '{"Args":["set", "a", "20"]}' -C myc