Hyperledger fabric 从通道配置中删除组织导致错误
Hyperledger fabric remove organisation from channel configuration results in error
以下是我的用例:
我有两个组织 Org1、Org2,当我从通道配置中替换 Org2 时,一切正常,组织从通道中删除,但是当我删除配置中索引 0 处的 Org1 时 json 并将其更新到通道会导致下面列出的错误。似乎我能够以 LIFO(后进先出)方式删除组织,但我想实现无论添加顺序如何都可以删除组织的功能。
error applying config update to existing channel 'mychannel': initializing policymanager failed: policy Admins at path Channel/Application did not compile: identity index out of range, requested 1, but identities length is 1
您似乎没有正确更新任何涉及被删除组织的政策。
删除组织时,必须删除 Application.groups
下的整个条目,例如 Application.groups.Org1MSP
。
您还必须从 Application.policies
下的任何策略中删除该组织,例如 Application.policies.Admins
。
根据保单类型,您可能有一个或多个如下所示的保单 (AND('Org1MSP.admin', 'Org2MSP.admin')
):
"Admins": {
"mod_policy": "Admins",
"policy": {
"type": 1,
"value": {
"identities": [
{
"principal": {
"msp_identifier": "Org1MSP",
"role": "ADMIN"
},
"principal_classification": "ROLE"
},
{
"principal": {
"msp_identifier": "Org2MSP",
"role": "ADMIN"
},
"principal_classification": "ROLE"
}
],
"rule": {
"n_out_of": {
"n": 1,
"rules": [
{
"signed_by": 0
},
{
"signed_by": 1
}
]
}
},
"version": 0
}
},
"version": "0"
}
从 policy.value.identities
数组中删除组织是不够的。 policy.value.rule.n_out_of.rules
数组中的 signed_by
值引用 policy.value.identities
数组中的条目(按其数组索引)。
您遇到的错误表明您在某处有一个 signed_by
值为 1
的策略,但该策略对应的 policy.value.identities
数组的长度仅为 1。
以下是我的用例:
我有两个组织 Org1、Org2,当我从通道配置中替换 Org2 时,一切正常,组织从通道中删除,但是当我删除配置中索引 0 处的 Org1 时 json 并将其更新到通道会导致下面列出的错误。似乎我能够以 LIFO(后进先出)方式删除组织,但我想实现无论添加顺序如何都可以删除组织的功能。
error applying config update to existing channel 'mychannel': initializing policymanager failed: policy Admins at path Channel/Application did not compile: identity index out of range, requested 1, but identities length is 1
您似乎没有正确更新任何涉及被删除组织的政策。
删除组织时,必须删除 Application.groups
下的整个条目,例如 Application.groups.Org1MSP
。
您还必须从 Application.policies
下的任何策略中删除该组织,例如 Application.policies.Admins
。
根据保单类型,您可能有一个或多个如下所示的保单 (AND('Org1MSP.admin', 'Org2MSP.admin')
):
"Admins": {
"mod_policy": "Admins",
"policy": {
"type": 1,
"value": {
"identities": [
{
"principal": {
"msp_identifier": "Org1MSP",
"role": "ADMIN"
},
"principal_classification": "ROLE"
},
{
"principal": {
"msp_identifier": "Org2MSP",
"role": "ADMIN"
},
"principal_classification": "ROLE"
}
],
"rule": {
"n_out_of": {
"n": 1,
"rules": [
{
"signed_by": 0
},
{
"signed_by": 1
}
]
}
},
"version": 0
}
},
"version": "0"
}
从 policy.value.identities
数组中删除组织是不够的。 policy.value.rule.n_out_of.rules
数组中的 signed_by
值引用 policy.value.identities
数组中的条目(按其数组索引)。
您遇到的错误表明您在某处有一个 signed_by
值为 1
的策略,但该策略对应的 policy.value.identities
数组的长度仅为 1。