我尝试使用configtxlator添加新组织Org3但失败了。以下是服务器控制台日志中的错误:
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
以下是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"
}
感谢任何建议。
答案 0 :(得分:2)
在您的配置更新中,您尝试将SampleConsortiums
的群组设置为Org3MSP
。
基于channel_id
为mychannel
的事实,我假设您正在尝试修改应用程序通道的成员资格,而不是订购系统通道的成员资格。
标准应用程序渠道没有顶级Consortiums
组,而是拥有Application
顶级组,因此此配置更新无法实现您的希望。考虑来自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"
}
}
请注意,现有的orgs稀疏地表示为read_set
以及write_set
的一部分。
我强烈建议您运行reconfig_membership
示例并检查它在example_output
目录中生成的工件,并将其用作正确构建配置更新的指南。
此配置更新触发(处理)恐慌的事实很有趣。我将尝试重现并推送修复此行为。