是否可以更新或更改在Hyperledger网络中部署的智能合约(链代码)

时间:2018-04-27 04:40:40

标签: hyperledger-fabric blockchain hyperledger hyperledger-composer

是否可以更新或更改Hyperledger网络中部署的智能合约(链代码)?即我已经部署了一个智能合约,块是用事务创建的,一段时间后,我想改变链代码,是否可以这样做。

2 个答案:

答案 0 :(得分:3)

基本上我们无法更新某个频道的已安装链代码,但我们可以使用链代码版本与较旧的链代码(我们升级 Chaincode for Operators - upgrade)区分较新的更新链代码。
要使用新的更新链代码,我们必须使用新版本安装更新的链代码(此处在示例版本1中,在之前为版本0),其链代码名称与对等端上的旧链代码名称相同:< / p>

where T : IWCFServiceBase

使用版本1 和带有链码名称的peer chaincode install -p chaincodedev/chaincode/sacc -n mycc -v 1 标记,查看上述命令中的-v标记。

然后升级频道上的链码:

-n

在上面的命令中再次使用版本1 peer chaincode upgrade -n mycc -v 1 -c '{"Args":["a","10"]}' -C myc 标记使用链代码名称和-v标记及其实例化的频道名称,再次查看-n标记

因此,一旦安装并升级了链码,它就会保留在频道上,我们可以通过升级它们来使用更新的更新链码。当我们在对等体上调用链代码时,它将调用安装在通道上的最新链代码 例如:

-C

<强>参考
1):peer chaincode升级示例(https://hyperledger-fabric.readthedocs.io/en/release-1.2/commands/peerchaincode.html#peer-chaincode-upgrade-example

答案 1 :(得分:1)

由于您使用Hyperledger Composer标记了您的问题,我会添加上一个答案,说使用编辑器您可以使用这些命令实现相同的升级:

composer network install -c PeerAdmin@hlfv1 -a my-network@0.0.2.bna

composer network upgrade -c PeerAdmin@hlfv1 -n my-network -V 0.0.2

升级到网络的v0.0.2(链码)。