Изменение значения по умолчанию mod_policy в Hyperledger Fabric - PullRequest
0 голосов
/ 06 апреля 2020

Я видел, что по умолчанию mod_policy установлен на Администраторы политика на этом уровне конфигурации, однако, если я хочу установить его на MyPolicy (который может быть любым пользовательским допустимым политика) тогда как это сделать?

Могу ли я добиться этого в самом configtx.yaml?

Ответы [ 2 ]

0 голосов
/ 12 апреля 2020

Я мог бы успешно добиться этого, выполнив следующие шаги:

  1. Запустил fabric-samples/first-network.
  2. Выполните docker exec в контейнере cli.
  3. Установите среду, соответствующую peer0.org1.example.com и администратору этой организации: Admin@org1.example.com. Получить последний блок конфигурации канала приложения (здесь mychannel).
  4. Измените декодированный блок JSON, изменив значение mod_policy в разделе policies для Org1MSP в Application группа. Измените его с Admins на Readers.
  5. Отправьте транзакцию обновления канала, кодировав и подписав дельта-блок в конверт protobuf. * ​​1024 *

Теперь наша задача - проверить этот новый mod_policy работает нормально или нет. Для этого выполните следующие действия:

  1. Установите для среды cli значение peer0.org1.example.com и пользователя этой организации: User1@org1.example.com. Получить последний блок конфигурации канала приложения (здесь mychannel).
  2. Измените декодированный блок JSON, изменив политику Readers в Org1MSP с "OR('Org1MSP.admin', 'Org1MSP.peer', 'Org1MSP.client')" на "OR('Org1MSP.admin', 'Org1MSP.peer')", сохранив JSON Синтаксис соответствующих политик.
  3. Отправка транзакции обновления канала. Успешное обновление означает, что политика Readers (новая mod_policy для этого раздела) была выполнена, когда мы отправили обновление канала от имени User1@org1.example.com (пользователь client). Обратите внимание, что при обновлении конфигурации канала в данный момент политика Readers будет оцениваться как "OR('Org1MSP.admin', 'Org1MSP.peer', 'Org1MSP.client')", поскольку обновление не было обработано.
  4. Теперь, используя ту же среду cli, попробуйте получить последний блок конфигурации канала приложения. Появляется следующая ошибка:

    2020-04-09 22:25:48.990 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized 2020-04-09 22:25:49.001 UTC [cli.common] readBlock -> INFO 002 Got status: &{FORBIDDEN}

Это происходит потому, что теперь прочитано блок конфигурации, User1@org1.example.com с клиентским OU выиграно ' не сможет соответствовать новой политике Readers, т.е. "OR('Org1MSP.admin', 'Org1MSP.peer')".

0 голосов
/ 06 апреля 2020

Да, это можно сделать. Вы можете проверить статью , в которой показано, как создать новую настраиваемую политику и как обновить ACL только с configtx.yaml.

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