Hyperledger Fabric 二三事 - 策略的理论概念

什么是策略

在 Hyperledger Fabric 中,策略是基础设施的管理机制。Fabric 策略表示成员如何同意或者拒绝网络、通道或者智能合约的变更。策略在网络最初配置的时候由联盟成员一致同意,但是在网络演化的过程中可以进行修改。例如,他们定义了从通道中添加或者删除成员的标准,改变区块格式或者指定需要给智能合约背书的组织数量。所有这些定义谁可以干什么的行为都在策略中描述。简单来说,你在 Fabric 网络中的所有想做的事情,都要受到策略的控制。

策略决定了那些组织可以访问或者更新 Fabric 网络,并且提供了强制执行这些决策的机制。策略包含了有权访问给定资源的组织列表,比如一个用户或者系统链码。他们同样指定了需要多少组织同意更新资源的提案,比如通道或者智能合约。一旦策略被写入,他们就会评估交易和提案中的签名,并验证签名是否满足网络治理规则。

Fabric是如何实现策略的

系统通道配置
排序系统通道配置区块中的策略治理着排序服务使用的共识,并定义了新区块如何被创建。系统通道也治理着联盟中的哪些成员可以创建新通道。

应用通道配置
应用通道用于向联盟中的组织间提供私有通信机制。

应用通道中的策略治理着从通道中添加和删除成员的能力。应用通道也治理着使用 Fabric 链码生命周期在链码定义和提交到通道前需要哪些组织同意。当系统通道初始创建时,它默认继承了排序系统通道的所有排序服务参数。同时,这些参数(包括治理它们的策略)可以被每个通道自定义。

权限控制列表

智能合约背书策略
链码包中的每一个智能合约都有一个背书策略,该策略指明了需要通道中多少不同组织的成员根据指定智能合约执行和验证交易才能使一笔交易有效。因此,背书策略定义了必须“背书”(批准)提案执行的组织(的 Peer 节点)。

修改策略
还有一个对 Fabric 的策略工作有重要作用的策略类型,修改(Modification)策略。修改策略指明了需要签名所有配置 更新 的一组身份。它是定义如何更新策略的策略。因此,每个通道配置元素都包含这一个治理它的变更的策略的引用。

策略作用域
虽然 Fabric 的策略很灵活地配置以适应网络需要,但是策略的结构天然地隔离了由不同排序服务组织或者不同联盟成员治理的域。下边的图中,你可以看到默认策略是如何实现对 Fabric 策略域的控制的。
image

posted @ 2021-04-13 11:09  压伤的芦苇  阅读(150)  评论(0编辑  收藏  举报