Обновление с Hyperledger Composer v0.16 до v0.20.2

Я обновляю свой учебник с composer v0.16 до composer v0.20.2 Большая часть обновления прошла гладко, однако у меня возникла проблема аутентификации, которую я не могу обойти. Я прохожу пошаговый процесс создания и активации пользователя. В v0.16 я сделал следующее:

  • ДОБАВИТЬ нового участника в реестр
  • ВЫДАЧА идентичности для нового участника
  • СОЗДАЙТЕ и ИМПОРТИРУЙТЕ карту для нового участника
  • ПИНГ бизнес-сети, используя новый идентификатор участника

Последний шаг «активировал» участника, чтобы он мог продуктивно работать в сети. В v0.20 первые 3 шага по-прежнему работают безупречно, однако шаг PING теперь возвращает следующую ошибку:

transaction returned with failure: AccessException: 
Participant 'org.acme.Z2BTestNetwork.Buyer#[email protected]' does not have 'READ' access to resource
'org.hyperledger.composer.system.Network#[email protected]'

Я упростил свой файл permissions.acl до следующих трех операторов:

rule Z2BTestFullAccess {
    description: "Allow all participants access to all resources"
    participant: "org.acme.Z2BTestNetwork.Buyer"
    operation: READ
    resource: "org.hyperledger.composer.system.**"
    action: ALLOW
}

rule NetworkAdminUser {
    description: "Grant business network administrators full access to user resources"
    participant: "org.hyperledger.composer.system.NetworkAdmin"
    operation: ALL
    resource: "**"
    action: ALLOW
}

rule NetworkAdminSystem {
    description: "Grant business network administrators full access to system resources"
    participant: "org.hyperledger.composer.system.NetworkAdmin"
    operation: ALL
    resource: "org.hyperledger.composer.system.**"
    action: ALLOW
}

Я могу еще больше упростить первое правило, чтобы оно было

rule Z2BTestFullAccess {
    description: "Allow all participants access to all resources"
    participant: "ANY"
    operation: ALL
    resource: "org.hyperledger.composer.system.**"
    action: ALLOW
}

Но он все равно не работает с тем же сообщением об ошибке.

Список карт композитора для новой карты возвращается:

userName:            rdd-xyz.com
description:         
businessNetworkName: zerotoblockchain-network
identityId:          6c6eab0d11d26ccfc4a8164dbe971814d2120802e84d1b3b98b16ceb2cb80334
roles:               none
connectionProfile: 
  name:   hlfv1
  x-type: hlfv1
credentials:         Credentials set

composer network ping для новой карты возвращает ту же ошибку, что и код nodejs.

Как определить основную причину этой ошибки и, что более важно, как ее решить? С удовольствием добавляю сегменты кода для каждого шага, если это поможет.

Я думаю, вам нужно создать правило, которое предоставляет доступ к вашей бизнес-сети в дополнение к системным пространствам имен. Итак, разрешающее правило с ресурсом: "org.acme.Z2BTestNetwork. *"

R Thatcher 22.10.2018 10:52

Было бы здорово, если бы все было так просто. К сожалению, добавление этого в дает тот же ответ. Неудивительно, поскольку сообщение об ошибке может идентифицировать запрашивающего пользователя & роль (org.acme.Z2BTestNetwork.Buyer # bd); проблема доступа связана с развертыванием бизнес-сети в структуру hl композитором (org.hyperledger.composer.system.Network # zerotoblockchain-ne‌ [email protected]). Спасибо, в любом случае. Стоило попробовать.

Bob Dill 23.10.2018 00:06

Не могли бы вы опубликовать свой полный файл ACL, который не работает? Если вы предоставите любому участнику полный доступ к org.hyperledger.composer.system. **, тогда это даст любому участнику доступ для чтения к бизнес-сети, и я быстро попробовал (скопировано прямо из этого примера acl, опубликованного выше), и это сработало . Поэтому мне интересно, есть ли в вашем файле предыдущее правило ACL, которое явно запрещает доступ?

david_k 23.10.2018 10:05

Для этого теста acl, показанный выше, является полным файлом permissions.acl.

Bob Dill 23.10.2018 23:08
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
41
0

Другие вопросы по теме