Fabric SDK 定义endorsement policy

2021-05-02  本文已影响0人  CodingCode
  1. 语法
  "endorsementPolicy":{
      "identities": [
          {"role":{"name":"member","mspId":"${MSPID}"}},
          {"role":{"name":"admin","mspId":"${MSPID}"}}
      ],
      "policy":     {"1-of":[{"signed-by":0}]}
  }

有两个类别:

  1. identity标识所有的实体,目前是以role来区分的。
  2. policy定义具体的policy,policy里面目前支持两个关键词
  1. 举个例子

假设instance包含三个peer: peer0,peer1,和peer2
其中: peer0和peer1是member role,peer2是adminrole,那么下面的policy:

另外policy {"1-of":[{"signed-by":0}, {"signed-by":1}]},其含义是任意member或者admin签名,达到的是一样的效果。

对应的签名组合与结果:
<0>:failure // peer0签名,但peer0是member
<1>:failure // peer1签名,但peer1是member
<2>:success // peer2签名

但是前面我们提到过,这个写法是不对的,永远不会满足,因为2-of对应的数组值必须包含至少两个元素;看下面:

对应的签名组合与结果:
<0, 1>:success // peer0和peer1签名
<0, 2>:success // peer0和peer2签名
<1, 2>:success // peer1和peer2签名

对应的签名组合与结果:
<0, 1>:failure // peer0和peer1签名,但peer0和peer1都是member
<0, 2>:success // peer0和peer2签名
<1, 2>:success // peer1和peer2签名

对应的签名组合与结果:
<0>:failure // peer0签名,但peer0是member
<1>:failure // peer1签名,但peer1是member
<2>:success // peer2签名,但peer2是admin
<0, 1>:success //两个member签名
<0, 2>:success //一个member和一个admin签名
<1, 2>:success //一个member和一个admin签名

上一篇下一篇

猜你喜欢

热点阅读