在访问控制Hyperledger面料的官方文档:https://hyperledger-fabric.readthedocs.io/en/latest/access_control.html
ImplicitMeta政策汇总政策的结果
ImplicitMeta法则究竟是如何解释`设置理论”,当与其他规则相结合?
例:
Policies:
AndPolicy:
Type:Signature
Rule: "AND('Org1.Peer','Org2.Peer','Org3.Peer')"
OrPolicy:
Type:Signature
Rule: "OR('Org1.Peer','Org2.Peer','Org3.Peer')"
MetaPolicy:
Type:ImplicitMeta
Rule: "ALL OrPolicy"
如果我们设置MetaPolicy为“任何社会实践Practical Work”的规则,是相当于OrPolicy?
如果我们把“ALL OrPolicy”,是等同于实践Practical Work?
ImplicitMeta
规则<ALL|ANY|MAJORITY> <sub_policy>
的语法表明sub_policy是一组元素,而像Signature
的A and B and C
规则语法可以表达的条件表达式,而不是一组。因此,这两种规则的组合的确切含义,似乎我不清楚。
我觉得我已经找到了答案,尽管是不完整的。任何更正,补充的欢迎。
如果我们设置MetaPolicy为“任何社会实践Practical Work”的规则,是相当于OrPolicy?如果我们把“ALL OrPolicy”,是等同于实践Practical Work?
最简洁的答案是不。
Policies in Hyperledger Fabric页,这是不是从一些未知的原因任何位置链接,为我们提供了一些建议。
更详尽的解释:
# The lines below are just based on my conceptual understanding,
# therefore they may have errors in details.
Channel:
Groups:
Application:
Policies:
M: #-----------(1)
Type: ImplicitMeta
Rule: "ALL P"
Groups:
GroupA:
Policies:
P: #-----------(2)
Type: Signature
Rule: "OR('SampleOrg.admin')"
GroupB:
Policies:
P: #-----------(3)
Type: Signature
Rule: "AND('SampleOrg.member')"
另外,在上述的结构中,
/Channel/Application/M
。/Channel/Application/GroupA/P
。/Channel/Application/GroupB/P
。ALL P
,这应该被理解为M的所有子策略必须满足..
但什么是子策略?这是这个答案的关键在于:根据policies.html
的ImplicitMeta
政策隐式地选择其所在组的子组。在这种情况下,M
驻留在/Channel/Application
,因此两个(2)和(3),这是该路径下,是子策略。
一个ImplicitMeta
规则规定,所有/任何/大部分的规则必须得到满足。在上述情况下,M
将满足仅当至少一个管理员和全体成员签署。