From f60d3af5676e0b298ce1b4f31e9209043552da35 Mon Sep 17 00:00:00 2001 From: Jason Yellick Date: Tue, 7 Feb 2017 16:12:29 -0500 Subject: [PATCH] [FAB-2105] Add config schema protos https://jira.hyperledger.org/browse/FAB-2105 Because the new configtx format is so much more flexible than the original, we need to make sure that it is locked down to keep people from going crazy with it. The restrictions can be relaxed as the use cases are made, but initially the goal is to restrict the configuration to a minimal set and loosen from there. To do this, protos for a simple schema should be defined so that the configtx manager can enforce the restrictive configuration scheme. Change-Id: Iff0df7910aa216a03267beeb86b5b9f3f29d4b70 Signed-off-by: Jason Yellick --- protos/common/common.pb.go | 3 + protos/common/configtx.pb.go | 157 ++++++++++++++++++++++++----------- protos/common/configtx.proto | 10 +++ 3 files changed, 120 insertions(+), 50 deletions(-) diff --git a/protos/common/common.pb.go b/protos/common/common.pb.go index 6acadcb065c..20ff2c5b810 100644 --- a/protos/common/common.pb.go +++ b/protos/common/common.pb.go @@ -28,6 +28,9 @@ It has these top-level messages: BlockMetadata ConfigEnvelope ConfigTemplate + ConfigGroupSchema + ConfigValueSchema + ConfigPolicySchema Config ConfigNext ConfigGroup diff --git a/protos/common/configtx.pb.go b/protos/common/configtx.pb.go index 8ccfe47738b..1b845e913cf 100644 --- a/protos/common/configtx.pb.go +++ b/protos/common/configtx.pb.go @@ -41,7 +41,7 @@ var ConfigItem_ConfigType_value = map[string]int32{ func (x ConfigItem_ConfigType) String() string { return proto.EnumName(ConfigItem_ConfigType_name, int32(x)) } -func (ConfigItem_ConfigType) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{7, 0} } +func (ConfigItem_ConfigType) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{10, 0} } // ConfigEnvelope is designed to contain _all_ configuration for a chain with no dependency // on previous configuration transactions. @@ -100,6 +100,54 @@ func (m *ConfigTemplate) GetItems() []*ConfigItem { return nil } +type ConfigGroupSchema struct { + Groups map[string]*ConfigGroupSchema `protobuf:"bytes,1,rep,name=groups" json:"groups,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Values map[string]*ConfigValueSchema `protobuf:"bytes,2,rep,name=values" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Policies map[string]*ConfigPolicySchema `protobuf:"bytes,3,rep,name=policies" json:"policies,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *ConfigGroupSchema) Reset() { *m = ConfigGroupSchema{} } +func (m *ConfigGroupSchema) String() string { return proto.CompactTextString(m) } +func (*ConfigGroupSchema) ProtoMessage() {} +func (*ConfigGroupSchema) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} } + +func (m *ConfigGroupSchema) GetGroups() map[string]*ConfigGroupSchema { + if m != nil { + return m.Groups + } + return nil +} + +func (m *ConfigGroupSchema) GetValues() map[string]*ConfigValueSchema { + if m != nil { + return m.Values + } + return nil +} + +func (m *ConfigGroupSchema) GetPolicies() map[string]*ConfigPolicySchema { + if m != nil { + return m.Policies + } + return nil +} + +type ConfigValueSchema struct { +} + +func (m *ConfigValueSchema) Reset() { *m = ConfigValueSchema{} } +func (m *ConfigValueSchema) String() string { return proto.CompactTextString(m) } +func (*ConfigValueSchema) ProtoMessage() {} +func (*ConfigValueSchema) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} } + +type ConfigPolicySchema struct { +} + +func (m *ConfigPolicySchema) Reset() { *m = ConfigPolicySchema{} } +func (m *ConfigPolicySchema) String() string { return proto.CompactTextString(m) } +func (*ConfigPolicySchema) ProtoMessage() {} +func (*ConfigPolicySchema) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} } + // This message may change slightly depending on the finalization of signature schemes for transactions type Config struct { Header *ChannelHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"` @@ -109,7 +157,7 @@ type Config struct { func (m *Config) Reset() { *m = Config{} } func (m *Config) String() string { return proto.CompactTextString(m) } func (*Config) ProtoMessage() {} -func (*Config) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} } +func (*Config) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} } func (m *Config) GetHeader() *ChannelHeader { if m != nil { @@ -135,7 +183,7 @@ type ConfigNext struct { func (m *ConfigNext) Reset() { *m = ConfigNext{} } func (m *ConfigNext) String() string { return proto.CompactTextString(m) } func (*ConfigNext) ProtoMessage() {} -func (*ConfigNext) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} } +func (*ConfigNext) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} } func (m *ConfigNext) GetHeader() *ChannelHeader { if m != nil { @@ -163,7 +211,7 @@ type ConfigGroup struct { func (m *ConfigGroup) Reset() { *m = ConfigGroup{} } func (m *ConfigGroup) String() string { return proto.CompactTextString(m) } func (*ConfigGroup) ProtoMessage() {} -func (*ConfigGroup) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} } +func (*ConfigGroup) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} } func (m *ConfigGroup) GetGroups() map[string]*ConfigGroup { if m != nil { @@ -196,7 +244,7 @@ type ConfigValue struct { func (m *ConfigValue) Reset() { *m = ConfigValue{} } func (m *ConfigValue) String() string { return proto.CompactTextString(m) } func (*ConfigValue) ProtoMessage() {} -func (*ConfigValue) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} } +func (*ConfigValue) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{8} } type ConfigPolicy struct { Version uint64 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` @@ -207,7 +255,7 @@ type ConfigPolicy struct { func (m *ConfigPolicy) Reset() { *m = ConfigPolicy{} } func (m *ConfigPolicy) String() string { return proto.CompactTextString(m) } func (*ConfigPolicy) ProtoMessage() {} -func (*ConfigPolicy) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} } +func (*ConfigPolicy) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{9} } func (m *ConfigPolicy) GetPolicy() *Policy { if m != nil { @@ -227,7 +275,7 @@ type ConfigItem struct { func (m *ConfigItem) Reset() { *m = ConfigItem{} } func (m *ConfigItem) String() string { return proto.CompactTextString(m) } func (*ConfigItem) ProtoMessage() {} -func (*ConfigItem) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} } +func (*ConfigItem) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{10} } type ConfigSignature struct { SignatureHeader []byte `protobuf:"bytes,1,opt,name=signature_header,json=signatureHeader,proto3" json:"signature_header,omitempty"` @@ -237,11 +285,14 @@ type ConfigSignature struct { func (m *ConfigSignature) Reset() { *m = ConfigSignature{} } func (m *ConfigSignature) String() string { return proto.CompactTextString(m) } func (*ConfigSignature) ProtoMessage() {} -func (*ConfigSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{8} } +func (*ConfigSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{11} } func init() { proto.RegisterType((*ConfigEnvelope)(nil), "common.ConfigEnvelope") proto.RegisterType((*ConfigTemplate)(nil), "common.ConfigTemplate") + proto.RegisterType((*ConfigGroupSchema)(nil), "common.ConfigGroupSchema") + proto.RegisterType((*ConfigValueSchema)(nil), "common.ConfigValueSchema") + proto.RegisterType((*ConfigPolicySchema)(nil), "common.ConfigPolicySchema") proto.RegisterType((*Config)(nil), "common.Config") proto.RegisterType((*ConfigNext)(nil), "common.ConfigNext") proto.RegisterType((*ConfigGroup)(nil), "common.ConfigGroup") @@ -255,46 +306,52 @@ func init() { func init() { proto.RegisterFile("common/configtx.proto", fileDescriptor1) } var fileDescriptor1 = []byte{ - // 641 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x54, 0xdf, 0x4f, 0xd4, 0x40, - 0x10, 0xb6, 0x3f, 0xae, 0xc7, 0xcd, 0x1d, 0xd0, 0x2c, 0xa0, 0x0d, 0x91, 0x88, 0x35, 0x31, 0x87, - 0x06, 0x2e, 0xe2, 0x03, 0x86, 0xc4, 0x07, 0x3d, 0x1b, 0x21, 0x11, 0x38, 0x17, 0x62, 0x22, 0x31, - 0x21, 0xa5, 0x5d, 0xee, 0xaa, 0x6d, 0xb7, 0x69, 0xf7, 0x08, 0x7d, 0xf5, 0xcf, 0xf5, 0xaf, 0x30, - 0xdd, 0xdd, 0x96, 0x16, 0xcf, 0x23, 0xbc, 0x40, 0x77, 0xe6, 0x9b, 0xef, 0xfb, 0x66, 0xf6, 0x76, - 0x60, 0xcd, 0xa3, 0x51, 0x44, 0xe3, 0x81, 0x47, 0xe3, 0xab, 0x60, 0xcc, 0x6e, 0x76, 0x92, 0x94, - 0x32, 0x8a, 0x0c, 0x11, 0x5e, 0x5f, 0xa9, 0xd2, 0xc5, 0x3f, 0x91, 0x5c, 0x2f, 0x6b, 0x12, 0x1a, - 0x06, 0x5e, 0x40, 0x32, 0x11, 0xb6, 0x5d, 0x58, 0x1a, 0x72, 0x16, 0x27, 0xbe, 0x26, 0x21, 0x4d, - 0x08, 0x7a, 0x0c, 0x86, 0xe0, 0xb5, 0x94, 0x4d, 0xa5, 0xdf, 0xc3, 0xf2, 0x84, 0xf6, 0x00, 0xb2, - 0x60, 0x1c, 0xbb, 0x6c, 0x9a, 0x92, 0xcc, 0x52, 0x37, 0xb5, 0x7e, 0x77, 0xf7, 0xc9, 0x8e, 0xd4, - 0x10, 0x1c, 0xa7, 0x65, 0x1e, 0xd7, 0xa0, 0xf6, 0x7e, 0x29, 0x71, 0x46, 0xa2, 0x24, 0x74, 0x19, - 0x41, 0x7d, 0x68, 0x05, 0x8c, 0x44, 0x99, 0xa5, 0x70, 0x16, 0xd4, 0x64, 0x39, 0x64, 0x24, 0xc2, - 0x02, 0x60, 0xbb, 0x60, 0x88, 0x20, 0xda, 0x06, 0x63, 0x42, 0x5c, 0x9f, 0xa4, 0xdc, 0x56, 0x77, - 0x77, 0xad, 0x2a, 0x9a, 0xb8, 0x71, 0x4c, 0xc2, 0x03, 0x9e, 0xc4, 0x12, 0x74, 0x2b, 0xa1, 0xde, - 0x27, 0xf1, 0x13, 0x40, 0x04, 0x8f, 0xc9, 0x0d, 0x7b, 0xa8, 0xcc, 0x36, 0xb4, 0x3d, 0x91, 0xb0, - 0x54, 0x8e, 0x5f, 0x69, 0x0a, 0x7d, 0x4e, 0xe9, 0x34, 0xc1, 0x25, 0xc6, 0xfe, 0xa3, 0x41, 0xb7, - 0x96, 0x40, 0x16, 0xb4, 0xaf, 0x49, 0x9a, 0x05, 0x34, 0xe6, 0x72, 0x3a, 0x2e, 0x8f, 0x68, 0x0f, - 0x8c, 0x71, 0x01, 0x29, 0x1b, 0x78, 0x36, 0x83, 0x77, 0x87, 0xff, 0xcd, 0x9c, 0x98, 0xa5, 0x39, - 0x96, 0xf0, 0xa2, 0xf0, 0xda, 0x0d, 0xa7, 0x24, 0xb3, 0xb4, 0xff, 0x17, 0x7e, 0xe3, 0x08, 0x59, - 0x28, 0xe0, 0xe8, 0x3d, 0x2c, 0x94, 0xbf, 0x0d, 0x4b, 0xe7, 0xa5, 0xcf, 0x67, 0x95, 0x8e, 0x24, - 0x46, 0x14, 0x57, 0x25, 0x68, 0x03, 0x20, 0xa2, 0xfe, 0x05, 0x3f, 0xe7, 0x56, 0x6b, 0x53, 0xe9, - 0x77, 0x70, 0x27, 0xa2, 0x3e, 0xc7, 0xe7, 0xeb, 0xc7, 0xd0, 0xad, 0xb9, 0x45, 0x26, 0x68, 0xbf, - 0x48, 0xce, 0x9b, 0xee, 0xe0, 0xe2, 0x13, 0x6d, 0x41, 0x8b, 0x1b, 0x99, 0x37, 0x47, 0x81, 0xd8, - 0x57, 0xdf, 0x29, 0x05, 0x5f, 0xad, 0x89, 0x07, 0xf3, 0xf1, 0xda, 0x3a, 0xdf, 0x57, 0x58, 0x6c, - 0x74, 0x36, 0x83, 0xf1, 0x55, 0x93, 0x71, 0xb5, 0xc9, 0x28, 0xfa, 0xac, 0x51, 0xda, 0x3f, 0xca, - 0xbb, 0xe6, 0x62, 0x73, 0xee, 0x7a, 0xb5, 0x4e, 0xdc, 0x93, 0x14, 0x77, 0x06, 0xaa, 0xdd, 0x19, - 0xa8, 0x4d, 0xa1, 0x57, 0x17, 0x9e, 0x43, 0xff, 0x12, 0x0c, 0x49, 0x22, 0x8c, 0x2f, 0x95, 0xc6, - 0xa5, 0x65, 0x99, 0xbd, 0x4f, 0xf0, 0xb7, 0x5a, 0x3e, 0x94, 0xe2, 0xf5, 0xa0, 0x37, 0xa0, 0xb3, - 0x3c, 0x21, 0x5c, 0x6c, 0x69, 0x77, 0xe3, 0xdf, 0xf7, 0x25, 0x3f, 0xcf, 0xf2, 0x84, 0x60, 0x0e, - 0x45, 0x2f, 0x60, 0x31, 0x74, 0x33, 0x76, 0x11, 0x51, 0x3f, 0xb8, 0x0a, 0x88, 0xcf, 0xfd, 0xe8, - 0xb8, 0x57, 0x04, 0x8f, 0x64, 0x0c, 0x0d, 0x60, 0x45, 0xe4, 0x3d, 0x97, 0x05, 0x34, 0x6e, 0xda, - 0x41, 0xf5, 0x94, 0x6c, 0x5c, 0x5e, 0x94, 0x7e, 0x7b, 0x51, 0xd5, 0x3c, 0x5b, 0xb5, 0x79, 0xda, - 0xc3, 0xd2, 0x7e, 0xe1, 0x08, 0x01, 0x18, 0xa3, 0x93, 0x2f, 0x87, 0xc3, 0xef, 0xe6, 0x23, 0xd4, - 0x81, 0xd6, 0xf0, 0xe0, 0xc3, 0xe1, 0xb1, 0xa9, 0xa0, 0x2e, 0xb4, 0x4f, 0xf0, 0x27, 0x07, 0x3b, - 0xd8, 0x54, 0xd1, 0x02, 0xe8, 0x23, 0xc7, 0xc1, 0xa6, 0x86, 0xda, 0xa0, 0x1d, 0x9d, 0x8e, 0x4c, - 0xdd, 0x3e, 0x87, 0xe5, 0x3b, 0xab, 0x0e, 0x6d, 0x81, 0x59, 0x2d, 0xbb, 0x8b, 0xda, 0xee, 0xe8, - 0xe1, 0xe5, 0x2a, 0x2e, 0xb6, 0x06, 0x7a, 0x0a, 0x9d, 0x2a, 0x24, 0x2f, 0xfb, 0x36, 0xf0, 0x71, - 0xfb, 0xfc, 0xf5, 0x38, 0x60, 0x93, 0xe9, 0x65, 0x31, 0xcb, 0xc1, 0x24, 0x4f, 0x48, 0x1a, 0x12, - 0x7f, 0x4c, 0xd2, 0xc1, 0x95, 0x7b, 0x99, 0x06, 0xde, 0x80, 0x6f, 0xec, 0x4c, 0xae, 0xf5, 0x4b, - 0x83, 0x1f, 0xdf, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x67, 0x29, 0x46, 0xff, 0x0d, 0x06, 0x00, - 0x00, + // 738 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x55, 0x51, 0x4f, 0xd3, 0x50, + 0x14, 0x76, 0xeb, 0xd6, 0xb1, 0xb3, 0x01, 0xf3, 0x0e, 0x74, 0x2e, 0x12, 0xb1, 0x46, 0x1d, 0x1a, + 0x98, 0xce, 0x07, 0x0c, 0x09, 0x0f, 0x3a, 0x17, 0x21, 0x91, 0x31, 0x2f, 0x44, 0x23, 0x31, 0x21, + 0xa5, 0xbb, 0x6c, 0xd5, 0xb6, 0xb7, 0x69, 0x3b, 0x42, 0x5f, 0xfd, 0x9b, 0xfe, 0x03, 0x7f, 0x85, + 0xe9, 0xbd, 0xb7, 0xe5, 0x96, 0x75, 0x5b, 0x78, 0x5a, 0xef, 0x39, 0xe7, 0xfb, 0xbe, 0xd3, 0x73, + 0xbe, 0xee, 0xc2, 0xba, 0x41, 0x6d, 0x9b, 0x3a, 0x6d, 0x83, 0x3a, 0x97, 0xe6, 0x28, 0xb8, 0xde, + 0x71, 0x3d, 0x1a, 0x50, 0xa4, 0xf2, 0x70, 0xb3, 0x9e, 0xa4, 0xa3, 0x1f, 0x9e, 0x6c, 0xc6, 0x18, + 0x97, 0x5a, 0xa6, 0x61, 0x12, 0x9f, 0x87, 0x35, 0x1d, 0x56, 0xba, 0x8c, 0xa5, 0xe7, 0x5c, 0x11, + 0x8b, 0xba, 0x04, 0x3d, 0x00, 0x95, 0xf3, 0x36, 0x72, 0x9b, 0xb9, 0x56, 0x15, 0x8b, 0x13, 0xda, + 0x05, 0xf0, 0xcd, 0x91, 0xa3, 0x07, 0x13, 0x8f, 0xf8, 0x8d, 0xfc, 0xa6, 0xd2, 0xaa, 0x74, 0x1e, + 0xee, 0x08, 0x0d, 0xce, 0x71, 0x12, 0xe7, 0xb1, 0x54, 0xaa, 0xed, 0xc5, 0x12, 0xa7, 0xc4, 0x76, + 0x2d, 0x3d, 0x20, 0xa8, 0x05, 0x45, 0x33, 0x20, 0xb6, 0xdf, 0xc8, 0x31, 0x16, 0x94, 0x66, 0x39, + 0x0c, 0x88, 0x8d, 0x79, 0x81, 0xf6, 0x57, 0x81, 0xfb, 0x3c, 0xfa, 0xd9, 0xa3, 0x13, 0xf7, 0xc4, + 0x18, 0x13, 0x5b, 0x47, 0xfb, 0xa0, 0x8e, 0xa2, 0x63, 0x4c, 0xf0, 0x3c, 0x4d, 0x20, 0x95, 0xee, + 0xb0, 0x67, 0xbf, 0xe7, 0x04, 0x5e, 0x88, 0x05, 0x28, 0x82, 0x5f, 0xe9, 0xd6, 0x24, 0x79, 0x8b, + 0x39, 0xf0, 0x6f, 0xac, 0x4e, 0xc0, 0x39, 0x08, 0x75, 0x61, 0x29, 0x1e, 0x62, 0x43, 0x61, 0x04, + 0x2f, 0x67, 0x13, 0x0c, 0x44, 0x25, 0xa7, 0x48, 0x80, 0xcd, 0x53, 0xa8, 0x48, 0xad, 0xa1, 0x1a, + 0x28, 0xbf, 0x49, 0xc8, 0x26, 0x5e, 0xc6, 0xd1, 0x23, 0x6a, 0x43, 0x91, 0xe9, 0x35, 0xf2, 0x9b, + 0xb9, 0x56, 0xa5, 0xf3, 0x68, 0xa6, 0x04, 0xe6, 0x75, 0x7b, 0xf9, 0xf7, 0xb9, 0x88, 0x55, 0xea, + 0xf8, 0xce, 0xac, 0x0c, 0x3b, 0xcd, 0xfa, 0x1d, 0x96, 0x53, 0xaf, 0x91, 0xc1, 0xfb, 0x26, 0xcd, + 0xdb, 0x4c, 0xf3, 0x32, 0x74, 0x38, 0x45, 0xac, 0xd5, 0xe3, 0xe5, 0x4a, 0xc2, 0xda, 0x1a, 0xa0, + 0x69, 0x94, 0xa6, 0x83, 0xca, 0xa3, 0x68, 0x1b, 0xd4, 0x31, 0xd1, 0x87, 0xc4, 0x63, 0xfa, 0x95, + 0xce, 0x7a, 0xa2, 0x35, 0xd6, 0x1d, 0x87, 0x58, 0x07, 0x2c, 0x89, 0x45, 0xd1, 0x8d, 0xd7, 0xf2, + 0x8b, 0xbc, 0xf6, 0x0b, 0x80, 0x07, 0xfb, 0xe4, 0x3a, 0xb8, 0xab, 0xcc, 0x36, 0x94, 0x0c, 0x9e, + 0x10, 0x23, 0xa8, 0x67, 0x2c, 0x0c, 0xc7, 0x35, 0xda, 0x3f, 0x05, 0x2a, 0x52, 0x02, 0x35, 0xa0, + 0x74, 0x45, 0x3c, 0xdf, 0xa4, 0x0e, 0x93, 0x2b, 0xe0, 0xf8, 0x88, 0x76, 0x13, 0xaf, 0xf3, 0x17, + 0x78, 0x92, 0xc1, 0x9b, 0xe9, 0xf2, 0xdd, 0xc4, 0xe5, 0xca, 0x6c, 0x60, 0x96, 0xbf, 0xf7, 0x25, + 0x7f, 0x17, 0x18, 0xf4, 0x69, 0x16, 0x74, 0x86, 0xb3, 0xd1, 0x06, 0x80, 0x4d, 0x87, 0xe7, 0xec, + 0x1c, 0x36, 0x8a, 0xcc, 0x23, 0x65, 0x9b, 0x0e, 0xf9, 0x3a, 0x9b, 0xfd, 0x45, 0xc6, 0xdf, 0x4a, + 0x5b, 0x29, 0x73, 0x8e, 0x92, 0x39, 0xfb, 0x8b, 0x2c, 0x3f, 0x9f, 0x8f, 0x61, 0x65, 0xbe, 0xaf, + 0x8b, 0xcd, 0xfe, 0x2a, 0xcd, 0xb8, 0x96, 0x65, 0x76, 0xd9, 0xe6, 0x3f, 0xe3, 0x5d, 0x33, 0xb1, + 0x39, 0xbb, 0x5e, 0x93, 0x89, 0xab, 0x82, 0xe2, 0xd6, 0x40, 0x95, 0x5b, 0x03, 0xd5, 0x28, 0x54, + 0x65, 0xe1, 0x39, 0xf4, 0x2f, 0x40, 0x15, 0x24, 0xbc, 0xf1, 0x95, 0xb8, 0x71, 0xd1, 0xb2, 0xc8, + 0x2e, 0x12, 0xfc, 0x93, 0x8f, 0x3f, 0x94, 0xe8, 0xeb, 0x41, 0x6f, 0xa1, 0x10, 0x84, 0x2e, 0x61, + 0x62, 0x2b, 0x9d, 0x8d, 0xe9, 0xef, 0x4b, 0x3c, 0x9e, 0x86, 0x2e, 0xc1, 0xac, 0x14, 0x3d, 0x83, + 0x65, 0x4b, 0xf7, 0x83, 0x73, 0x9b, 0x0e, 0xcd, 0x4b, 0x93, 0x0c, 0x59, 0x3f, 0x05, 0x5c, 0x8d, + 0x82, 0x47, 0x22, 0x86, 0xda, 0x50, 0xe7, 0x79, 0x43, 0x0f, 0x4c, 0xea, 0xa4, 0xdb, 0x41, 0x72, + 0x4a, 0xbc, 0xb8, 0x58, 0x54, 0xe1, 0x66, 0x51, 0xc9, 0x3c, 0x8b, 0xd2, 0x3c, 0xb5, 0x6e, 0xdc, + 0x7e, 0xd4, 0x11, 0x02, 0x50, 0x07, 0xc7, 0x5f, 0x0e, 0xbb, 0x3f, 0x6a, 0xf7, 0x50, 0x19, 0x8a, + 0xdd, 0x83, 0x0f, 0x87, 0xfd, 0x5a, 0x0e, 0x55, 0xa0, 0x74, 0x8c, 0x3f, 0xf5, 0x70, 0x0f, 0xd7, + 0xf2, 0x68, 0x09, 0x0a, 0x83, 0x5e, 0x0f, 0xd7, 0x14, 0x54, 0x02, 0xe5, 0xe8, 0x64, 0x50, 0x2b, + 0x68, 0x67, 0xb0, 0x7a, 0xeb, 0xce, 0x43, 0x5b, 0x50, 0x4b, 0x6e, 0xbd, 0x73, 0xe9, 0xbf, 0xa3, + 0x8a, 0x57, 0x93, 0x38, 0xff, 0xd7, 0x40, 0x8f, 0xa1, 0x9c, 0x84, 0xc4, 0xb2, 0x6f, 0x02, 0x1f, + 0xb7, 0xcf, 0x5e, 0x8f, 0xcc, 0x60, 0x3c, 0xb9, 0x88, 0x66, 0xd9, 0x1e, 0x87, 0x2e, 0xf1, 0x2c, + 0x32, 0x1c, 0x11, 0xaf, 0x7d, 0xa9, 0x5f, 0x78, 0xa6, 0xd1, 0x66, 0x57, 0xb7, 0x2f, 0xee, 0xf7, + 0x0b, 0x95, 0x1d, 0xdf, 0xfd, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xd7, 0x09, 0xc0, 0xa2, 0x16, 0x08, + 0x00, 0x00, } diff --git a/protos/common/configtx.proto b/protos/common/configtx.proto index 3be84644be3..6844baae326 100644 --- a/protos/common/configtx.proto +++ b/protos/common/configtx.proto @@ -59,6 +59,16 @@ message ConfigTemplate { repeated ConfigItem items = 1; } +message ConfigGroupSchema { + map groups = 1; + map values = 2; + map policies = 3; +} + +message ConfigValueSchema {} + +message ConfigPolicySchema {} + // This message may change slightly depending on the finalization of signature schemes for transactions message Config { ChannelHeader header = 1;