Не удалось обновить цепной код в v2.1 Hyperledger Fabri c Network - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь обновить свою сеть 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. Итак, я подумал, что сделал что-то не так, и это не намеченный путь.

На этом этапе, как я могу установить и создать новую версию моего цепного кода?

1 Ответ

0 голосов
/ 27 мая 2020

После того, как я установил конфигурацию OU на admin msp, которая копируется на одноранговый узел, все проблемы были решены, и установка / фиксация цепного кода работает хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...