知识卡片
策略用递归组合而非硬编码规则表达权限
内容
Fabric的权限策略(Policy)没有用固定的角色-权限表来管理,而是用两层可组合的结构表达:SignaturePolicy定义”谁签名”,支持单一角色或AND/OR/NOutOf(m个条件满足n个即可)的组合表达式;ImplicitMetaPolicy则定义”下一层的子策略要满足到什么程度”(ANY/ALL/MAJORITY),并以递归方式层层引用。交易背书策略、链码实例化策略、通道读写管理策略都基于这套组合语法定义。这样设计的好处是同一套原语可以表达从”任意一个组织签名即可”到”所有联盟成员过半数同意”等任意复杂的多方治理规则,而无须为每种场景写专门代码。
参考来源
《Hyperledger Fabric技术内幕:架构设计与实现原理》第1章《区块链基础与Hyperledger Fabric架构》