Я пытаюсь обновить свою сеть Hyperledger Fabri c с v1.4.7 до v2.1. Обновление пиров и заказчиков выполняется плавно, и уже созданные цепные коды работают хорошо. (Возможности канала по-прежнему остаются v1.x.) Однако, когда я пытаюсь обновить новую версию моего цепного кода, он не работает.
В версии 1.4.7 я построил сервер для установки / создания экземпляра / обновления цепной код с использованием Fabri c SDK v1.4.x. Однако я обнаружил, что все API, связанные с установкой / созданием экземпляра / обновлением цепного кода, были удалены из Fabri c SDK v2.1. Итак, как сказал do c, я попытался обновить цепной код, используя peer
CLI.
Сначала я упаковал свой цепной код, используя команду peer lifecycle chaincode ...
. В это время я установил FABRIC_CFG_PATH
в core.yaml
в папке fabric-samples
(я не понимаю, почему я делаю это только для упаковки цепного кода, но в любом случае я сделал то, что сказано в do c). И я установил CORE_PEER_MSPCONFIGPATH
в папку msp моего пользователя-администратора.
После того, как я получил свой пакет цепного кода, я подключаюсь к своему первому узлу peer0.identity.bpl
, используя команду docker exec -it peer0.identity.bpl /bin/sh
. Мой docker контейнер не открывает порт снаружи в производственном режиме, поэтому мне нужно подключить контейнер внутри.
Затем я набрал следующую команду и получил сообщение об ошибке:
/artifacts # peer lifecycle chaincode install identity_cc_v1.2.0.tar.gz
Error: chaincode install failed with status: 500 - Failed to authorize invocation due to failed ACL check: Failed verifying that proposal's creator satisfies local MSP principal during channelless check policy with policy [Admins]: [The identity is not an admin under this MSP [BPLMSP]: The identity does not contain OU [ADMIN], MSP: [BPLMSP]]
Итак, я думаю, что мне нужно какое-то удостоверение администратора, поэтому я скопировал свою папку администратора msp на этот узел. Затем я установил CORE_PEER_MSPCONFIGPATH
в эту скопированную папку администратора msp. Затем я получил:
/artifacts # export CORE_PEER_MSPCONFIGPATH=/artifacts/org-admin/msp
/artifacts # peer lifecycle chaincode install identity_cc_v1.2.0.tar.gz
2020-05-26 07:21:47.020 UTC [main] InitCmd -> ERRO 001 Cannot run peer because error when setting up MSP of type bccsp from directory /artifacts/org-admin/msp: administrators must be declared when no admin ou classification is set
Теперь я подумал, что, возможно, с настройкой OU возникла проблема. Итак, я отключил настройку OU из файла config.yaml
. Но я снова получил то же сообщение об ошибке.
Итак, я снова изменил настройку CORE_PEER_MSPCONFIGPATH
на исходную, но теперь он сказал, что это не идентификатор администратора.
/artifacts # export CORE_PEER_MSPCONFIGPATH=/artifacts/msp
/artifacts # peer lifecycle chaincode install identity_cc_v1.2.0.tar.gz
Error: chaincode install failed with status: 500 - Failed to authorize invocation due to failed ACL check: Failed verifying that proposal's creator satisfies local MSP principal during channelless check policy with policy [Admins]: [This identity is not an admin]
I понять. Это удостоверение просто одноранговое удостоверение, а не удостоверение администратора. Итак, я попытался зарегистрировать администратора для этого однорангового узла, но это изображение fabric-peer
docker не содержит двоичного файла fabric-ca-client
. Итак, я подумал, что сделал что-то не так, и это не намеченный путь.
На этом этапе, как я могу установить и создать новую версию моего цепного кода?