我在hyperledger composer playground中发出ID时遇到错误
:参与者'org.acme.pdrug.Doctor#d2'没有'资源'访问资源'org.hyperledger.composer.system.Network#emptydrug@0.0.1' < / p>
请提供解决方案
以下是我使用的ACL
规则NetworkAdminUser { 描述:“授予业务网络管理员对用户资源的完全访问权限” 参与者:“org.hyperledger.composer.system.NetworkAdmin” 操作:全部 资源:“**” 行动:允许 }
规则NetworkAdminSystem { 描述:“授予业务网络管理员对系统资源的完全访问权限” 参与者:“org.hyperledger.composer.system.NetworkAdmin” 操作:全部 资源:“org.hyperledger.composer.system。**” 行动:允许 }
rule participantRule { 说明:“可以执行Transation PublishPrescription的CREATE&amp; UPDATE操作” 参与者:“org.acme.pdrug.Doctor” 操作:CREATE,UPDATE 资源:“org.acme.pdrug.PublishPrescription” 行动:允许 }
rule participantRule2 { 说明:“如果参与者是资产的所有者,则可以执行更新操作” 参与者(m):“org.acme.pdrug.Doctor” 操作:READ,UPDATE 资源(v):“org.acme.pdrug.pdaccount” condition:(v.owner.getIdentifier()== m.getIdentifier()) 行动:允许 }
规则保险公司{ 描述:“允许所有人访问保险公司” 参与者:“org.acme.pdrug.Insurer” 操作:全部 资源:“org.acme.pdrug。*” 行动:允许 }
答案 0 :(得分:0)
遇到同样的问题,我尝试在部署
后ping网络composer network ping -n tignetwork -p hlfv1 -i PeerAdmin -s adminpw
Error: Error trying to query business network. Error: chaincode error
(status: 500, message: Error: Participant 'org.hyperledger.composer.system.NetworkAdmin#PeerAdmin'
does not have 'READ' access to resource 'org.hyperledger.composer.system.Network#tignetwork@0.1.2')
Command failed
和ACL
rule SystemACL {
description: "System ACL to permit all access"
participant: "org.hyperledger.composer.system.Participant"
operation: ALL
resource: "org.hyperledger.composer.system.**"
action: ALLOW
}
一些解决方案?
答案 1 :(得分:0)
您需要为参与者添加网络和系统ACL规则才能进行网络操作。
rule NetworkControlPermission {
description: "NetworkControl can access network commands"
participant: "org.acme.pdrug.Doctor"
operation: ALL
resource: "org.hyperledger.composer.system.Network"
action: ALLOW
}