关于channel里面的策略

来源:互联网 发布:java 进度条实现 编辑:程序博客网 时间:2024/06/06 10:52
关于channel里面的策略

channel里面的配置主要在data.data[0].pyload.data.config里面。
config是由groups递归形成的。
groups的结构如下
・groups   下一层
・mod_policy 当前层发生改变时,需要执行的策略名称
・policies    当前层策略内容的定义
・value       当前层相关的内容
・version     当前层的版本

这里我主要想说的是策略

1,策略被定义成下面的结构,[Admins,Readers,Writers]定义了在不同场合下策略的内容。
policies:{
 Admins:{...}
 Readers:{...}
 Writers:{...}
}

2,策略的定义格式
策略有两种定义方式,一般高阶层用隐示定义,低阶层用显示定义
第一种Signature Policy ,是一种显示定义
identities:是个数组,代表执行这个策略时需要的用户身份,即Org1MSP的admin用户,也可以定义成Org1MSP的user用户
rule:需要一个用户确认,这个用户是identities[0]
"Admins": {
    "mod_policy": "Admins",
    "policy": {
      "type": 1,
      "value": {
        "identities": [
          {
            "principal": {
              "msp_identifier": "Org1MSP",
              "role": "ADMIN"
            }
          }
        ],
        "rule": {
          "n_out_of": {
            "n": 1,
            "rules": [
              {
                "signed_by": 0
              }
            ]
          }
        }
      }
    }
}


第二种是隐示定义
rule:可以被定义成3种[ANY,ALL,MAJORITY]
sub_policy:被configtxgen在初期启动时定义。
"Admins": {
    "policy": {
      "type": 3,
      "value": {
        "rule": "MAJORITY",
        "sub_policy": "Admins"
      }
    }
}


参照
http://hyperledger-fabric.readthedocs.io/en/latest/policies.html
原创粉丝点击