hyperledger-fabric - Hyperledger Fabric 从通道配置中删除组织导致错误
问题描述
下面是我的用例:
我有两个组织 Org1,Org2,当我从频道配置中替换 Org2 时,一切正常,组织会从频道中删除,但是当我删除配置 json 中索引 0 处的 Org1 并将其更新到频道结果时在下面列出的错误中。似乎我能够以 LIFO(LAST IN FIRST OUT)的方式删除组织,但我想实现无论添加顺序如何都可以删除组织的功能。
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
从阵列中删除组织是不够的。数组中的数组引用条目中的signed_by
值policy.value.rule.n_out_of.rules
(通过它们的数组索引)在policy.value.identities
数组中。
您遇到的错误表明您在某处有一个signed_by
值为 的策略1
,但该策略的相应policy.value.identities
数组的长度仅为 1。
推荐阅读
- reactjs - 为什么汉堡菜单在某些情况下没有响应
- python - 如何设置转换轴的刻度
- python - 基于动态 where 子句的 SQLAlchemy 删除
- python - 您如何让机器人添加使服务器中的所有频道都只读为静音角色?
- sql - 仅从列数据 SQL 中获取数字部分
- github - 你可以暂停、禁用 Github Action 吗?
- javascript - 谷歌地图没有在工作站上显示的网页中显示地图
- javascript - 如何在vscode中格式化文件而不格式化对象
- c# - 我怎样才能快速排序大对象数组,最好的方法?(100Mb 大小)
- c# - 如何使用带有集合视图的简单列表