Пара вещей, которые вы должны знать. Бизнес-сеть имеет фиксированное имя, которое определено в 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
Таким образом, приведенное выше создаст файл bna на основе версии в package.json. Для согласованности при запуске сети мы передали то же значение, что и переменная --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
, то образ цепочки для предыдущей версии будет существовать. Я считаю хорошей практикой удалить его.