[英]Hyperledger Fabric v1.0 configtxlator add new org error
I try to use configtxlator to add new organization Org3 but fail. 我尝试使用configtxlator添加新组织Org3,但失败。 Below is the error from server console log: 以下是服务器控制台日志中的错误:
orderer.example.com | 2017-09-06 10:16:04.960 UTC [orderer/main] Deliver -> DEBU 8b8 Starting new Deliver handler
orderer.example.com | 2017-09-06 10:16:04.960 UTC [orderer/common/deliver] Handle -> DEBU 8b9 Starting new deliver loop
orderer.example.com | 2017-09-06 10:16:04.960 UTC [orderer/common/deliver] Handle -> DEBU 8ba Attempting to read seek info message
orderer.example.com | 2017-09-06 10:16:04.964 UTC [orderer/main] Broadcast -> DEBU 8bb Starting new Broadcast handler
orderer.example.com | 2017-09-06 10:16:04.964 UTC [orderer/common/broadcast] Handle -> DEBU 8bc Starting new broadcast loop
orderer.example.com | 2017-09-06 10:16:04.964 UTC [orderer/common/broadcast] Handle -> DEBU 8bd Preprocessing CONFIG_UPDATE
orderer.example.com | 2017-09-06 10:16:04.964 UTC [orderer/configupdate] Process -> DEBU 8be Processing channel reconfiguration request for channel mychannel
orderer.example.com | 2017-09-06 10:16:04.965 UTC [common/configtx] addToMap -> DEBU 8bf Adding to config map: [Groups] /Channel
orderer.example.com | 2017-09-06 10:16:04.965 UTC [common/configtx] addToMap -> DEBU 8c0 Adding to config map: [Groups] /Channel/Orderer
orderer.example.com | 2017-09-06 10:16:04.965 UTC [common/configtx] addToMap -> DEBU 8c1 Adding to config map: [Groups] /Channel/Application
orderer.example.com | 2017-09-06 10:16:04.965 UTC [common/configtx] addToMap -> DEBU 8c2 Adding to config map: [Values] /Channel/HashingAlgorithm
orderer.example.com | 2017-09-06 10:16:04.965 UTC [common/configtx] addToMap -> DEBU 8c3 Adding to config map: [Values] /Channel/OrdererAddresses
orderer.example.com | 2017-09-06 10:16:04.965 UTC [common/configtx] addToMap -> DEBU 8c4 Adding to config map: [Values] /Channel/BlockDataHashingStructure
orderer.example.com | 2017-09-06 10:16:04.965 UTC [common/configtx] addToMap -> DEBU 8c5 Adding to config map: [Values] /Channel/Consortium
orderer.example.com | 2017-09-06 10:16:04.965 UTC [common/configtx] addToMap -> DEBU 8c6 Adding to config map: [Policy] /Channel/Admins
orderer.example.com | 2017-09-06 10:16:04.965 UTC [common/configtx] addToMap -> DEBU 8c7 Adding to config map: [Policy] /Channel/Readers
orderer.example.com | 2017-09-06 10:16:04.965 UTC [common/configtx] addToMap -> DEBU 8c8 Adding to config map: [Policy] /Channel/Writers
orderer.example.com | 2017-09-06 10:16:04.965 UTC [common/configtx] addToMap -> DEBU 8c9 Adding to config map: [Groups] /Channel
orderer.example.com | 2017-09-06 10:16:04.965 UTC [common/configtx] addToMap -> DEBU 8ca Adding to config map: [Groups] /Channel/Consortiums
orderer.example.com | 2017-09-06 10:16:04.965 UTC [common/configtx] addToMap -> DEBU 8cb Adding to config map: [Groups] /Channel/Consortiums/SampleConsortium
orderer.example.com | 2017-09-06 10:16:04.966 UTC [common/configtx] addToMap -> DEBU 8cc Adding to config map: [Groups] /Channel/Consortiums/SampleConsortium/Org3MSP
orderer.example.com | 2017-09-06 10:16:04.966 UTC [common/configtx] addToMap -> DEBU 8cd Adding to config map: [Values] /Channel/Consortiums/SampleConsortium/Org3MSP/MSP
orderer.example.com | 2017-09-06 10:16:04.966 UTC [common/configtx] addToMap -> DEBU 8ce Adding to config map: [Groups] /Channel/Orderer
orderer.example.com | 2017-09-06 10:16:04.966 UTC [common/configtx] addToMap -> DEBU 8cf Adding to config map: [Groups] /Channel/Application
orderer.example.com | 2017-09-06 10:16:04.966 UTC [common/configtx] addToMap -> DEBU 8d0 Adding to config map: [Values] /Channel/Consortium
orderer.example.com | 2017-09-06 10:16:04.966 UTC [common/configtx] addToMap -> DEBU 8d1 Adding to config map: [Values] /Channel/HashingAlgorithm
orderer.example.com | 2017-09-06 10:16:04.966 UTC [common/configtx] addToMap -> DEBU 8d2 Adding to config map: [Values] /Channel/OrdererAddresses
orderer.example.com | 2017-09-06 10:16:04.966 UTC [common/configtx] addToMap -> DEBU 8d3 Adding to config map: [Values] /Channel/BlockDataHashingStructure
orderer.example.com | 2017-09-06 10:16:04.966 UTC [common/configtx] addToMap -> DEBU 8d4 Adding to config map: [Policy] /Channel/Admins
orderer.example.com | 2017-09-06 10:16:04.966 UTC [common/configtx] addToMap -> DEBU 8d5 Adding to config map: [Policy] /Channel/Readers
orderer.example.com | 2017-09-06 10:16:04.966 UTC [common/configtx] addToMap -> DEBU 8d6 Adding to config map: [Policy] /Channel/Writers
orderer.example.com | 2017-09-06 10:16:04.966 UTC [orderer/main] func1 -> CRIT 8d7 Broadcast client triggered panic: runtime error: slice bounds out of range
orderer.example.com | goroutine 70 [running]:
orderer.example.com | runtime/debug.Stack(0xc420b530b0, 0xb75a60, 0xc42000c0a0)
orderer.example.com | /opt/go/src/runtime/debug/stack.go:24 +0x79
orderer.example.com | main.(*server).Broadcast.func1()
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/orderer/server.go:77 +0x97
orderer.example.com | panic(0xb75a60, 0xc42000c0a0)
orderer.example.com | /opt/go/src/runtime/panic.go:458 +0x243
orderer.example.com | github.com/hyperledger/fabric/common/configtx.(*configManager).policyForItem(0xc420903c00, 0xc4208ff9b0, 0x0, 0x0, 0xc5135b, 0x7, 0xc4203506e0, 0x0, 0x1, 0x414c0e, ...)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/common/configtx/update.go:148 +0x28c
orderer.example.com | github.com/hyperledger/fabric/common/configtx.(*configManager).verifyDeltaSet(0xc420903c00, 0xc4208fec60, 0xc420024960, 0x1, 0x1, 0x0, 0xc42094b0e0)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/common/configtx/update.go:76 +0x20f
orderer.example.com | github.com/hyperledger/fabric/common/configtx.(*configManager).authorizeUpdate(0xc420903c00, 0xc42098d500, 0x0, 0x0, 0xc1c2a0)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/common/configtx/update.go:134 +0x4fc
orderer.example.com | github.com/hyperledger/fabric/common/configtx.(*configManager).proposeConfigUpdate(0xc420903c00, 0xc42098d230, 0x0, 0x0, 0x126ed10)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/common/configtx/manager.go:181 +0x11c
orderer.example.com | github.com/hyperledger/fabric/common/configtx.(*configManager).ProposeConfigUpdate(0xc420903c00, 0xc42098d230, 0xc42034ef80, 0x0, 0x0)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/common/configtx/manager.go:172 +0x35
orderer.example.com | github.com/hyperledger/fabric/orderer/multichain.(*chainSupport).ProposeConfigUpdate(0xc420225e50, 0xc42098d230, 0x124b480, 0xc420835908, 0x5a8870)
orderer.example.com | <autogenerated>:74 +0x59
orderer.example.com | github.com/hyperledger/fabric/orderer/configupdate.(*Processor).existingChannelConfig(0xc420016180, 0xc42098d230, 0xc420912790, 0x9, 0x7f4e64d25868, 0xc420225e50, 0xc420010aa0, 0x5, 0x2)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/orderer/configupdate/configupdate.go:121 +0x45
orderer.example.com | github.com/hyperledger/fabric/orderer/configupdate.(*Processor).Process(0xc420016180, 0xc42098d230, 0x0, 0x0, 0xc4209126d0)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/orderer/configupdate/configupdate.go:113 +0x1ac
orderer.example.com | main.(*broadcastSupport).Process(0xc420329f80, 0xc42098d230, 0x1b, 0x0, 0x0)
orderer.example.com | <autogenerated>:8 +0x54
orderer.example.com | github.com/hyperledger/fabric/orderer/common/broadcast.(*handlerImpl).Handle(0xc42078d2e0, 0x1231fc0, 0xc420912550, 0x0, 0x0)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/orderer/common/broadcast/broadcast.go:108 +0xa5d
orderer.example.com | main.(*server).Broadcast(0xc420329fa0, 0x1231fc0, 0xc420912550, 0x0, 0x0)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/orderer/server.go:81 +0xb9
orderer.example.com | github.com/hyperledger/fabric/protos/orderer._AtomicBroadcast_Broadcast_Handler(0xb7afc0, 0xc420329fa0, 0x1231360, 0xc42022a990, 0x0, 0x0)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/protos/orderer/ab.pb.go:543 +0xbb
orderer.example.com | github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).processStreamingRPC(0xc4201c7900, 0x1231c00, 0xc42031c160, 0xc42000ac00, 0xc420336690, 0x1215d40, 0xc42098d1d0, 0x0, 0x0)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:907 +0xb49
orderer.example.com | github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).handleStream(0xc4201c7900, 0x1231c00, 0xc42031c160, 0xc42000ac00, 0xc42098d1d0)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:1001 +0xe8c
orderer.example.com | github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc42035a250, 0xc4201c7900, 0x1231c00, 0xc42031c160, 0xc42000ac00)
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:561 +0xab
orderer.example.com | created by github.com/hyperledger/fabric/vendor/google.golang.org/grpc.(*Server).serveStreams.func1
orderer.example.com | /opt/gopath/src/github.com/hyperledger/fabric/vendor/google.golang.org/grpc/server.go:562 +0xa3
orderer.example.com | 2017-09-06 10:16:04.966 UTC [orderer/main] func1 -> DEBU 8d8 Closing Broadcast stream
orderer.example.com | 2017-09-06 10:16:04.972 UTC [orderer/common/deliver] Handle -> WARN 8d9 Error reading from stream: rpc error: code = Canceled desc = context canceled
orderer.example.com | 2017-09-06 10:16:04.972 UTC [orderer/main] func1 -> DEBU 8da Closing Deliver stream
Below is the content of config_update.json: 以下是config_update.json的内容:
"channel_id": "mychannel",
"read_set": {
"groups": {
"Application": {
"version": "1"
},
"Orderer": {}
},
"policies": {
"Admins": {},
"Readers": {},
"Writers": {}
},
"values": {
"BlockDataHashingStructure": {},
"Consortium": {},
"HashingAlgorithm": {},
"OrdererAddresses": {}
}
},
"write_set": {
"groups": {
"Application": {
"version": "1"
},
"Consortiums": {
"groups": {
"SampleConsortium": {
"groups": {
"Org3MSP": {
"values": {
"MSP": {
"value": {
"config": {
"name": "Org3MSP"
}
}
}
}
}
}
}
}
},
"Orderer": {}
},
"policies": {
"Admins": {},
"Readers": {},
"Writers": {}
},
"values": {
"BlockDataHashingStructure": {},
"Consortium": {},
"HashingAlgorithm": {},
"OrdererAddresses": {}
},
"version": "1"
}
Appreciate for any advice. 感谢任何建议。
From your config update, you are attempting to set the groups of SampleConsortiums
to be exactly Org3MSP
. 从配置更新中,您尝试将SampleConsortiums
的组设置为完全Org3MSP
。
Based on the fact that the channel_id
is mychannel
, I assume that you are attempting to modify the membership of an application channel, and not of the ordering system channel. 基于channel_id
是mychannel
的事实,我假设您正在尝试修改应用程序通道的成员身份,而不是订购系统通道的成员身份。
Standard application channels do not have a top level Consortiums
group, instead they have an Application
top level group, so this config update will not accomplish what you hope it to. 标准应用程序通道没有顶级Consortiums
组,而是具有Application
顶级组,因此此配置更新将无法实现您希望的目标。 Consider the content of config_update.json
from https://github.com/hyperledger/fabric/tree/release/examples/configtxupdate/reconfig_membership 考虑来自https://github.com/hyperledger/fabric/tree/release/examples/configtxupdate/reconfig_membership的config_update.json
的内容
{
"channel_id": "example",
"read_set": {
"groups": {
"Application": {
"groups": {
"SampleOrg": {
"mod_policy": "",
"version": "0"
}
},
"mod_policy": "",
"policies": {
"Admins": {
"mod_policy": "",
"version": "0"
},
"Readers": {
"mod_policy": "",
"version": "0"
},
"Writers": {
"mod_policy": "",
"version": "0"
}
},
"version": "1"
}
},
"mod_policy": "",
"version": "0"
},
"type": 0,
"write_set": {
"groups": {
"Application": {
"groups": {
"ExampleOrg": {
"mod_policy": "Admins",
"policies": {
"Admins": {
"mod_policy": "Admins",
"policy": {
"type": 1,
"value": {
"identities": [
{
"principal": {
"msp_identifier": "DEFAULT",
"role": "MEMBER"
},
"principal_classification": "ROLE"
}
],
"rule": {
"n_out_of": {
"n": 1,
"rules": [
{
"signed_by": 0
}
]
}
},
"version": 0
}
},
"version": "0"
},
"Readers": {
"mod_policy": "Admins",
"policy": {
"type": 1,
"value": {
"identities": [
{
"principal": {
"msp_identifier": "DEFAULT",
"role": "MEMBER"
},
"principal_classification": "ROLE"
}
],
"rule": {
"n_out_of": {
"n": 1,
"rules": [
{
"signed_by": 0
}
]
}
},
"version": 0
}
},
"version": "0"
},
"Writers": {
"mod_policy": "Admins",
"policy": {
"type": 1,
"value": {
"identities": [
{
"principal": {
"msp_identifier": "DEFAULT",
"role": "MEMBER"
},
"principal_classification": "ROLE"
}
],
"rule": {
"n_out_of": {
"n": 1,
"rules": [
{
"signed_by": 0
}
]
}
},
"version": 0
}
},
"version": "0"
}
},
"values": {
"MSP": {
"mod_policy": "Admins",
"value": {
"config": {
"admins": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNqRENDQWpLZ0F3SUJBZ0lVQkVWd3NTeDBUbXFkYnpOd2xlTkJCem9JVDB3d0NnWUlLb1pJemowRUF3SXcKZnpFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaApiaUJHY21GdVkybHpZMjh4SHpBZEJnTlZCQW9URmtsdWRHVnlibVYwSUZkcFpHZGxkSE1zSUVsdVl5NHhEREFLCkJnTlZCQXNUQTFkWFZ6RVVNQklHQTFVRUF4TUxaWGhoYlhCc1pTNWpiMjB3SGhjTk1UWXhNVEV4TVRjd056QXcKV2hjTk1UY3hNVEV4TVRjd056QXdXakJqTVFzd0NRWURWUVFHRXdKVlV6RVhNQlVHQTFVRUNCTU9UbTl5ZEdnZwpRMkZ5YjJ4cGJtRXhFREFPQmdOVkJBY1RCMUpoYkdWcFoyZ3hHekFaQmdOVkJBb1RFa2g1Y0dWeWJHVmtaMlZ5CklFWmhZbkpwWXpFTU1Bb0dBMVVFQ3hNRFEwOVFNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUKSEJ1S3NBTzQzaHM0SkdwRmZpR01rQi94c0lMVHNPdm1OMldtd3BzUEhaTkw2dzhIV2UzeENQUXRkRy9YSkp2WgorQzc1NktFc1VCTTN5dzVQVGZrdThxT0JwekNCcERBT0JnTlZIUThCQWY4RUJBTUNCYUF3SFFZRFZSMGxCQll3CkZBWUlLd1lCQlFVSEF3RUdDQ3NHQVFVRkJ3TUNNQXdHQTFVZEV3RUIvd1FDTUFBd0hRWURWUjBPQkJZRUZPRkMKZGNVWjRlczNsdGlDZ0FWRG95TGZWcFBJTUI4R0ExVWRJd1FZTUJhQUZCZG5RajJxbm9JL3hNVWRuMXZEbWRHMQpuRWdRTUNVR0ExVWRFUVFlTUJ5Q0NtMTVhRzl6ZEM1amIyMkNEbmQzZHk1dGVXaHZjM1F1WTI5dE1Bb0dDQ3FHClNNNDlCQU1DQTBnQU1FVUNJRGY5SGJsNHhuM3o0RXdOS21pbE05bFgyRnE0aldwQWFSVkI5N09tVkVleUFpRUEKMjVhRFBRSEdHcTJBdmhLVDB3dnQwOGNYMUdUR0NJYmZtdUxwTXdLUWozOD0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
],
"crypto_config": {
"identity_identifier_hash_function": "SHA256",
"signature_hash_family": "SHA2"
},
"name": "ExampleOrg",
"organizational_unit_identifiers": [
{
"certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNZakNDQWdtZ0F3SUJBZ0lVQjNDVERPVTQ3c1VDNUs0a24vQ2FxbmgxMTRZd0NnWUlLb1pJemowRUF3SXcKZnpFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaApiaUJHY21GdVkybHpZMjh4SHpBZEJnTlZCQW9URmtsdWRHVnlibVYwSUZkcFpHZGxkSE1zSUVsdVl5NHhEREFLCkJnTlZCQXNUQTFkWFZ6RVVNQklHQTFVRUF4TUxaWGhoYlhCc1pTNWpiMjB3SGhjTk1UWXhNREV5TVRrek1UQXcKV2hjTk1qRXhNREV4TVRrek1UQXdXakIvTVFzd0NRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadgpjbTVwWVRFV01CUUdBMVVFQnhNTlUyRnVJRVp5WVc1amFYTmpiekVmTUIwR0ExVUVDaE1XU1c1MFpYSnVaWFFnClYybGtaMlYwY3l3Z1NXNWpMakVNTUFvR0ExVUVDeE1EVjFkWE1SUXdFZ1lEVlFRREV3dGxlR0Z0Y0d4bExtTnYKYlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQktJSDViMkphU21xaVFYSHlxQytjbWtuSUNjRgppNUFkZFZqc1FpekRWNnVaNHY2cytQV2lKeXpmQS9yVHRNdllBUHEveWVFSHBCVUIxajA1M214bnBNdWpZekJoCk1BNEdBMVVkRHdFQi93UUVBd0lCQmpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRWFowSTkKcXA2Q1A4VEZIWjlidzVuUnRaeElFREFmQmdOVkhTTUVHREFXZ0JRWFowSTlxcDZDUDhURkhaOWJ3NW5SdFp4SQpFREFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUFIcDVSYnA5RW0xRy9VbUtuOFdzQ2JxRGZXZWNWYlpQUWozUks0Cm9HNWtRUUlnUUFlNE9PS1loSmRoM2Y3VVJhS2ZHVGY0OTIvbm1SbXRLK3lTS2pwSFNyVT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
"organizational_unit_identifier": "COP"
}
],
"root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNZakNDQWdtZ0F3SUJBZ0lVQjNDVERPVTQ3c1VDNUs0a24vQ2FxbmgxMTRZd0NnWUlLb1pJemowRUF3SXcKZnpFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaApiaUJHY21GdVkybHpZMjh4SHpBZEJnTlZCQW9URmtsdWRHVnlibVYwSUZkcFpHZGxkSE1zSUVsdVl5NHhEREFLCkJnTlZCQXNUQTFkWFZ6RVVNQklHQTFVRUF4TUxaWGhoYlhCc1pTNWpiMjB3SGhjTk1UWXhNREV5TVRrek1UQXcKV2hjTk1qRXhNREV4TVRrek1UQXdXakIvTVFzd0NRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadgpjbTVwWVRFV01CUUdBMVVFQnhNTlUyRnVJRVp5WVc1amFYTmpiekVmTUIwR0ExVUVDaE1XU1c1MFpYSnVaWFFnClYybGtaMlYwY3l3Z1NXNWpMakVNTUFvR0ExVUVDeE1EVjFkWE1SUXdFZ1lEVlFRREV3dGxlR0Z0Y0d4bExtTnYKYlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQktJSDViMkphU21xaVFYSHlxQytjbWtuSUNjRgppNUFkZFZqc1FpekRWNnVaNHY2cytQV2lKeXpmQS9yVHRNdllBUHEveWVFSHBCVUIxajA1M214bnBNdWpZekJoCk1BNEdBMVVkRHdFQi93UUVBd0lCQmpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRWFowSTkKcXA2Q1A4VEZIWjlidzVuUnRaeElFREFmQmdOVkhTTUVHREFXZ0JRWFowSTlxcDZDUDhURkhaOWJ3NW5SdFp4SQpFREFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUFIcDVSYnA5RW0xRy9VbUtuOFdzQ2JxRGZXZWNWYlpQUWozUks0Cm9HNWtRUUlnUUFlNE9PS1loSmRoM2Y3VVJhS2ZHVGY0OTIvbm1SbXRLK3lTS2pwSFNyVT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
],
"tls_root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNZakNDQWdtZ0F3SUJBZ0lVQjNDVERPVTQ3c1VDNUs0a24vQ2FxbmgxMTRZd0NnWUlLb1pJemowRUF3SXcKZnpFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaApiaUJHY21GdVkybHpZMjh4SHpBZEJnTlZCQW9URmtsdWRHVnlibVYwSUZkcFpHZGxkSE1zSUVsdVl5NHhEREFLCkJnTlZCQXNUQTFkWFZ6RVVNQklHQTFVRUF4TUxaWGhoYlhCc1pTNWpiMjB3SGhjTk1UWXhNREV5TVRrek1UQXcKV2hjTk1qRXhNREV4TVRrek1UQXdXakIvTVFzd0NRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadgpjbTVwWVRFV01CUUdBMVVFQnhNTlUyRnVJRVp5WVc1amFYTmpiekVmTUIwR0ExVUVDaE1XU1c1MFpYSnVaWFFnClYybGtaMlYwY3l3Z1NXNWpMakVNTUFvR0ExVUVDeE1EVjFkWE1SUXdFZ1lEVlFRREV3dGxlR0Z0Y0d4bExtTnYKYlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQktJSDViMkphU21xaVFYSHlxQytjbWtuSUNjRgppNUFkZFZqc1FpekRWNnVaNHY2cytQV2lKeXpmQS9yVHRNdllBUHEveWVFSHBCVUIxajA1M214bnBNdWpZekJoCk1BNEdBMVVkRHdFQi93UUVBd0lCQmpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRWFowSTkKcXA2Q1A4VEZIWjlidzVuUnRaeElFREFmQmdOVkhTTUVHREFXZ0JRWFowSTlxcDZDUDhURkhaOWJ3NW5SdFp4SQpFREFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUFIcDVSYnA5RW0xRy9VbUtuOFdzQ2JxRGZXZWNWYlpQUWozUks0Cm9HNWtRUUlnUUFlNE9PS1loSmRoM2Y3VVJhS2ZHVGY0OTIvbm1SbXRLK3lTS2pwSFNyVT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
]
},
"type": 0
},
"version": "0"
}
},
"version": "0"
},
"SampleOrg": {
"mod_policy": "",
"version": "0"
}
},
"mod_policy": "Admins",
"policies": {
"Admins": {
"mod_policy": "",
"version": "0"
},
"Readers": {
"mod_policy": "",
"version": "0"
},
"Writers": {
"mod_policy": "",
"version": "0"
}
},
"version": "2"
}
},
"mod_policy": "",
"version": "0"
}
}
Note that the existing orgs are sparsely represented as part of the read_set
as well as the write_set
. 注意,现有的组织稀疏地表示为read_set
和write_set
。
I strongly recommend that you run the reconfig_membership
example and inspect the artifacts it generates in the example_output
directory and use this as your guide for properly constructing the config update. 我强烈建议您运行reconfig_membership
示例,并检查它在example_output
目录中生成的工件,并以此为指导正确构建配置更新。
The fact that this config update triggers a (handled) panic is interesting. 此配置更新触发(已处理)紧急情况的事实很有趣。 I'll attempt to reproduce and push a fix for this behavior. 我将尝试重现并推动对此行为的修复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.