在hyperledger composer palyground中发出ID时出错

时间:2017-10-21 17:41:35

标签: acl hyperledger-composer

我在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。*”     行动:允许 }

2 个答案:

答案 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
}