Я обновил композитор [cli, игровую площадку, сервер отдыха и т. д.] С v.0.16.5 до v 0.19.0. После развертывания сети, когда я пытаюсь проверить связь с сетью, она сначала выдает ошибку, а затем подключается к ней со второй попытки. Почему это происходит? Как я могу активировать текущего администратора идентификации как ошибочного?
composer network ping -c admin@university
Ошибка: ошибка при попытке пинговать. Ошибка: 2 НЕИЗВЕСТНО: ошибка при выполнении цепного кода: транзакция возвращена с ошибкой: Ошибка: текущий идентификатор с именем «admin» и идентификатором «01899e04161a3a6d64670504fa122e55818295352929b6a616333a3739fde3f2» должен быть активирован (ACTIVATION_REQUIRED) Команда не удалась
composer network ping -c admin@university
Подключение к сети успешно протестировано: университет Версия бизнес-сети: 0.0.1 Версия среды выполнения Composer: 0.19.0 участник: org.hyperledger.composer.system.NetworkAdmin # admin identity: org.hyperledger.composer.system.Identity # 76edd946537645ea0016455a076e32dd10daac1e39fb75200d737b78dbca675d
Команда выполнена
Когда удостоверение используется впервые, оно имеет идентификатор регистрации и секрет, а также статус «ВЫПУЩЕНО». После первого использования секрет становится недействительным, сертификаты передаются в кошелек клиента, а идентификатор имеет статус «АКТИВИРОВАН».
Вы можете увидеть эти различные состояния в этом примере вывода команды composer identity list
:
$class: org.hyperledger.composer.system.Identity
identityId: 3a1f3c629ef2106b138836f3c9e5fe1ac8358c60a4a1232c5ef1a16a805ab313
name: mary
issuer: ac3dbcbe135ba48b29f97665bb103f8260c38d3872473e584314392797c595f3
certificate:
state: ISSUED
participant: resource:org.acme.mynetwork.Trader#mary
-
$class: org.hyperledger.composer.system.Identity
identityId: 57d1f173c6a9a7f789d243749de16340fee8bf383748d47ac360f846e5c238b9
name: mark
issuer: ac3dbcbe135ba48b29f97665bb103f8260c38d3872473e584314392797c595f3
certificate:
"""
-----BEGIN CERTIFICATE-----
MIICbTCCAhOgAwIBAgIUWHvLyD+Vs6YE1KTpCm1LlQej728wCgYIKoZIzj0EAwIw
czELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNh
biBGcmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMT
E2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwNDAzMTExNjAwWhcNMTkwNDAzMTEy
MTAwWjAtMRwwDQYDVQQLEwZjbGllbnQwCwYDVQQLEwRvcmcxMQ0wCwYDVQQDEwRt
YXJrMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAER3WsqouV+M07SG8gMExLFCZs
8aUSsH8hMRUhKjibzV8fE/JJMOitoLSRpa/KU24p9IiDqBPZY/QdszTE5wzbuqOB
yjCBxzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU7EL5
azn+RHinsX6EvEFZeQ5/II4wKwYDVR0jBCQwIoAgGatlq7sEgH2tEuTAqaqmZJ5w
ho46vQIXoyLYnkfhpq4wWwYIKgMEBQYHCAEET3siYXR0cnMiOnsiaGYuQWZmaWxp
YXRpb24iOiJvcmcxIiwiaGYuRW5yb2xsbWVudElEIjoibWFyayIsImhmLlR5cGUi
OiJjbGllbnQifX0wCgYIKoZIzj0EAwIDSAAwRQIhAJSXtjEMu/8xkd0uLzJOP91h
JdHa57ihiPkxOjRGqthTAiAMFrhY0gu/yUxN9cuLdmt/tNaile8W2/Kt+yZBW+ng
gg==
-----END CERTIFICATE-----
"""
state: ACTIVATED
participant: resource:org.acme.mynetwork.Trader#t01
Команда composer identity list
дает вид со стороны сервера, но вид со стороны клиента можно увидеть с помощью composer card list
:
composer card list -c mary
userName: mary
description:
businessNetworkName: tutorial-network
identityId:
roles: none
connectionProfile:
name: hlfv1
x-type: hlfv1
credentials: One time use only secret set
composer card list -c mark@tutorial-network
userName: mark
description:
businessNetworkName: tutorial-network
identityId: 57d1f173c6a9a7f789d243749de16340fee8bf383748d47ac360f846e5c238b9
roles: none
connectionProfile:
name: hlfv1
x-type: hlfv1
credentials: Credentials set
Таким образом, ваш переход от «Требуется активация» к активированному в порядке, но что необычно, так это «сбой команды» - нормально то, что переход от ВЫПУЩЕННОЙ к АКТИВИРОВАННОЙ скрыт от пользователя, и первый эхо-запрос работает!
Повторяется ли это для вас - происходит ли это для каждой новой сети или для каждого нового пользователя в сети? Если это повторяется, вы можете включить отладку на стороне клиента и посмотреть журналы контейнеров (CA и Peer) во время ошибки.
Хорошо. Спасибо за ответ. Что делать, чтобы первый пинг заработал?