关于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
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