Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

My Blog

从此烟雨落金城,一人撑伞两人行。

策略

策略是一组规则,用来定义如何做出决策和实现特定结果。

Fabric 策略表示成员如何同意或者拒绝网络、通道或者智能合约的变更。

策略是使 Hyperledger Fabric 不同于其他区块链系统的内容之一。

策略决定了那些组织可以访问或者更新 Fabric 网络,并且提供了强制执行这些决策的机制。

实现策略

策略实现在 Fabric 网络的不同层次。

policies.policies

系统通道配置

网络中必须有至少一个排序服务的排序系统通道,它是第一个被创建的通道。

该通道也包含着谁是排序服务(排序服务组织)以及在网络中交易(联盟组织)的成员。

策略治理着排序服务使用的共识,并定义了新区块如何被创建。

系统通道也治理着联盟中的哪些成员可以创建新通道。

应用通道配置

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

策略治理着从通道中添加和删除成员的能力。

治理着使用 Fabric 链码生命周期在链码定义和提交到通道前需要哪些组织同意。

权限从控制列表

ACL 通过将资源和已有策略相关联的方式提供了资源访问配置的能力。

Fabric ACL 的默认集合在 configtx.yaml 文件的 Application: &ApplicationDefaults 部分。

configtx.yaml 中定义的资源列表是 Fabric 当前定义的所有内部资源的完整集合。

智能合约背书策略

每一个智能合约都有一个背书策略,该策略指明了需要通道中多少不同组织的成员根据指定智能合约执行和验证交易才能使一笔交易有效。

背书策略定义了必须“背书”(批准)提案执行的组织(的 Peer 节点)。

修改策略

它是定义如何更新策略的策略。

策略作用域

policies.policies

系统通道配置为联盟成员提供了创建通道的能力。

应用通道和 ACL 是联盟组织用来从通道中添加或删除成员以及限制通道中智能合约和数据访问的机制。

写策略

在 Hyperledger Fabric 中,策略中明确的签名使用 Signature 语法,隐含的签名使用 ImplicitMeta 语法。

签名策略

Signature 策略定义了要满足策略就必须签名的特定用户类型,比如 Org1.Peer OR Org2.Peer

例如,一个策略可以简单表达为使用 AND (Org1, Org2) ,表示满足该策略就同时需要 Org1 中的一个成员和 Org2 中的一个成员的签名。

隐元策略

隐元策略只在通道配置上下文中有效,通道配置在配置树策略中是基于分层的层次结构。

应用通道分层的策略结构:policies.policies

当满足配置层级中它的 Admins 子策略时,就代表也满足了其子策略的子策略条件。

隐元通道配置管理策略(称为 /Channel/Admins)。

在配置树中所有 Admins 策略都引用了的 Admin 子策略。

隐元策略比如 MAJORITY Admins 的主要优势在于当你向通道添加新组织的时候,你不必更新通道策略。

链码的生命周期

configtx.yaml 文件中 Application 部分包含了默认的链码生命周期背书策略。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Application: &ApplicationDefaults

# Organizations is the list of orgs which are defined as participants on
# the application side of the network
Organizations:

# Policies defines the set of policies at this level of the config tree
# For Application policies, their canonical path is
# /Channel/Application/<PolicyName>
Policies:
Readers:
Type: ImplicitMeta
Rule: "ANY Readers"
Writers:
Type: ImplicitMeta
Rule: "ANY Writers"
Admins:
Type: ImplicitMeta
Rule: "MAJORITY Admins"
LifecycleEndorsement:
Type: ImplicitMeta
Rule: "MAJORITY Endorsement"
Endorsement:
Type: ImplicitMeta
Rule: "MAJORITY Endorsement"
  • LifecycleEndorsement 策略控制需要谁 批准链码定义
  • Endorsement 策略是 链码的默认背书策略

链码背书策略

链码被批准并提交到通道时会指定一个背书策略。

批准阶段没有明确指明背书策略,就默认使用 Endorsement 策略 "MAJORITY Endorsement"

要想使交易生效就需要大多数不同通道成员(组织)的执行并验证交易。

评论