我正在尝试使用节点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),它可以工作。我想知道是什么会导致一个网络而不是另一个网络发生这种错误。创建通道以允许/禁止非管理员查询时传递了任何参数吗?
答案 0 :(得分:1)
频道的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')"
看来这是您的问题所在。确保读者是OrgMSP的.member
而不是.admin
。