我有一个成功运行的网络,但是我想更改参数并部署网络。我知道在部署参数已更改的网络之前,我需要在软件包文件中更改网络的版本。但是,我不明白应该为新创建的网络将网络版本更改为什么?
请帮助!。
答案 0 :(得分:1)
您应该了解的事物。业务网络具有固定名称,该名称在定义智能合约的文件夹中的package.json
中定义。要升级链码,名称应保持完全相同,而版本应增加。
假设您的文件看起来像这样
{
"name": "my-special-network",
"version": "1.0.0",
.........
}
现在可以说第一次迭代是使用1.0.0
作为版本。这些命令看起来像
cd chaincode
composer archive create -t dir -n .
composer network install -c PeerAdmin@fabric-network -a my-special-network@1.0.0.bna
composer network start --networkName my-special-network --networkVersion 1.0.0 -A admin -S adminpw -c PeerAdmin@fabric-network
因此,以上代码将根据package.json中的版本创建一个bna文件。为了保持一致性,在启动网络时,我们传递了与--networkVersion
变量相同的值。现在,添加了一些新功能,并且需要添加更新的版本。您的新package.json将是
{
"name": "my-special-network",
"version": "1.0.1",
.........
}
版本应大于1.0.0
,而name
必须完全相同。新的命令集应该是
cd chaincode
composer archive create -t dir -n .
composer network install -c PeerAdmin@fabric-network -a my-special-network@1.0.1.bna
composer network upgrade--networkName my-special-network --networkVersion 1.0.1 -c PeerAdmin@fabric-network
请注意,已将命令启动更改为升级,而不再传递管理员密码。如果您选中docker image ls
,则先前版本的链码图像将存在。我发现删除它是一种好习惯。