По сути, мы не можем обновить установленный код цепи для определенного канала, но мы можем использовать версию кода цепи, чтобы отличить более новый обновленный код цепи от старого кода цепи ( мы обновляем Цепной код для операторов - обновление ).
Чтобы использовать новый обновленный цепной код, мы должны установить обновленный цепной код с новой версией ( здесь в примере версии 1, которая была версией 0 до ) с тем же именем цепного кода, что и у более старого имени цепного кода на одноранговом узле:
peer chaincode install -p chaincodedev/chaincode/sacc -n mycc -v 1
См. Тег -v
в приведенной выше команде с тегами version 1 и -n
с именем цепного кода.
Затем обновите код цепи на канале:
peer chaincode upgrade -n mycc -v 1 -c '{"Args":["a","10"]}' -C myc
См. Тег -v
снова в приведенной выше команде с тегом версии 1 , -n
с именем цепного кода и тегом -C
с именем канала, для которого он создан.
Таким образом, после установки и обновления цепного кода он сохраняется на канале, и мы можем использовать более новый обновленный цепной код, обновляя их. Когда мы вызываем цепной код на одноранговом узле, он вызывает последний цепной код, установленный на канале.
например :
peer chaincode invoke -n mycc -c '{"Args":["set", "a", "20"]}' -C myc
Ссылки
1): пример обновления однорангового цепного кода (https://hyperledger -fabric.readthedocs.io / en / release-1.2 / commands / peerchaincode.html # peer-chaincode-upgrade-example )