我正在尝试使用节点sdk(https://fabric-sdk-node.github.io/release-1.4/Channel.html - channel.queryInfo())查询频道信息。
我有两个网络设置(网络设置没有由我完成。所以,我不知道有什么区别)。在一个网络中,我能够成功查询。在另一个中,我收到此错误:错误:[GetChainInfo] []访问被拒绝:[在检查策略期间评估签名数据的策略失败[/ Channel / Application / Readers]:[无法达到隐含阈值1子政策,要求1剩余]]
但是,当我用useAdmin = true调用时,即channel.queryInfo(undefined,true)它可以工作。我想知道什么可能导致一个网络中的这种错误,而不是在另一个网络中。创建通道时是否有任何参数允许/禁止非管理员查询?
通道的ACL的默认字段为
#ACL policy for qscc's "GetChainInfo" function
qscc/GetChainInfo: /Channel/Application/Readers
每个组织的Reader都在configtx.yaml中定义
Policies: &org1Policies
Readers:
Type: Signature
Rule: "OR('org1.example.com.member')"
看起来这就是你的问题所在。确保读者是.member
而不是OrgMSP的.admin
。