Я мог бы успешно добиться этого, выполнив следующие шаги:
- Запустил
fabric-samples/first-network
. - Выполните
docker exec
в контейнере cli
. - Установите среду, соответствующую
peer0.org1.example.com
и администратору этой организации: Admin@org1.example.com
. Получить последний блок конфигурации канала приложения (здесь mychannel
). - Измените декодированный блок JSON, изменив значение
mod_policy
в разделе policies
для Org1MSP
в Application
группа. Измените его с Admins
на Readers
. - Отправьте транзакцию обновления канала, кодировав и подписав дельта-блок в конверт protobuf. * 1024 *
Теперь наша задача - проверить этот новый mod_policy
работает нормально или нет. Для этого выполните следующие действия:
- Установите для среды
cli
значение peer0.org1.example.com
и пользователя этой организации: User1@org1.example.com
. Получить последний блок конфигурации канала приложения (здесь mychannel
). - Измените декодированный блок JSON, изменив политику
Readers
в Org1MSP
с "OR('Org1MSP.admin', 'Org1MSP.peer', 'Org1MSP.client')"
на "OR('Org1MSP.admin', 'Org1MSP.peer')"
, сохранив JSON Синтаксис соответствующих политик. - Отправка транзакции обновления канала. Успешное обновление означает, что политика
Readers
(новая mod_policy
для этого раздела) была выполнена, когда мы отправили обновление канала от имени User1@org1.example.com
(пользователь client
). Обратите внимание, что при обновлении конфигурации канала в данный момент политика Readers
будет оцениваться как "OR('Org1MSP.admin', 'Org1MSP.peer', 'Org1MSP.client')"
, поскольку обновление не было обработано. Теперь, используя ту же среду 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')"
.