Можно ли ограничить команду «peer chaincode upgrade» конкретной организацией? Мне бы хотелось, чтобы одна организация работала в качестве «специалиста по техническому обслуживанию» для всей сети.
Я настраиваю сеть Hyperledger Fabric 1.4.3 с тремя организациями: Org1, Org2, Org3. Сеть использует один канал и несколько коллекций личных данных для обмена конфиденциальными данными между организациями. Я хотел бы добавить четвертую организацию к работающей сети. Я знаю, как создать необходимый криптографический материал, вызвать дополнительные контейнеры Docker, присоединиться к каналу и установить цепной код. Однако, добавляя четвертую организацию, требуются дополнительные коллекции личных данных, которые должны быть указаны в команде 'peer channel upgrade' с помощью параметра --collections-config. На данный момент все работает отлично. Я использую CLI Peer0 из Org1 для выдачи всех команд 'peer chaincode ...'. Однако я хотел бы ограничить доступ к этой функции для какой-либо другой организации, например: только администратор из Org3 может выполнить «обновление однорангового кодового кода». Я попытался изменить раздел «Каналы / Политики / Администраторы» файла configtx.yaml на:
Type: Signature
Rule: "OR('Org3MSP.admin')"
, но я все еще могу выполнить обновление «peer chaincode» из CLI Peer0.Org1.
Приложениераздел моего configtx.yaml:
Application: &ApplicationDefaults
Organizations:
Policies:
Readers:
Type: ImplicitMeta
Rule: "ANY Readers"
Writers:
Type: ImplicitMeta
Rule: "ANY Writers"
Admins:
Type: ImplicitMeta
Rule: "MAJORITY Admins"
Org1MemberPolicy:
Type: Signature
Rule: "OR('Org1MSP.member')"
Org2MemberPolicy:
Type: Signature
Rule: "OR('Org2MSP.member')"
Org3MemberPolicy:
Type: Signature
Rule: "OR('Org3MSP.member')"
Capabilities:
<<: *ApplicationCapabilities
раздел канала моего configtx.yaml:
Channel: &ChannelDefaults
Policies:
Readers:
Type: ImplicitMeta
Rule: "ANY Readers"
Writers:
Type: ImplicitMeta
Rule: "ANY Writers"
Admins:
Type: ImplicitMeta
Rule: "ANY Admins"
Capabilities:
<<: *ChannelCapabilities
раздел Profiles моего configtx.yaml:
Profiles:
ThreeOrgsOrdererGenesis:
<<: *ChannelDefaults
Orderer:
<<: *OrdererDefaults
Organizations:
- *OrdererOrg
Capabilities:
<<: *OrdererCapabilities
Consortiums:
SampleConsortium:
Organizations:
- *Org1
- *Org2
- *Org3
Orgs123Channel:
<<: *ChannelDefaults
Consortium: SampleConsortium
Application:
<<: *ApplicationDefaults
Organizations:
- *Org1
- *Org2
- *Org3
Capabilities:
<<: *ApplicationCapabilities
Я предполагаю, что это настраивается где-то в configtx.yaml, но я не могу понять, где именно.