Fabric背书策略

背书策略流程

Fabric背书策略_第1张图片

Hyperledger Fabric 区块链网络交易的执行分为以下几个步骤。Endorser 与 Committer 都是 Hyperledger Fabric 区块链网络中 Peer 节点的具体角色。与背书策略强相关的是第3步。

  1. Client 构造交易并发往 Endorser 节点,Endorser 节点执行交易并调用系统链码 ESCC 对交易签名(背书),结果返回 Client
  2. Client 将交易响应发送给 Orderer 节点进行排序出块,Orderer 节点将交易打包到区块中,广播给网络上的 Committer 节点
  3. Committer 节点收到区块后,对区块内交易逐一验证,其中一个重要的步骤是调用系统链码 VSCC 校验交易是否符合指定的 Endorsement 策略,最后将区块追加到区块链上。

Hyperledger Fabric 区块链网络的交易执行到第3步时, Orderer 节点已经出块,交易包含在区块中。若此处仅仅是区块内部的交易验证失败,不会影响区块上链,只是对于该交易会标记一个交易失败的验证码(ValidationCode: “0” 表示交易成功,"非0"表示交易无效),对于背书策略不符的情况,验证码为 ENDORSEMENT_POLICY_FAILURE(10)。

更新背书策略

对于 Chaincode 实例化后才加入的组织,其节点可以进行 Chaincode 查询操作,但是不能对背书交易进行提交,此时需要修改 Chaincode 的背书策略以增加该组织相关节点的权限。我们可以通过 Upgrade Chaincode 来达到为其指定新的背书策略的目标。

策略内容

策略就是去验证签名者的身份,根据MSP的role来验证。一共有4种role

  • member
  • admin
  • client
  • peer

Org0.admin: any administrator of the Org0 MSP
Org1.member:any member of the Org1 MSP
Org1.client:any client of the Org1 MSP
Org1.peer:any peer of the Org1 MSP

默认策略

Chaincode需要在部署时指定 Endorsement Policy ,否则默认的背书策略为通道中组织的任意成员( “any member of the organizations in the channel”)。例如,通道中有两个组织 Org1, Org2 ,则默认策略为 OR(‘Org1.member’, ‘Org2.member’)。

你可能感兴趣的:(fabric,区块链)