diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1901748
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+#SPDX-License-Identifier: Apache-2.0
+
+.DS_Store
+*~
+*#
+.#*
+.*.sw*
diff --git a/.whitelist b/.whitelist
new file mode 100644
index 0000000..6ed303d
--- /dev/null
+++ b/.whitelist
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: Apache-2.0
+.gitignore
+.whitelist
+CODE_OF_CONDUCT.md
+CONTRIBUTING.md
+LICENSE
+README.md
+azure-pipelines.yml
+go.mod
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..279bbf7
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,7 @@
+Code of Conduct Guidelines
+==========================
+
+Please review the Hyperledger [Code of Conduct](https://wiki.hyperledger.org/community/hyperledger-project-code-of-conduct)
+before participating. It is important that we keep things civil.
+
+
This work is licensed under a Creative Commons Attribution 4.0 International License.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..e45e00c
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,7 @@
+## Contributing
+
+We welcome contributions to the Hyperledger Fabric Project in many forms, and there's always plenty to do!
+
+Please visit the [contributors guide](http://hyperledger-fabric.readthedocs.io/en/latest/CONTRIBUTING.html) in the docs to learn how to make contributions to this exciting project.
+
+
This work is licensed under a Creative Commons Attribution 4.0 International License.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a180f51
--- /dev/null
+++ b/README.md
@@ -0,0 +1,29 @@
+# Hyperledger Fabric gRPC and Protocol Buffer Bindings for go
+
+This repository contains the Hyperledger Fabric [grpc] service and [protocol
+buffer][protobuf] bindings for [go].
+
+## Community
+
+We welcome contributions to the Hyperledger Fabric project in many forms.
+There’s always plenty to do! Check the documentation on
+[how to contribute][contributing] to this project for the full details.
+
+- [Hyperledger Community](https://www.hyperledger.org/community)
+- [Hyperledger mailing lists and archives](http://lists.hyperledger.org/)
+- [Hyperledger Chat](http://chat.hyperledger.org/channel/fabric)
+- [Hyperledger Fabric Issue Tracking (JIRA)](https://jira.hyperledger.org/secure/Dashboard.jspa?selectPageId=10104)
+- [Hyperledger Fabric Wiki](https://wiki.hyperledger.org/display/Fabric)
+- [Hyperledger Wiki](https://wiki.hyperledger.org/)
+- [Hyperledger Code of Conduct](https://wiki.hyperledger.org/display/HYP/Hyperledger+Code+of+Conduct)
+
+## License
+
+Hyperledger Project source code files are made available under the Apache License, Version 2.0 (Apache-2.0), located in the [LICENSE](LICENSE) file. Hyperledger Project documentation files are made available under the Creative Commons Attribution 4.0 International License (CC-BY-4.0), available at http://creativecommons.org/licenses/by/4.0/.
+
+[contributing]: https://hyperledger-fabric.readthedocs.io/en/latest/CONTRIBUTING.html
+[go]: https://golang.org/
+[grpc]: https://grpc.io/docs/guides/
+[protobuf]: https://github.com/protocolbuffers/protobuf/
+[rocketchat-image]: https://open.rocket.chat/images/join-chat.svg
+[rocketchat-url]: https://chat.hyperledger.org/channel/fabric
diff --git a/common/collection.pb.go b/common/collection.pb.go
new file mode 100644
index 0000000..55c17e2
--- /dev/null
+++ b/common/collection.pb.go
@@ -0,0 +1,421 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: common/collection.proto
+
+package common
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// CollectionConfigPackage represents an array of CollectionConfig
+// messages; the extra struct is required because repeated oneof is
+// forbidden by the protobuf syntax
+type CollectionConfigPackage struct {
+ Config []*CollectionConfig `protobuf:"bytes,1,rep,name=config,proto3" json:"config,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CollectionConfigPackage) Reset() { *m = CollectionConfigPackage{} }
+func (m *CollectionConfigPackage) String() string { return proto.CompactTextString(m) }
+func (*CollectionConfigPackage) ProtoMessage() {}
+func (*CollectionConfigPackage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_89f245fc544906c7, []int{0}
+}
+
+func (m *CollectionConfigPackage) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CollectionConfigPackage.Unmarshal(m, b)
+}
+func (m *CollectionConfigPackage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CollectionConfigPackage.Marshal(b, m, deterministic)
+}
+func (m *CollectionConfigPackage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CollectionConfigPackage.Merge(m, src)
+}
+func (m *CollectionConfigPackage) XXX_Size() int {
+ return xxx_messageInfo_CollectionConfigPackage.Size(m)
+}
+func (m *CollectionConfigPackage) XXX_DiscardUnknown() {
+ xxx_messageInfo_CollectionConfigPackage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CollectionConfigPackage proto.InternalMessageInfo
+
+func (m *CollectionConfigPackage) GetConfig() []*CollectionConfig {
+ if m != nil {
+ return m.Config
+ }
+ return nil
+}
+
+// CollectionConfig defines the configuration of a collection object;
+// it currently contains a single, static type.
+// Dynamic collections are deferred.
+type CollectionConfig struct {
+ // Types that are valid to be assigned to Payload:
+ // *CollectionConfig_StaticCollectionConfig
+ Payload isCollectionConfig_Payload `protobuf_oneof:"payload"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CollectionConfig) Reset() { *m = CollectionConfig{} }
+func (m *CollectionConfig) String() string { return proto.CompactTextString(m) }
+func (*CollectionConfig) ProtoMessage() {}
+func (*CollectionConfig) Descriptor() ([]byte, []int) {
+ return fileDescriptor_89f245fc544906c7, []int{1}
+}
+
+func (m *CollectionConfig) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CollectionConfig.Unmarshal(m, b)
+}
+func (m *CollectionConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CollectionConfig.Marshal(b, m, deterministic)
+}
+func (m *CollectionConfig) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CollectionConfig.Merge(m, src)
+}
+func (m *CollectionConfig) XXX_Size() int {
+ return xxx_messageInfo_CollectionConfig.Size(m)
+}
+func (m *CollectionConfig) XXX_DiscardUnknown() {
+ xxx_messageInfo_CollectionConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CollectionConfig proto.InternalMessageInfo
+
+type isCollectionConfig_Payload interface {
+ isCollectionConfig_Payload()
+}
+
+type CollectionConfig_StaticCollectionConfig struct {
+ StaticCollectionConfig *StaticCollectionConfig `protobuf:"bytes,1,opt,name=static_collection_config,json=staticCollectionConfig,proto3,oneof"`
+}
+
+func (*CollectionConfig_StaticCollectionConfig) isCollectionConfig_Payload() {}
+
+func (m *CollectionConfig) GetPayload() isCollectionConfig_Payload {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+func (m *CollectionConfig) GetStaticCollectionConfig() *StaticCollectionConfig {
+ if x, ok := m.GetPayload().(*CollectionConfig_StaticCollectionConfig); ok {
+ return x.StaticCollectionConfig
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*CollectionConfig) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*CollectionConfig_StaticCollectionConfig)(nil),
+ }
+}
+
+// StaticCollectionConfig constitutes the configuration parameters of a
+// static collection object. Static collections are collections that are
+// known at chaincode instantiation time, and that cannot be changed.
+// Dynamic collections are deferred.
+type StaticCollectionConfig struct {
+ // the name of the collection inside the denoted chaincode
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // a reference to a policy residing / managed in the config block
+ // to define which orgs have access to this collection’s private data
+ MemberOrgsPolicy *CollectionPolicyConfig `protobuf:"bytes,2,opt,name=member_orgs_policy,json=memberOrgsPolicy,proto3" json:"member_orgs_policy,omitempty"`
+ // The minimum number of peers private data will be sent to upon
+ // endorsement. The endorsement would fail if dissemination to at least
+ // this number of peers is not achieved.
+ RequiredPeerCount int32 `protobuf:"varint,3,opt,name=required_peer_count,json=requiredPeerCount,proto3" json:"required_peer_count,omitempty"`
+ // The maximum number of peers that private data will be sent to
+ // upon endorsement. This number has to be bigger than required_peer_count.
+ MaximumPeerCount int32 `protobuf:"varint,4,opt,name=maximum_peer_count,json=maximumPeerCount,proto3" json:"maximum_peer_count,omitempty"`
+ // The number of blocks after which the collection data expires.
+ // For instance if the value is set to 10, a key last modified by block number 100
+ // will be purged at block number 111. A zero value is treated same as MaxUint64
+ BlockToLive uint64 `protobuf:"varint,5,opt,name=block_to_live,json=blockToLive,proto3" json:"block_to_live,omitempty"`
+ // The member only read access denotes whether only collection member clients
+ // can read the private data (if set to true), or even non members can
+ // read the data (if set to false, for example if you want to implement more granular
+ // access logic in the chaincode)
+ MemberOnlyRead bool `protobuf:"varint,6,opt,name=member_only_read,json=memberOnlyRead,proto3" json:"member_only_read,omitempty"`
+ // The member only write access denotes whether only collection member clients
+ // can write the private data (if set to true), or even non members can
+ // write the data (if set to false, for example if you want to implement more granular
+ // access logic in the chaincode)
+ MemberOnlyWrite bool `protobuf:"varint,7,opt,name=member_only_write,json=memberOnlyWrite,proto3" json:"member_only_write,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StaticCollectionConfig) Reset() { *m = StaticCollectionConfig{} }
+func (m *StaticCollectionConfig) String() string { return proto.CompactTextString(m) }
+func (*StaticCollectionConfig) ProtoMessage() {}
+func (*StaticCollectionConfig) Descriptor() ([]byte, []int) {
+ return fileDescriptor_89f245fc544906c7, []int{2}
+}
+
+func (m *StaticCollectionConfig) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StaticCollectionConfig.Unmarshal(m, b)
+}
+func (m *StaticCollectionConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StaticCollectionConfig.Marshal(b, m, deterministic)
+}
+func (m *StaticCollectionConfig) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StaticCollectionConfig.Merge(m, src)
+}
+func (m *StaticCollectionConfig) XXX_Size() int {
+ return xxx_messageInfo_StaticCollectionConfig.Size(m)
+}
+func (m *StaticCollectionConfig) XXX_DiscardUnknown() {
+ xxx_messageInfo_StaticCollectionConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StaticCollectionConfig proto.InternalMessageInfo
+
+func (m *StaticCollectionConfig) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *StaticCollectionConfig) GetMemberOrgsPolicy() *CollectionPolicyConfig {
+ if m != nil {
+ return m.MemberOrgsPolicy
+ }
+ return nil
+}
+
+func (m *StaticCollectionConfig) GetRequiredPeerCount() int32 {
+ if m != nil {
+ return m.RequiredPeerCount
+ }
+ return 0
+}
+
+func (m *StaticCollectionConfig) GetMaximumPeerCount() int32 {
+ if m != nil {
+ return m.MaximumPeerCount
+ }
+ return 0
+}
+
+func (m *StaticCollectionConfig) GetBlockToLive() uint64 {
+ if m != nil {
+ return m.BlockToLive
+ }
+ return 0
+}
+
+func (m *StaticCollectionConfig) GetMemberOnlyRead() bool {
+ if m != nil {
+ return m.MemberOnlyRead
+ }
+ return false
+}
+
+func (m *StaticCollectionConfig) GetMemberOnlyWrite() bool {
+ if m != nil {
+ return m.MemberOnlyWrite
+ }
+ return false
+}
+
+// Collection policy configuration. Initially, the configuration can only
+// contain a SignaturePolicy. In the future, the SignaturePolicy may be a
+// more general Policy. Instead of containing the actual policy, the
+// configuration may in the future contain a string reference to a policy.
+type CollectionPolicyConfig struct {
+ // Types that are valid to be assigned to Payload:
+ // *CollectionPolicyConfig_SignaturePolicy
+ Payload isCollectionPolicyConfig_Payload `protobuf_oneof:"payload"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CollectionPolicyConfig) Reset() { *m = CollectionPolicyConfig{} }
+func (m *CollectionPolicyConfig) String() string { return proto.CompactTextString(m) }
+func (*CollectionPolicyConfig) ProtoMessage() {}
+func (*CollectionPolicyConfig) Descriptor() ([]byte, []int) {
+ return fileDescriptor_89f245fc544906c7, []int{3}
+}
+
+func (m *CollectionPolicyConfig) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CollectionPolicyConfig.Unmarshal(m, b)
+}
+func (m *CollectionPolicyConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CollectionPolicyConfig.Marshal(b, m, deterministic)
+}
+func (m *CollectionPolicyConfig) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CollectionPolicyConfig.Merge(m, src)
+}
+func (m *CollectionPolicyConfig) XXX_Size() int {
+ return xxx_messageInfo_CollectionPolicyConfig.Size(m)
+}
+func (m *CollectionPolicyConfig) XXX_DiscardUnknown() {
+ xxx_messageInfo_CollectionPolicyConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CollectionPolicyConfig proto.InternalMessageInfo
+
+type isCollectionPolicyConfig_Payload interface {
+ isCollectionPolicyConfig_Payload()
+}
+
+type CollectionPolicyConfig_SignaturePolicy struct {
+ SignaturePolicy *SignaturePolicyEnvelope `protobuf:"bytes,1,opt,name=signature_policy,json=signaturePolicy,proto3,oneof"`
+}
+
+func (*CollectionPolicyConfig_SignaturePolicy) isCollectionPolicyConfig_Payload() {}
+
+func (m *CollectionPolicyConfig) GetPayload() isCollectionPolicyConfig_Payload {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+func (m *CollectionPolicyConfig) GetSignaturePolicy() *SignaturePolicyEnvelope {
+ if x, ok := m.GetPayload().(*CollectionPolicyConfig_SignaturePolicy); ok {
+ return x.SignaturePolicy
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*CollectionPolicyConfig) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*CollectionPolicyConfig_SignaturePolicy)(nil),
+ }
+}
+
+// CollectionCriteria defines an element of a private data that corresponds
+// to a certain transaction and collection
+type CollectionCriteria struct {
+ Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
+ TxId string `protobuf:"bytes,2,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
+ Collection string `protobuf:"bytes,3,opt,name=collection,proto3" json:"collection,omitempty"`
+ Namespace string `protobuf:"bytes,4,opt,name=namespace,proto3" json:"namespace,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CollectionCriteria) Reset() { *m = CollectionCriteria{} }
+func (m *CollectionCriteria) String() string { return proto.CompactTextString(m) }
+func (*CollectionCriteria) ProtoMessage() {}
+func (*CollectionCriteria) Descriptor() ([]byte, []int) {
+ return fileDescriptor_89f245fc544906c7, []int{4}
+}
+
+func (m *CollectionCriteria) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CollectionCriteria.Unmarshal(m, b)
+}
+func (m *CollectionCriteria) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CollectionCriteria.Marshal(b, m, deterministic)
+}
+func (m *CollectionCriteria) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CollectionCriteria.Merge(m, src)
+}
+func (m *CollectionCriteria) XXX_Size() int {
+ return xxx_messageInfo_CollectionCriteria.Size(m)
+}
+func (m *CollectionCriteria) XXX_DiscardUnknown() {
+ xxx_messageInfo_CollectionCriteria.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CollectionCriteria proto.InternalMessageInfo
+
+func (m *CollectionCriteria) GetChannel() string {
+ if m != nil {
+ return m.Channel
+ }
+ return ""
+}
+
+func (m *CollectionCriteria) GetTxId() string {
+ if m != nil {
+ return m.TxId
+ }
+ return ""
+}
+
+func (m *CollectionCriteria) GetCollection() string {
+ if m != nil {
+ return m.Collection
+ }
+ return ""
+}
+
+func (m *CollectionCriteria) GetNamespace() string {
+ if m != nil {
+ return m.Namespace
+ }
+ return ""
+}
+
+func init() {
+ proto.RegisterType((*CollectionConfigPackage)(nil), "common.CollectionConfigPackage")
+ proto.RegisterType((*CollectionConfig)(nil), "common.CollectionConfig")
+ proto.RegisterType((*StaticCollectionConfig)(nil), "common.StaticCollectionConfig")
+ proto.RegisterType((*CollectionPolicyConfig)(nil), "common.CollectionPolicyConfig")
+ proto.RegisterType((*CollectionCriteria)(nil), "common.CollectionCriteria")
+}
+
+func init() { proto.RegisterFile("common/collection.proto", fileDescriptor_89f245fc544906c7) }
+
+var fileDescriptor_89f245fc544906c7 = []byte{
+ // 501 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x93, 0xd1, 0x6e, 0xd3, 0x30,
+ 0x14, 0x86, 0x97, 0xad, 0x6b, 0xc9, 0xa9, 0x60, 0x9d, 0x27, 0xba, 0x08, 0xa1, 0x51, 0x55, 0x5c,
+ 0x44, 0x88, 0xa5, 0x68, 0xbc, 0xc1, 0x2a, 0xa4, 0x21, 0x2a, 0x51, 0x05, 0x04, 0xd2, 0x6e, 0x22,
+ 0xd7, 0x39, 0x4b, 0xad, 0x25, 0x76, 0xe6, 0xb8, 0xa5, 0xb9, 0xe4, 0x15, 0x79, 0x22, 0x54, 0x3b,
+ 0x69, 0xb2, 0xaa, 0x77, 0xf5, 0xff, 0x7f, 0xe7, 0xf4, 0xf8, 0xfc, 0x0e, 0x5c, 0x32, 0x99, 0x65,
+ 0x52, 0x4c, 0x98, 0x4c, 0x53, 0x64, 0x9a, 0x4b, 0x11, 0xe4, 0x4a, 0x6a, 0x49, 0xba, 0xd6, 0x78,
+ 0xf3, 0xba, 0x02, 0x72, 0x99, 0x72, 0xc6, 0xb1, 0xb0, 0xf6, 0xf8, 0x1b, 0x5c, 0x4e, 0x77, 0x25,
+ 0x53, 0x29, 0x1e, 0x78, 0x32, 0xa7, 0xec, 0x91, 0x26, 0x48, 0x3e, 0x41, 0x97, 0x19, 0xc1, 0x73,
+ 0x46, 0x27, 0x7e, 0xff, 0xc6, 0x0b, 0x6c, 0x8b, 0x60, 0xbf, 0x20, 0xac, 0xb8, 0x71, 0x09, 0x83,
+ 0x7d, 0x8f, 0xdc, 0x83, 0x57, 0x68, 0xaa, 0x39, 0x8b, 0x9a, 0xd1, 0xa2, 0x5d, 0x5f, 0xc7, 0xef,
+ 0xdf, 0x5c, 0xd5, 0x7d, 0x7f, 0x18, 0x6e, 0xbf, 0xc3, 0xdd, 0x51, 0x38, 0x2c, 0x0e, 0x3a, 0xb7,
+ 0x2e, 0xf4, 0x72, 0x5a, 0xa6, 0x92, 0xc6, 0xe3, 0x7f, 0xc7, 0x30, 0x3c, 0x5c, 0x4f, 0x08, 0x74,
+ 0x04, 0xcd, 0xd0, 0xfc, 0x9b, 0x1b, 0x9a, 0xdf, 0x64, 0x06, 0x24, 0xc3, 0x6c, 0x81, 0x2a, 0x92,
+ 0x2a, 0x29, 0x22, 0xb3, 0x94, 0xd2, 0x3b, 0x7e, 0x3e, 0x4f, 0xd3, 0x69, 0x6e, 0xfc, 0xea, 0xb6,
+ 0x03, 0x5b, 0xf9, 0x5d, 0x25, 0x85, 0xd5, 0x49, 0x00, 0x17, 0x0a, 0x9f, 0x56, 0x5c, 0x61, 0x1c,
+ 0xe5, 0x88, 0x2a, 0x62, 0x72, 0x25, 0xb4, 0x77, 0x32, 0x72, 0xfc, 0xd3, 0xf0, 0xbc, 0xb6, 0xe6,
+ 0x88, 0x6a, 0xba, 0x35, 0xc8, 0x47, 0x20, 0x19, 0xdd, 0xf0, 0x6c, 0x95, 0xb5, 0xf1, 0x8e, 0xc1,
+ 0x07, 0x95, 0xd3, 0xd0, 0x63, 0x78, 0xb9, 0x48, 0x25, 0x7b, 0x8c, 0xb4, 0x8c, 0x52, 0xbe, 0x46,
+ 0xef, 0x74, 0xe4, 0xf8, 0x9d, 0xb0, 0x6f, 0xc4, 0x9f, 0x72, 0xc6, 0xd7, 0x48, 0x7c, 0x18, 0xd4,
+ 0xf7, 0x11, 0x69, 0x19, 0x29, 0xa4, 0xb1, 0xd7, 0x1d, 0x39, 0xfe, 0x8b, 0xf0, 0x55, 0x35, 0xad,
+ 0x48, 0xcb, 0x10, 0x69, 0x4c, 0x3e, 0xc0, 0x79, 0x9b, 0xfc, 0xa3, 0xb8, 0x46, 0xaf, 0x67, 0xd0,
+ 0xb3, 0x06, 0xfd, 0xbd, 0x95, 0xc7, 0x4f, 0x30, 0x3c, 0xbc, 0x03, 0x32, 0x83, 0x41, 0xc1, 0x13,
+ 0x41, 0xf5, 0x4a, 0x61, 0xbd, 0x3d, 0x9b, 0xe6, 0xbb, 0x5d, 0x9a, 0xb5, 0x6f, 0x0b, 0xbf, 0x88,
+ 0x35, 0xa6, 0x32, 0xc7, 0xbb, 0xa3, 0xf0, 0xac, 0x78, 0x6e, 0xb5, 0x73, 0xfc, 0xeb, 0x00, 0x69,
+ 0x25, 0xb8, 0x1d, 0x43, 0x71, 0x4a, 0x3c, 0xe8, 0xb1, 0x25, 0x15, 0x02, 0xd3, 0x2a, 0xc6, 0xfa,
+ 0x48, 0x2e, 0xe0, 0x54, 0x6f, 0x22, 0x1e, 0x9b, 0xf0, 0xdc, 0xb0, 0xa3, 0x37, 0x5f, 0x63, 0x72,
+ 0x05, 0xd0, 0xbc, 0x36, 0x93, 0x83, 0x1b, 0xb6, 0x14, 0xf2, 0x16, 0xdc, 0xed, 0x33, 0x28, 0x72,
+ 0xca, 0xd0, 0xec, 0xdd, 0x0d, 0x1b, 0xe1, 0xf6, 0x17, 0xbc, 0x97, 0x2a, 0x09, 0x96, 0x65, 0x8e,
+ 0x2a, 0xc5, 0x38, 0x41, 0x15, 0x3c, 0xd0, 0x85, 0xe2, 0xcc, 0x7e, 0x33, 0x45, 0x75, 0xc3, 0xfb,
+ 0x20, 0xe1, 0x7a, 0xb9, 0x5a, 0x6c, 0x8f, 0x93, 0x16, 0x3c, 0xb1, 0xf0, 0xb5, 0x85, 0xaf, 0x13,
+ 0x39, 0xb1, 0xfc, 0xa2, 0x6b, 0x94, 0xcf, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x2c, 0xe6,
+ 0x2d, 0xac, 0x03, 0x00, 0x00,
+}
diff --git a/common/common.pb.go b/common/common.pb.go
new file mode 100644
index 0000000..5d40bcb
--- /dev/null
+++ b/common/common.pb.go
@@ -0,0 +1,928 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: common/common.proto
+
+package common
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ timestamp "github.com/golang/protobuf/ptypes/timestamp"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// These status codes are intended to resemble selected HTTP status codes
+type Status int32
+
+const (
+ Status_UNKNOWN Status = 0
+ Status_SUCCESS Status = 200
+ Status_BAD_REQUEST Status = 400
+ Status_FORBIDDEN Status = 403
+ Status_NOT_FOUND Status = 404
+ Status_REQUEST_ENTITY_TOO_LARGE Status = 413
+ Status_INTERNAL_SERVER_ERROR Status = 500
+ Status_NOT_IMPLEMENTED Status = 501
+ Status_SERVICE_UNAVAILABLE Status = 503
+)
+
+var Status_name = map[int32]string{
+ 0: "UNKNOWN",
+ 200: "SUCCESS",
+ 400: "BAD_REQUEST",
+ 403: "FORBIDDEN",
+ 404: "NOT_FOUND",
+ 413: "REQUEST_ENTITY_TOO_LARGE",
+ 500: "INTERNAL_SERVER_ERROR",
+ 501: "NOT_IMPLEMENTED",
+ 503: "SERVICE_UNAVAILABLE",
+}
+
+var Status_value = map[string]int32{
+ "UNKNOWN": 0,
+ "SUCCESS": 200,
+ "BAD_REQUEST": 400,
+ "FORBIDDEN": 403,
+ "NOT_FOUND": 404,
+ "REQUEST_ENTITY_TOO_LARGE": 413,
+ "INTERNAL_SERVER_ERROR": 500,
+ "NOT_IMPLEMENTED": 501,
+ "SERVICE_UNAVAILABLE": 503,
+}
+
+func (x Status) String() string {
+ return proto.EnumName(Status_name, int32(x))
+}
+
+func (Status) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{0}
+}
+
+type HeaderType int32
+
+const (
+ HeaderType_MESSAGE HeaderType = 0
+ HeaderType_CONFIG HeaderType = 1
+ HeaderType_CONFIG_UPDATE HeaderType = 2
+ HeaderType_ENDORSER_TRANSACTION HeaderType = 3
+ HeaderType_ORDERER_TRANSACTION HeaderType = 4
+ HeaderType_DELIVER_SEEK_INFO HeaderType = 5
+ HeaderType_CHAINCODE_PACKAGE HeaderType = 6
+ HeaderType_PEER_ADMIN_OPERATION HeaderType = 8
+)
+
+var HeaderType_name = map[int32]string{
+ 0: "MESSAGE",
+ 1: "CONFIG",
+ 2: "CONFIG_UPDATE",
+ 3: "ENDORSER_TRANSACTION",
+ 4: "ORDERER_TRANSACTION",
+ 5: "DELIVER_SEEK_INFO",
+ 6: "CHAINCODE_PACKAGE",
+ 8: "PEER_ADMIN_OPERATION",
+}
+
+var HeaderType_value = map[string]int32{
+ "MESSAGE": 0,
+ "CONFIG": 1,
+ "CONFIG_UPDATE": 2,
+ "ENDORSER_TRANSACTION": 3,
+ "ORDERER_TRANSACTION": 4,
+ "DELIVER_SEEK_INFO": 5,
+ "CHAINCODE_PACKAGE": 6,
+ "PEER_ADMIN_OPERATION": 8,
+}
+
+func (x HeaderType) String() string {
+ return proto.EnumName(HeaderType_name, int32(x))
+}
+
+func (HeaderType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{1}
+}
+
+// This enum enlists indexes of the block metadata array
+type BlockMetadataIndex int32
+
+const (
+ BlockMetadataIndex_SIGNATURES BlockMetadataIndex = 0
+ BlockMetadataIndex_LAST_CONFIG BlockMetadataIndex = 1
+ BlockMetadataIndex_TRANSACTIONS_FILTER BlockMetadataIndex = 2
+ BlockMetadataIndex_ORDERER BlockMetadataIndex = 3 // Deprecated: Do not use.
+ BlockMetadataIndex_COMMIT_HASH BlockMetadataIndex = 4
+)
+
+var BlockMetadataIndex_name = map[int32]string{
+ 0: "SIGNATURES",
+ 1: "LAST_CONFIG",
+ 2: "TRANSACTIONS_FILTER",
+ 3: "ORDERER",
+ 4: "COMMIT_HASH",
+}
+
+var BlockMetadataIndex_value = map[string]int32{
+ "SIGNATURES": 0,
+ "LAST_CONFIG": 1,
+ "TRANSACTIONS_FILTER": 2,
+ "ORDERER": 3,
+ "COMMIT_HASH": 4,
+}
+
+func (x BlockMetadataIndex) String() string {
+ return proto.EnumName(BlockMetadataIndex_name, int32(x))
+}
+
+func (BlockMetadataIndex) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{2}
+}
+
+// LastConfig is the encoded value for the Metadata message which is encoded in the LAST_CONFIGURATION block metadata index
+type LastConfig struct {
+ Index uint64 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *LastConfig) Reset() { *m = LastConfig{} }
+func (m *LastConfig) String() string { return proto.CompactTextString(m) }
+func (*LastConfig) ProtoMessage() {}
+func (*LastConfig) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{0}
+}
+
+func (m *LastConfig) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_LastConfig.Unmarshal(m, b)
+}
+func (m *LastConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_LastConfig.Marshal(b, m, deterministic)
+}
+func (m *LastConfig) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_LastConfig.Merge(m, src)
+}
+func (m *LastConfig) XXX_Size() int {
+ return xxx_messageInfo_LastConfig.Size(m)
+}
+func (m *LastConfig) XXX_DiscardUnknown() {
+ xxx_messageInfo_LastConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_LastConfig proto.InternalMessageInfo
+
+func (m *LastConfig) GetIndex() uint64 {
+ if m != nil {
+ return m.Index
+ }
+ return 0
+}
+
+// Metadata is a common structure to be used to encode block metadata
+type Metadata struct {
+ Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
+ Signatures []*MetadataSignature `protobuf:"bytes,2,rep,name=signatures,proto3" json:"signatures,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Metadata) Reset() { *m = Metadata{} }
+func (m *Metadata) String() string { return proto.CompactTextString(m) }
+func (*Metadata) ProtoMessage() {}
+func (*Metadata) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{1}
+}
+
+func (m *Metadata) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Metadata.Unmarshal(m, b)
+}
+func (m *Metadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Metadata.Marshal(b, m, deterministic)
+}
+func (m *Metadata) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Metadata.Merge(m, src)
+}
+func (m *Metadata) XXX_Size() int {
+ return xxx_messageInfo_Metadata.Size(m)
+}
+func (m *Metadata) XXX_DiscardUnknown() {
+ xxx_messageInfo_Metadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Metadata proto.InternalMessageInfo
+
+func (m *Metadata) GetValue() []byte {
+ if m != nil {
+ return m.Value
+ }
+ return nil
+}
+
+func (m *Metadata) GetSignatures() []*MetadataSignature {
+ if m != nil {
+ return m.Signatures
+ }
+ return nil
+}
+
+type MetadataSignature struct {
+ SignatureHeader []byte `protobuf:"bytes,1,opt,name=signature_header,json=signatureHeader,proto3" json:"signature_header,omitempty"`
+ Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MetadataSignature) Reset() { *m = MetadataSignature{} }
+func (m *MetadataSignature) String() string { return proto.CompactTextString(m) }
+func (*MetadataSignature) ProtoMessage() {}
+func (*MetadataSignature) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{2}
+}
+
+func (m *MetadataSignature) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MetadataSignature.Unmarshal(m, b)
+}
+func (m *MetadataSignature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MetadataSignature.Marshal(b, m, deterministic)
+}
+func (m *MetadataSignature) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MetadataSignature.Merge(m, src)
+}
+func (m *MetadataSignature) XXX_Size() int {
+ return xxx_messageInfo_MetadataSignature.Size(m)
+}
+func (m *MetadataSignature) XXX_DiscardUnknown() {
+ xxx_messageInfo_MetadataSignature.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MetadataSignature proto.InternalMessageInfo
+
+func (m *MetadataSignature) GetSignatureHeader() []byte {
+ if m != nil {
+ return m.SignatureHeader
+ }
+ return nil
+}
+
+func (m *MetadataSignature) GetSignature() []byte {
+ if m != nil {
+ return m.Signature
+ }
+ return nil
+}
+
+type Header struct {
+ ChannelHeader []byte `protobuf:"bytes,1,opt,name=channel_header,json=channelHeader,proto3" json:"channel_header,omitempty"`
+ SignatureHeader []byte `protobuf:"bytes,2,opt,name=signature_header,json=signatureHeader,proto3" json:"signature_header,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Header) Reset() { *m = Header{} }
+func (m *Header) String() string { return proto.CompactTextString(m) }
+func (*Header) ProtoMessage() {}
+func (*Header) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{3}
+}
+
+func (m *Header) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Header.Unmarshal(m, b)
+}
+func (m *Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Header.Marshal(b, m, deterministic)
+}
+func (m *Header) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Header.Merge(m, src)
+}
+func (m *Header) XXX_Size() int {
+ return xxx_messageInfo_Header.Size(m)
+}
+func (m *Header) XXX_DiscardUnknown() {
+ xxx_messageInfo_Header.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Header proto.InternalMessageInfo
+
+func (m *Header) GetChannelHeader() []byte {
+ if m != nil {
+ return m.ChannelHeader
+ }
+ return nil
+}
+
+func (m *Header) GetSignatureHeader() []byte {
+ if m != nil {
+ return m.SignatureHeader
+ }
+ return nil
+}
+
+// Header is a generic replay prevention and identity message to include in a signed payload
+type ChannelHeader struct {
+ Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
+ // Version indicates message protocol version
+ Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
+ // Timestamp is the local time when the message was created
+ // by the sender
+ Timestamp *timestamp.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+ // Identifier of the channel this message is bound for
+ ChannelId string `protobuf:"bytes,4,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
+ // An unique identifier that is used end-to-end.
+ // - set by higher layers such as end user or SDK
+ // - passed to the endorser (which will check for uniqueness)
+ // - as the header is passed along unchanged, it will be
+ // be retrieved by the committer (uniqueness check here as well)
+ // - to be stored in the ledger
+ TxId string `protobuf:"bytes,5,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
+ // The epoch in which this header was generated, where epoch is defined based on block height
+ // Epoch in which the response has been generated. This field identifies a
+ // logical window of time. A proposal response is accepted by a peer only if
+ // two conditions hold:
+ // 1. the epoch specified in the message is the current epoch
+ // 2. this message has been only seen once during this epoch (i.e. it hasn't
+ // been replayed)
+ Epoch uint64 `protobuf:"varint,6,opt,name=epoch,proto3" json:"epoch,omitempty"`
+ // Extension that may be attached based on the header type
+ Extension []byte `protobuf:"bytes,7,opt,name=extension,proto3" json:"extension,omitempty"`
+ // If mutual TLS is employed, this represents
+ // the hash of the client's TLS certificate
+ TlsCertHash []byte `protobuf:"bytes,8,opt,name=tls_cert_hash,json=tlsCertHash,proto3" json:"tls_cert_hash,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChannelHeader) Reset() { *m = ChannelHeader{} }
+func (m *ChannelHeader) String() string { return proto.CompactTextString(m) }
+func (*ChannelHeader) ProtoMessage() {}
+func (*ChannelHeader) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{4}
+}
+
+func (m *ChannelHeader) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChannelHeader.Unmarshal(m, b)
+}
+func (m *ChannelHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChannelHeader.Marshal(b, m, deterministic)
+}
+func (m *ChannelHeader) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChannelHeader.Merge(m, src)
+}
+func (m *ChannelHeader) XXX_Size() int {
+ return xxx_messageInfo_ChannelHeader.Size(m)
+}
+func (m *ChannelHeader) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChannelHeader.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChannelHeader proto.InternalMessageInfo
+
+func (m *ChannelHeader) GetType() int32 {
+ if m != nil {
+ return m.Type
+ }
+ return 0
+}
+
+func (m *ChannelHeader) GetVersion() int32 {
+ if m != nil {
+ return m.Version
+ }
+ return 0
+}
+
+func (m *ChannelHeader) GetTimestamp() *timestamp.Timestamp {
+ if m != nil {
+ return m.Timestamp
+ }
+ return nil
+}
+
+func (m *ChannelHeader) GetChannelId() string {
+ if m != nil {
+ return m.ChannelId
+ }
+ return ""
+}
+
+func (m *ChannelHeader) GetTxId() string {
+ if m != nil {
+ return m.TxId
+ }
+ return ""
+}
+
+func (m *ChannelHeader) GetEpoch() uint64 {
+ if m != nil {
+ return m.Epoch
+ }
+ return 0
+}
+
+func (m *ChannelHeader) GetExtension() []byte {
+ if m != nil {
+ return m.Extension
+ }
+ return nil
+}
+
+func (m *ChannelHeader) GetTlsCertHash() []byte {
+ if m != nil {
+ return m.TlsCertHash
+ }
+ return nil
+}
+
+type SignatureHeader struct {
+ // Creator of the message, a marshaled msp.SerializedIdentity
+ Creator []byte `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"`
+ // Arbitrary number that may only be used once. Can be used to detect replay attacks.
+ Nonce []byte `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SignatureHeader) Reset() { *m = SignatureHeader{} }
+func (m *SignatureHeader) String() string { return proto.CompactTextString(m) }
+func (*SignatureHeader) ProtoMessage() {}
+func (*SignatureHeader) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{5}
+}
+
+func (m *SignatureHeader) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SignatureHeader.Unmarshal(m, b)
+}
+func (m *SignatureHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SignatureHeader.Marshal(b, m, deterministic)
+}
+func (m *SignatureHeader) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SignatureHeader.Merge(m, src)
+}
+func (m *SignatureHeader) XXX_Size() int {
+ return xxx_messageInfo_SignatureHeader.Size(m)
+}
+func (m *SignatureHeader) XXX_DiscardUnknown() {
+ xxx_messageInfo_SignatureHeader.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SignatureHeader proto.InternalMessageInfo
+
+func (m *SignatureHeader) GetCreator() []byte {
+ if m != nil {
+ return m.Creator
+ }
+ return nil
+}
+
+func (m *SignatureHeader) GetNonce() []byte {
+ if m != nil {
+ return m.Nonce
+ }
+ return nil
+}
+
+// Payload is the message contents (and header to allow for signing)
+type Payload struct {
+ // Header is included to provide identity and prevent replay
+ Header *Header `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
+ // Data, the encoding of which is defined by the type in the header
+ Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Payload) Reset() { *m = Payload{} }
+func (m *Payload) String() string { return proto.CompactTextString(m) }
+func (*Payload) ProtoMessage() {}
+func (*Payload) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{6}
+}
+
+func (m *Payload) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Payload.Unmarshal(m, b)
+}
+func (m *Payload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Payload.Marshal(b, m, deterministic)
+}
+func (m *Payload) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Payload.Merge(m, src)
+}
+func (m *Payload) XXX_Size() int {
+ return xxx_messageInfo_Payload.Size(m)
+}
+func (m *Payload) XXX_DiscardUnknown() {
+ xxx_messageInfo_Payload.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Payload proto.InternalMessageInfo
+
+func (m *Payload) GetHeader() *Header {
+ if m != nil {
+ return m.Header
+ }
+ return nil
+}
+
+func (m *Payload) GetData() []byte {
+ if m != nil {
+ return m.Data
+ }
+ return nil
+}
+
+// Envelope wraps a Payload with a signature so that the message may be authenticated
+type Envelope struct {
+ // A marshaled Payload
+ Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
+ // A signature by the creator specified in the Payload header
+ Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Envelope) Reset() { *m = Envelope{} }
+func (m *Envelope) String() string { return proto.CompactTextString(m) }
+func (*Envelope) ProtoMessage() {}
+func (*Envelope) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{7}
+}
+
+func (m *Envelope) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Envelope.Unmarshal(m, b)
+}
+func (m *Envelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Envelope.Marshal(b, m, deterministic)
+}
+func (m *Envelope) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Envelope.Merge(m, src)
+}
+func (m *Envelope) XXX_Size() int {
+ return xxx_messageInfo_Envelope.Size(m)
+}
+func (m *Envelope) XXX_DiscardUnknown() {
+ xxx_messageInfo_Envelope.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Envelope proto.InternalMessageInfo
+
+func (m *Envelope) GetPayload() []byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+func (m *Envelope) GetSignature() []byte {
+ if m != nil {
+ return m.Signature
+ }
+ return nil
+}
+
+// This is finalized block structure to be shared among the orderer and peer
+// Note that the BlockHeader chains to the previous BlockHeader, and the BlockData hash is embedded
+// in the BlockHeader. This makes it natural and obvious that the Data is included in the hash, but
+// the Metadata is not.
+type Block struct {
+ Header *BlockHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
+ Data *BlockData `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
+ Metadata *BlockMetadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Block) Reset() { *m = Block{} }
+func (m *Block) String() string { return proto.CompactTextString(m) }
+func (*Block) ProtoMessage() {}
+func (*Block) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{8}
+}
+
+func (m *Block) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Block.Unmarshal(m, b)
+}
+func (m *Block) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Block.Marshal(b, m, deterministic)
+}
+func (m *Block) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Block.Merge(m, src)
+}
+func (m *Block) XXX_Size() int {
+ return xxx_messageInfo_Block.Size(m)
+}
+func (m *Block) XXX_DiscardUnknown() {
+ xxx_messageInfo_Block.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Block proto.InternalMessageInfo
+
+func (m *Block) GetHeader() *BlockHeader {
+ if m != nil {
+ return m.Header
+ }
+ return nil
+}
+
+func (m *Block) GetData() *BlockData {
+ if m != nil {
+ return m.Data
+ }
+ return nil
+}
+
+func (m *Block) GetMetadata() *BlockMetadata {
+ if m != nil {
+ return m.Metadata
+ }
+ return nil
+}
+
+// BlockHeader is the element of the block which forms the block chain
+// The block header is hashed using the configured chain hashing algorithm
+// over the ASN.1 encoding of the BlockHeader
+type BlockHeader struct {
+ Number uint64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
+ PreviousHash []byte `protobuf:"bytes,2,opt,name=previous_hash,json=previousHash,proto3" json:"previous_hash,omitempty"`
+ DataHash []byte `protobuf:"bytes,3,opt,name=data_hash,json=dataHash,proto3" json:"data_hash,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *BlockHeader) Reset() { *m = BlockHeader{} }
+func (m *BlockHeader) String() string { return proto.CompactTextString(m) }
+func (*BlockHeader) ProtoMessage() {}
+func (*BlockHeader) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{9}
+}
+
+func (m *BlockHeader) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_BlockHeader.Unmarshal(m, b)
+}
+func (m *BlockHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_BlockHeader.Marshal(b, m, deterministic)
+}
+func (m *BlockHeader) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BlockHeader.Merge(m, src)
+}
+func (m *BlockHeader) XXX_Size() int {
+ return xxx_messageInfo_BlockHeader.Size(m)
+}
+func (m *BlockHeader) XXX_DiscardUnknown() {
+ xxx_messageInfo_BlockHeader.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_BlockHeader proto.InternalMessageInfo
+
+func (m *BlockHeader) GetNumber() uint64 {
+ if m != nil {
+ return m.Number
+ }
+ return 0
+}
+
+func (m *BlockHeader) GetPreviousHash() []byte {
+ if m != nil {
+ return m.PreviousHash
+ }
+ return nil
+}
+
+func (m *BlockHeader) GetDataHash() []byte {
+ if m != nil {
+ return m.DataHash
+ }
+ return nil
+}
+
+type BlockData struct {
+ Data [][]byte `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *BlockData) Reset() { *m = BlockData{} }
+func (m *BlockData) String() string { return proto.CompactTextString(m) }
+func (*BlockData) ProtoMessage() {}
+func (*BlockData) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{10}
+}
+
+func (m *BlockData) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_BlockData.Unmarshal(m, b)
+}
+func (m *BlockData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_BlockData.Marshal(b, m, deterministic)
+}
+func (m *BlockData) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BlockData.Merge(m, src)
+}
+func (m *BlockData) XXX_Size() int {
+ return xxx_messageInfo_BlockData.Size(m)
+}
+func (m *BlockData) XXX_DiscardUnknown() {
+ xxx_messageInfo_BlockData.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_BlockData proto.InternalMessageInfo
+
+func (m *BlockData) GetData() [][]byte {
+ if m != nil {
+ return m.Data
+ }
+ return nil
+}
+
+type BlockMetadata struct {
+ Metadata [][]byte `protobuf:"bytes,1,rep,name=metadata,proto3" json:"metadata,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *BlockMetadata) Reset() { *m = BlockMetadata{} }
+func (m *BlockMetadata) String() string { return proto.CompactTextString(m) }
+func (*BlockMetadata) ProtoMessage() {}
+func (*BlockMetadata) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{11}
+}
+
+func (m *BlockMetadata) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_BlockMetadata.Unmarshal(m, b)
+}
+func (m *BlockMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_BlockMetadata.Marshal(b, m, deterministic)
+}
+func (m *BlockMetadata) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BlockMetadata.Merge(m, src)
+}
+func (m *BlockMetadata) XXX_Size() int {
+ return xxx_messageInfo_BlockMetadata.Size(m)
+}
+func (m *BlockMetadata) XXX_DiscardUnknown() {
+ xxx_messageInfo_BlockMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_BlockMetadata proto.InternalMessageInfo
+
+func (m *BlockMetadata) GetMetadata() [][]byte {
+ if m != nil {
+ return m.Metadata
+ }
+ return nil
+}
+
+// OrdererBlockMetadata defines metadata that is set by the ordering service.
+type OrdererBlockMetadata struct {
+ LastConfig *LastConfig `protobuf:"bytes,1,opt,name=last_config,json=lastConfig,proto3" json:"last_config,omitempty"`
+ ConsenterMetadata []byte `protobuf:"bytes,2,opt,name=consenter_metadata,json=consenterMetadata,proto3" json:"consenter_metadata,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *OrdererBlockMetadata) Reset() { *m = OrdererBlockMetadata{} }
+func (m *OrdererBlockMetadata) String() string { return proto.CompactTextString(m) }
+func (*OrdererBlockMetadata) ProtoMessage() {}
+func (*OrdererBlockMetadata) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8f954d82c0b891f6, []int{12}
+}
+
+func (m *OrdererBlockMetadata) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_OrdererBlockMetadata.Unmarshal(m, b)
+}
+func (m *OrdererBlockMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_OrdererBlockMetadata.Marshal(b, m, deterministic)
+}
+func (m *OrdererBlockMetadata) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OrdererBlockMetadata.Merge(m, src)
+}
+func (m *OrdererBlockMetadata) XXX_Size() int {
+ return xxx_messageInfo_OrdererBlockMetadata.Size(m)
+}
+func (m *OrdererBlockMetadata) XXX_DiscardUnknown() {
+ xxx_messageInfo_OrdererBlockMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_OrdererBlockMetadata proto.InternalMessageInfo
+
+func (m *OrdererBlockMetadata) GetLastConfig() *LastConfig {
+ if m != nil {
+ return m.LastConfig
+ }
+ return nil
+}
+
+func (m *OrdererBlockMetadata) GetConsenterMetadata() []byte {
+ if m != nil {
+ return m.ConsenterMetadata
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterEnum("common.Status", Status_name, Status_value)
+ proto.RegisterEnum("common.HeaderType", HeaderType_name, HeaderType_value)
+ proto.RegisterEnum("common.BlockMetadataIndex", BlockMetadataIndex_name, BlockMetadataIndex_value)
+ proto.RegisterType((*LastConfig)(nil), "common.LastConfig")
+ proto.RegisterType((*Metadata)(nil), "common.Metadata")
+ proto.RegisterType((*MetadataSignature)(nil), "common.MetadataSignature")
+ proto.RegisterType((*Header)(nil), "common.Header")
+ proto.RegisterType((*ChannelHeader)(nil), "common.ChannelHeader")
+ proto.RegisterType((*SignatureHeader)(nil), "common.SignatureHeader")
+ proto.RegisterType((*Payload)(nil), "common.Payload")
+ proto.RegisterType((*Envelope)(nil), "common.Envelope")
+ proto.RegisterType((*Block)(nil), "common.Block")
+ proto.RegisterType((*BlockHeader)(nil), "common.BlockHeader")
+ proto.RegisterType((*BlockData)(nil), "common.BlockData")
+ proto.RegisterType((*BlockMetadata)(nil), "common.BlockMetadata")
+ proto.RegisterType((*OrdererBlockMetadata)(nil), "common.OrdererBlockMetadata")
+}
+
+func init() { proto.RegisterFile("common/common.proto", fileDescriptor_8f954d82c0b891f6) }
+
+var fileDescriptor_8f954d82c0b891f6 = []byte{
+ // 1054 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x95, 0xdf, 0x6e, 0xe3, 0xc4,
+ 0x17, 0xc7, 0x37, 0x71, 0xfe, 0x9e, 0x6c, 0x5a, 0x67, 0xd2, 0xfe, 0xd6, 0xbf, 0xc2, 0x6a, 0x2b,
+ 0xc3, 0xa2, 0xd2, 0x55, 0x53, 0xd1, 0xbd, 0x81, 0x4b, 0xc7, 0x9e, 0xb6, 0x56, 0x13, 0x3b, 0x8c,
+ 0x9d, 0x22, 0x16, 0xa4, 0x91, 0x9b, 0x4c, 0x93, 0x08, 0xc7, 0x8e, 0xec, 0x49, 0xd5, 0x72, 0xcb,
+ 0x3d, 0x42, 0x82, 0x5b, 0xde, 0x85, 0x4b, 0x1e, 0x85, 0x07, 0x00, 0x71, 0x8b, 0xec, 0xb1, 0xdd,
+ 0xa4, 0xac, 0xc4, 0x55, 0xe6, 0x9c, 0xf9, 0xcc, 0x39, 0xdf, 0x73, 0xce, 0x64, 0x0c, 0xdd, 0x49,
+ 0xb8, 0x5c, 0x86, 0xc1, 0xa9, 0xf8, 0xe9, 0xad, 0xa2, 0x90, 0x87, 0xa8, 0x26, 0xac, 0x83, 0x57,
+ 0xb3, 0x30, 0x9c, 0xf9, 0xec, 0x34, 0xf5, 0xde, 0xac, 0x6f, 0x4f, 0xf9, 0x62, 0xc9, 0x62, 0xee,
+ 0x2d, 0x57, 0x02, 0x54, 0x55, 0x80, 0x81, 0x17, 0x73, 0x3d, 0x0c, 0x6e, 0x17, 0x33, 0xb4, 0x07,
+ 0xd5, 0x45, 0x30, 0x65, 0xf7, 0x4a, 0xe9, 0xb0, 0x74, 0x54, 0x21, 0xc2, 0x50, 0xbf, 0x81, 0xc6,
+ 0x90, 0x71, 0x6f, 0xea, 0x71, 0x2f, 0x21, 0xee, 0x3c, 0x7f, 0xcd, 0x52, 0xe2, 0x39, 0x11, 0x06,
+ 0xfa, 0x02, 0x20, 0x5e, 0xcc, 0x02, 0x8f, 0xaf, 0x23, 0x16, 0x2b, 0xe5, 0x43, 0xe9, 0xa8, 0x75,
+ 0xf6, 0xff, 0x5e, 0xa6, 0x28, 0x3f, 0xeb, 0xe4, 0x04, 0xd9, 0x80, 0xd5, 0x6f, 0xa1, 0xf3, 0x2f,
+ 0x00, 0x7d, 0x0a, 0x72, 0x81, 0xd0, 0x39, 0xf3, 0xa6, 0x2c, 0xca, 0x12, 0xee, 0x16, 0xfe, 0xcb,
+ 0xd4, 0x8d, 0x3e, 0x84, 0x66, 0xe1, 0x52, 0xca, 0x29, 0xf3, 0xe8, 0x50, 0xdf, 0x41, 0x2d, 0xe3,
+ 0x5e, 0xc3, 0xce, 0x64, 0xee, 0x05, 0x01, 0xf3, 0xb7, 0x03, 0xb6, 0x33, 0x6f, 0x86, 0xbd, 0x2f,
+ 0x73, 0xf9, 0xbd, 0x99, 0xd5, 0x1f, 0xca, 0xd0, 0xd6, 0xb7, 0x0e, 0x23, 0xa8, 0xf0, 0x87, 0x95,
+ 0xe8, 0x4d, 0x95, 0xa4, 0x6b, 0xa4, 0x40, 0xfd, 0x8e, 0x45, 0xf1, 0x22, 0x0c, 0xd2, 0x38, 0x55,
+ 0x92, 0x9b, 0xe8, 0x73, 0x68, 0x16, 0xd3, 0x50, 0xa4, 0xc3, 0xd2, 0x51, 0xeb, 0xec, 0xa0, 0x27,
+ 0xe6, 0xd5, 0xcb, 0xe7, 0xd5, 0x73, 0x73, 0x82, 0x3c, 0xc2, 0xe8, 0x25, 0x40, 0x5e, 0xcb, 0x62,
+ 0xaa, 0x54, 0x0e, 0x4b, 0x47, 0x4d, 0xd2, 0xcc, 0x3c, 0xe6, 0x14, 0x75, 0xa1, 0xca, 0xef, 0x93,
+ 0x9d, 0x6a, 0xba, 0x53, 0xe1, 0xf7, 0xe6, 0x34, 0x19, 0x1c, 0x5b, 0x85, 0x93, 0xb9, 0x52, 0x13,
+ 0xa3, 0x4d, 0x8d, 0xa4, 0x7b, 0xec, 0x9e, 0xb3, 0x20, 0xd5, 0x57, 0x17, 0xdd, 0x2b, 0x1c, 0x48,
+ 0x85, 0x36, 0xf7, 0x63, 0x3a, 0x61, 0x11, 0xa7, 0x73, 0x2f, 0x9e, 0x2b, 0x8d, 0x94, 0x68, 0x71,
+ 0x3f, 0xd6, 0x59, 0xc4, 0x2f, 0xbd, 0x78, 0xae, 0x6a, 0xb0, 0xeb, 0x3c, 0x19, 0x89, 0x02, 0xf5,
+ 0x49, 0xc4, 0x3c, 0x1e, 0xe6, 0x3d, 0xce, 0xcd, 0x44, 0x44, 0x10, 0x06, 0x93, 0x7c, 0x50, 0xc2,
+ 0x50, 0x31, 0xd4, 0x47, 0xde, 0x83, 0x1f, 0x7a, 0x53, 0xf4, 0x09, 0xd4, 0x36, 0xa6, 0xd3, 0x3a,
+ 0xdb, 0xc9, 0x2f, 0x91, 0x08, 0x4d, 0xb2, 0xdd, 0xa4, 0xd3, 0xc9, 0x8d, 0xc9, 0xe2, 0xa4, 0x6b,
+ 0xb5, 0x0f, 0x0d, 0x1c, 0xdc, 0x31, 0x3f, 0x14, 0x5d, 0x5f, 0x89, 0x90, 0xb9, 0x84, 0xcc, 0xfc,
+ 0x8f, 0xfb, 0xf2, 0x63, 0x09, 0xaa, 0x7d, 0x3f, 0x9c, 0x7c, 0x87, 0xde, 0x3c, 0x51, 0xd2, 0xcd,
+ 0x95, 0xa4, 0xdb, 0x4f, 0xe4, 0xbc, 0xde, 0x90, 0xd3, 0x3a, 0xeb, 0x6c, 0xa1, 0x86, 0xc7, 0x3d,
+ 0xa1, 0x10, 0x7d, 0x06, 0x8d, 0x65, 0x76, 0xd7, 0xb3, 0x81, 0xef, 0x6f, 0xa1, 0xf9, 0x1f, 0x81,
+ 0x14, 0x98, 0x3a, 0x83, 0xd6, 0x46, 0x42, 0xf4, 0x3f, 0xa8, 0x05, 0xeb, 0xe5, 0x4d, 0xa6, 0xaa,
+ 0x42, 0x32, 0x0b, 0x7d, 0x04, 0xed, 0x55, 0xc4, 0xee, 0x16, 0xe1, 0x3a, 0x16, 0x93, 0x12, 0x95,
+ 0x3d, 0xcf, 0x9d, 0xc9, 0xa8, 0xd0, 0x07, 0xd0, 0x4c, 0x62, 0x0a, 0x40, 0x4a, 0x81, 0x46, 0xe2,
+ 0x48, 0xe7, 0xf8, 0x0a, 0x9a, 0x85, 0xdc, 0xa2, 0xbd, 0xa5, 0x43, 0xa9, 0x68, 0xef, 0x1b, 0x68,
+ 0x6f, 0x89, 0x44, 0x07, 0x1b, 0xd5, 0x08, 0xf0, 0x51, 0xf6, 0xf7, 0xb0, 0x67, 0x47, 0x53, 0x16,
+ 0xb1, 0x68, 0xfb, 0xcc, 0x5b, 0x68, 0xf9, 0x5e, 0xcc, 0xe9, 0x24, 0x7d, 0x6f, 0xb2, 0xd6, 0xa2,
+ 0xbc, 0x09, 0x8f, 0x2f, 0x11, 0x01, 0xff, 0xf1, 0x55, 0x3a, 0x01, 0x34, 0x09, 0x83, 0x98, 0x05,
+ 0x9c, 0x45, 0xb4, 0x48, 0x29, 0x2a, 0xec, 0x14, 0x3b, 0x79, 0x8e, 0xe3, 0xdf, 0x4a, 0x50, 0x73,
+ 0xb8, 0xc7, 0xd7, 0x31, 0x6a, 0x41, 0x7d, 0x6c, 0x5d, 0x59, 0xf6, 0x57, 0x96, 0xfc, 0x0c, 0x3d,
+ 0x87, 0xba, 0x33, 0xd6, 0x75, 0xec, 0x38, 0xf2, 0xef, 0x25, 0x24, 0x43, 0xab, 0xaf, 0x19, 0x94,
+ 0xe0, 0x2f, 0xc7, 0xd8, 0x71, 0xe5, 0x9f, 0x24, 0xb4, 0x03, 0xcd, 0x73, 0x9b, 0xf4, 0x4d, 0xc3,
+ 0xc0, 0x96, 0xfc, 0x73, 0x6a, 0x5b, 0xb6, 0x4b, 0xcf, 0xed, 0xb1, 0x65, 0xc8, 0xbf, 0x48, 0xe8,
+ 0x25, 0x28, 0x19, 0x4d, 0xb1, 0xe5, 0x9a, 0xee, 0xd7, 0xd4, 0xb5, 0x6d, 0x3a, 0xd0, 0xc8, 0x05,
+ 0x96, 0x7f, 0x95, 0xd0, 0x01, 0xec, 0x9b, 0x96, 0x8b, 0x89, 0xa5, 0x0d, 0xa8, 0x83, 0xc9, 0x35,
+ 0x26, 0x14, 0x13, 0x62, 0x13, 0xf9, 0x4f, 0x09, 0xed, 0xc1, 0x6e, 0x12, 0xca, 0x1c, 0x8e, 0x06,
+ 0x78, 0x88, 0x2d, 0x17, 0x1b, 0xf2, 0x5f, 0x12, 0x52, 0xa0, 0x9b, 0x80, 0xa6, 0x8e, 0xe9, 0xd8,
+ 0xd2, 0xae, 0x35, 0x73, 0xa0, 0xf5, 0x07, 0x58, 0xfe, 0x5b, 0x3a, 0xfe, 0xa3, 0x04, 0x20, 0x26,
+ 0xee, 0x26, 0x6f, 0x48, 0x0b, 0xea, 0x43, 0xec, 0x38, 0xda, 0x05, 0x96, 0x9f, 0x21, 0x80, 0x9a,
+ 0x6e, 0x5b, 0xe7, 0xe6, 0x85, 0x5c, 0x42, 0x1d, 0x68, 0x8b, 0x35, 0x1d, 0x8f, 0x0c, 0xcd, 0xc5,
+ 0x72, 0x19, 0x29, 0xb0, 0x87, 0x2d, 0xc3, 0x26, 0x0e, 0x26, 0xd4, 0x25, 0x9a, 0xe5, 0x68, 0xba,
+ 0x6b, 0xda, 0x96, 0x2c, 0xa1, 0x17, 0xd0, 0xb5, 0x89, 0x81, 0xc9, 0x93, 0x8d, 0x0a, 0xda, 0x87,
+ 0x8e, 0x81, 0x07, 0x66, 0xa2, 0xd8, 0xc1, 0xf8, 0x8a, 0x9a, 0xd6, 0xb9, 0x2d, 0x57, 0x13, 0xb7,
+ 0x7e, 0xa9, 0x99, 0x96, 0x6e, 0x1b, 0x98, 0x8e, 0x34, 0xfd, 0x2a, 0xc9, 0x5f, 0x4b, 0x12, 0x8c,
+ 0x30, 0x26, 0x54, 0x33, 0x86, 0xa6, 0x45, 0xed, 0x11, 0x26, 0x5a, 0x1a, 0xa7, 0xa1, 0x56, 0x1a,
+ 0x75, 0xb9, 0xae, 0x56, 0x1a, 0x4d, 0xb9, 0x79, 0x2c, 0x18, 0x82, 0x1d, 0x7b, 0x4c, 0x92, 0xfa,
+ 0x52, 0x79, 0xc7, 0x1d, 0xd7, 0xbe, 0xc2, 0xd6, 0x66, 0xfa, 0xe3, 0x15, 0xa0, 0xad, 0x2b, 0x62,
+ 0x26, 0x9f, 0x1c, 0xb4, 0x03, 0xe0, 0x98, 0x17, 0x96, 0xe6, 0x8e, 0x09, 0x76, 0xe4, 0x67, 0x68,
+ 0x17, 0x5a, 0x03, 0xcd, 0x71, 0x69, 0x51, 0xf9, 0x0b, 0xe8, 0x6e, 0x44, 0x71, 0xe8, 0xb9, 0x39,
+ 0x70, 0x31, 0x91, 0xcb, 0x68, 0x17, 0xea, 0x59, 0x95, 0xb2, 0x74, 0x50, 0x6e, 0x94, 0x92, 0xa3,
+ 0xba, 0x3d, 0x1c, 0x9a, 0x2e, 0xbd, 0xd4, 0x9c, 0x4b, 0xb9, 0xd2, 0xbf, 0x86, 0x8f, 0xc3, 0x68,
+ 0xd6, 0x9b, 0x3f, 0xac, 0x58, 0xe4, 0xb3, 0xe9, 0x8c, 0x45, 0xbd, 0x5b, 0xef, 0x26, 0x5a, 0x4c,
+ 0xc4, 0xab, 0x1b, 0x67, 0xb7, 0xf1, 0x5d, 0x6f, 0xb6, 0xe0, 0xf3, 0xf5, 0x4d, 0x62, 0x9e, 0x6e,
+ 0xc0, 0xa7, 0x02, 0x3e, 0x11, 0xf0, 0xc9, 0x2c, 0xcc, 0xbe, 0xbc, 0x37, 0xb5, 0xd4, 0xf3, 0xf6,
+ 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xce, 0x14, 0x3b, 0xe7, 0x91, 0x07, 0x00, 0x00,
+}
diff --git a/common/configtx.pb.go b/common/configtx.pb.go
new file mode 100644
index 0000000..d74de8c
--- /dev/null
+++ b/common/configtx.pb.go
@@ -0,0 +1,677 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: common/configtx.proto
+
+package common
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// ConfigEnvelope is designed to contain _all_ configuration for a chain with no dependency
+// on previous configuration transactions.
+//
+// It is generated with the following scheme:
+// 1. Retrieve the existing configuration
+// 2. Note the config properties (ConfigValue, ConfigPolicy, ConfigGroup) to be modified
+// 3. Add any intermediate ConfigGroups to the ConfigUpdate.read_set (sparsely)
+// 4. Add any additional desired dependencies to ConfigUpdate.read_set (sparsely)
+// 5. Modify the config properties, incrementing each version by 1, set them in the ConfigUpdate.write_set
+// Note: any element not modified but specified should already be in the read_set, so may be specified sparsely
+// 6. Create ConfigUpdate message and marshal it into ConfigUpdateEnvelope.update and encode the required signatures
+// a) Each signature is of type ConfigSignature
+// b) The ConfigSignature signature is over the concatenation of signature_header and the ConfigUpdate bytes (which includes a ChainHeader)
+// 5. Submit new Config for ordering in Envelope signed by submitter
+// a) The Envelope Payload has data set to the marshaled ConfigEnvelope
+// b) The Envelope Payload has a header of type Header.Type.CONFIG_UPDATE
+//
+// The configuration manager will verify:
+// 1. All items in the read_set exist at the read versions
+// 2. All items in the write_set at a different version than, or not in, the read_set have been appropriately signed according to their mod_policy
+// 3. The new configuration satisfies the ConfigSchema
+type ConfigEnvelope struct {
+ Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
+ LastUpdate *Envelope `protobuf:"bytes,2,opt,name=last_update,json=lastUpdate,proto3" json:"last_update,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigEnvelope) Reset() { *m = ConfigEnvelope{} }
+func (m *ConfigEnvelope) String() string { return proto.CompactTextString(m) }
+func (*ConfigEnvelope) ProtoMessage() {}
+func (*ConfigEnvelope) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5190bbf196fa7499, []int{0}
+}
+
+func (m *ConfigEnvelope) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigEnvelope.Unmarshal(m, b)
+}
+func (m *ConfigEnvelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigEnvelope.Marshal(b, m, deterministic)
+}
+func (m *ConfigEnvelope) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigEnvelope.Merge(m, src)
+}
+func (m *ConfigEnvelope) XXX_Size() int {
+ return xxx_messageInfo_ConfigEnvelope.Size(m)
+}
+func (m *ConfigEnvelope) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigEnvelope.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigEnvelope proto.InternalMessageInfo
+
+func (m *ConfigEnvelope) GetConfig() *Config {
+ if m != nil {
+ return m.Config
+ }
+ return nil
+}
+
+func (m *ConfigEnvelope) GetLastUpdate() *Envelope {
+ if m != nil {
+ return m.LastUpdate
+ }
+ return nil
+}
+
+type ConfigGroupSchema struct {
+ Groups map[string]*ConfigGroupSchema `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ Values map[string]*ConfigValueSchema `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ Policies map[string]*ConfigPolicySchema `protobuf:"bytes,3,rep,name=policies,proto3" json:"policies,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigGroupSchema) Reset() { *m = ConfigGroupSchema{} }
+func (m *ConfigGroupSchema) String() string { return proto.CompactTextString(m) }
+func (*ConfigGroupSchema) ProtoMessage() {}
+func (*ConfigGroupSchema) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5190bbf196fa7499, []int{1}
+}
+
+func (m *ConfigGroupSchema) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigGroupSchema.Unmarshal(m, b)
+}
+func (m *ConfigGroupSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigGroupSchema.Marshal(b, m, deterministic)
+}
+func (m *ConfigGroupSchema) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigGroupSchema.Merge(m, src)
+}
+func (m *ConfigGroupSchema) XXX_Size() int {
+ return xxx_messageInfo_ConfigGroupSchema.Size(m)
+}
+func (m *ConfigGroupSchema) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigGroupSchema.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigGroupSchema proto.InternalMessageInfo
+
+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 {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigValueSchema) Reset() { *m = ConfigValueSchema{} }
+func (m *ConfigValueSchema) String() string { return proto.CompactTextString(m) }
+func (*ConfigValueSchema) ProtoMessage() {}
+func (*ConfigValueSchema) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5190bbf196fa7499, []int{2}
+}
+
+func (m *ConfigValueSchema) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigValueSchema.Unmarshal(m, b)
+}
+func (m *ConfigValueSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigValueSchema.Marshal(b, m, deterministic)
+}
+func (m *ConfigValueSchema) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigValueSchema.Merge(m, src)
+}
+func (m *ConfigValueSchema) XXX_Size() int {
+ return xxx_messageInfo_ConfigValueSchema.Size(m)
+}
+func (m *ConfigValueSchema) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigValueSchema.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigValueSchema proto.InternalMessageInfo
+
+type ConfigPolicySchema struct {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigPolicySchema) Reset() { *m = ConfigPolicySchema{} }
+func (m *ConfigPolicySchema) String() string { return proto.CompactTextString(m) }
+func (*ConfigPolicySchema) ProtoMessage() {}
+func (*ConfigPolicySchema) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5190bbf196fa7499, []int{3}
+}
+
+func (m *ConfigPolicySchema) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigPolicySchema.Unmarshal(m, b)
+}
+func (m *ConfigPolicySchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigPolicySchema.Marshal(b, m, deterministic)
+}
+func (m *ConfigPolicySchema) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigPolicySchema.Merge(m, src)
+}
+func (m *ConfigPolicySchema) XXX_Size() int {
+ return xxx_messageInfo_ConfigPolicySchema.Size(m)
+}
+func (m *ConfigPolicySchema) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigPolicySchema.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigPolicySchema proto.InternalMessageInfo
+
+// Config represents the config for a particular channel
+type Config struct {
+ Sequence uint64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"`
+ ChannelGroup *ConfigGroup `protobuf:"bytes,2,opt,name=channel_group,json=channelGroup,proto3" json:"channel_group,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Config) Reset() { *m = Config{} }
+func (m *Config) String() string { return proto.CompactTextString(m) }
+func (*Config) ProtoMessage() {}
+func (*Config) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5190bbf196fa7499, []int{4}
+}
+
+func (m *Config) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Config.Unmarshal(m, b)
+}
+func (m *Config) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Config.Marshal(b, m, deterministic)
+}
+func (m *Config) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Config.Merge(m, src)
+}
+func (m *Config) XXX_Size() int {
+ return xxx_messageInfo_Config.Size(m)
+}
+func (m *Config) XXX_DiscardUnknown() {
+ xxx_messageInfo_Config.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Config proto.InternalMessageInfo
+
+func (m *Config) GetSequence() uint64 {
+ if m != nil {
+ return m.Sequence
+ }
+ return 0
+}
+
+func (m *Config) GetChannelGroup() *ConfigGroup {
+ if m != nil {
+ return m.ChannelGroup
+ }
+ return nil
+}
+
+type ConfigUpdateEnvelope struct {
+ ConfigUpdate []byte `protobuf:"bytes,1,opt,name=config_update,json=configUpdate,proto3" json:"config_update,omitempty"`
+ Signatures []*ConfigSignature `protobuf:"bytes,2,rep,name=signatures,proto3" json:"signatures,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigUpdateEnvelope) Reset() { *m = ConfigUpdateEnvelope{} }
+func (m *ConfigUpdateEnvelope) String() string { return proto.CompactTextString(m) }
+func (*ConfigUpdateEnvelope) ProtoMessage() {}
+func (*ConfigUpdateEnvelope) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5190bbf196fa7499, []int{5}
+}
+
+func (m *ConfigUpdateEnvelope) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigUpdateEnvelope.Unmarshal(m, b)
+}
+func (m *ConfigUpdateEnvelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigUpdateEnvelope.Marshal(b, m, deterministic)
+}
+func (m *ConfigUpdateEnvelope) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigUpdateEnvelope.Merge(m, src)
+}
+func (m *ConfigUpdateEnvelope) XXX_Size() int {
+ return xxx_messageInfo_ConfigUpdateEnvelope.Size(m)
+}
+func (m *ConfigUpdateEnvelope) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigUpdateEnvelope.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigUpdateEnvelope proto.InternalMessageInfo
+
+func (m *ConfigUpdateEnvelope) GetConfigUpdate() []byte {
+ if m != nil {
+ return m.ConfigUpdate
+ }
+ return nil
+}
+
+func (m *ConfigUpdateEnvelope) GetSignatures() []*ConfigSignature {
+ if m != nil {
+ return m.Signatures
+ }
+ return nil
+}
+
+// ConfigUpdate is used to submit a subset of config and to have the orderer apply to Config
+// it is always submitted inside a ConfigUpdateEnvelope which allows the addition of signatures
+// resulting in a new total configuration. The update is applied as follows:
+// 1. The versions from all of the elements in the read_set is verified against the versions in the existing config.
+// If there is a mismatch in the read versions, then the config update fails and is rejected.
+// 2. Any elements in the write_set with the same version as the read_set are ignored.
+// 3. The corresponding mod_policy for every remaining element in the write_set is collected.
+// 4. Each policy is checked against the signatures from the ConfigUpdateEnvelope, any failing to verify are rejected
+// 5. The write_set is applied to the Config and the ConfigGroupSchema verifies that the updates were legal
+type ConfigUpdate struct {
+ ChannelId string `protobuf:"bytes,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
+ ReadSet *ConfigGroup `protobuf:"bytes,2,opt,name=read_set,json=readSet,proto3" json:"read_set,omitempty"`
+ WriteSet *ConfigGroup `protobuf:"bytes,3,opt,name=write_set,json=writeSet,proto3" json:"write_set,omitempty"`
+ IsolatedData map[string][]byte `protobuf:"bytes,5,rep,name=isolated_data,json=isolatedData,proto3" json:"isolated_data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigUpdate) Reset() { *m = ConfigUpdate{} }
+func (m *ConfigUpdate) String() string { return proto.CompactTextString(m) }
+func (*ConfigUpdate) ProtoMessage() {}
+func (*ConfigUpdate) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5190bbf196fa7499, []int{6}
+}
+
+func (m *ConfigUpdate) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigUpdate.Unmarshal(m, b)
+}
+func (m *ConfigUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigUpdate.Marshal(b, m, deterministic)
+}
+func (m *ConfigUpdate) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigUpdate.Merge(m, src)
+}
+func (m *ConfigUpdate) XXX_Size() int {
+ return xxx_messageInfo_ConfigUpdate.Size(m)
+}
+func (m *ConfigUpdate) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigUpdate.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigUpdate proto.InternalMessageInfo
+
+func (m *ConfigUpdate) GetChannelId() string {
+ if m != nil {
+ return m.ChannelId
+ }
+ return ""
+}
+
+func (m *ConfigUpdate) GetReadSet() *ConfigGroup {
+ if m != nil {
+ return m.ReadSet
+ }
+ return nil
+}
+
+func (m *ConfigUpdate) GetWriteSet() *ConfigGroup {
+ if m != nil {
+ return m.WriteSet
+ }
+ return nil
+}
+
+func (m *ConfigUpdate) GetIsolatedData() map[string][]byte {
+ if m != nil {
+ return m.IsolatedData
+ }
+ return nil
+}
+
+// ConfigGroup is the hierarchical data structure for holding config
+type ConfigGroup struct {
+ Version uint64 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
+ Groups map[string]*ConfigGroup `protobuf:"bytes,2,rep,name=groups,proto3" json:"groups,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ Values map[string]*ConfigValue `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ Policies map[string]*ConfigPolicy `protobuf:"bytes,4,rep,name=policies,proto3" json:"policies,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ ModPolicy string `protobuf:"bytes,5,opt,name=mod_policy,json=modPolicy,proto3" json:"mod_policy,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigGroup) Reset() { *m = ConfigGroup{} }
+func (m *ConfigGroup) String() string { return proto.CompactTextString(m) }
+func (*ConfigGroup) ProtoMessage() {}
+func (*ConfigGroup) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5190bbf196fa7499, []int{7}
+}
+
+func (m *ConfigGroup) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigGroup.Unmarshal(m, b)
+}
+func (m *ConfigGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigGroup.Marshal(b, m, deterministic)
+}
+func (m *ConfigGroup) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigGroup.Merge(m, src)
+}
+func (m *ConfigGroup) XXX_Size() int {
+ return xxx_messageInfo_ConfigGroup.Size(m)
+}
+func (m *ConfigGroup) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigGroup.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigGroup proto.InternalMessageInfo
+
+func (m *ConfigGroup) GetVersion() uint64 {
+ if m != nil {
+ return m.Version
+ }
+ return 0
+}
+
+func (m *ConfigGroup) GetGroups() map[string]*ConfigGroup {
+ if m != nil {
+ return m.Groups
+ }
+ return nil
+}
+
+func (m *ConfigGroup) GetValues() map[string]*ConfigValue {
+ if m != nil {
+ return m.Values
+ }
+ return nil
+}
+
+func (m *ConfigGroup) GetPolicies() map[string]*ConfigPolicy {
+ if m != nil {
+ return m.Policies
+ }
+ return nil
+}
+
+func (m *ConfigGroup) GetModPolicy() string {
+ if m != nil {
+ return m.ModPolicy
+ }
+ return ""
+}
+
+// ConfigValue represents an individual piece of config data
+type ConfigValue struct {
+ Version uint64 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
+ Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+ ModPolicy string `protobuf:"bytes,3,opt,name=mod_policy,json=modPolicy,proto3" json:"mod_policy,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigValue) Reset() { *m = ConfigValue{} }
+func (m *ConfigValue) String() string { return proto.CompactTextString(m) }
+func (*ConfigValue) ProtoMessage() {}
+func (*ConfigValue) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5190bbf196fa7499, []int{8}
+}
+
+func (m *ConfigValue) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigValue.Unmarshal(m, b)
+}
+func (m *ConfigValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigValue.Marshal(b, m, deterministic)
+}
+func (m *ConfigValue) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigValue.Merge(m, src)
+}
+func (m *ConfigValue) XXX_Size() int {
+ return xxx_messageInfo_ConfigValue.Size(m)
+}
+func (m *ConfigValue) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigValue.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigValue proto.InternalMessageInfo
+
+func (m *ConfigValue) GetVersion() uint64 {
+ if m != nil {
+ return m.Version
+ }
+ return 0
+}
+
+func (m *ConfigValue) GetValue() []byte {
+ if m != nil {
+ return m.Value
+ }
+ return nil
+}
+
+func (m *ConfigValue) GetModPolicy() string {
+ if m != nil {
+ return m.ModPolicy
+ }
+ return ""
+}
+
+type ConfigPolicy struct {
+ Version uint64 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
+ Policy *Policy `protobuf:"bytes,2,opt,name=policy,proto3" json:"policy,omitempty"`
+ ModPolicy string `protobuf:"bytes,3,opt,name=mod_policy,json=modPolicy,proto3" json:"mod_policy,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigPolicy) Reset() { *m = ConfigPolicy{} }
+func (m *ConfigPolicy) String() string { return proto.CompactTextString(m) }
+func (*ConfigPolicy) ProtoMessage() {}
+func (*ConfigPolicy) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5190bbf196fa7499, []int{9}
+}
+
+func (m *ConfigPolicy) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigPolicy.Unmarshal(m, b)
+}
+func (m *ConfigPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigPolicy.Marshal(b, m, deterministic)
+}
+func (m *ConfigPolicy) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigPolicy.Merge(m, src)
+}
+func (m *ConfigPolicy) XXX_Size() int {
+ return xxx_messageInfo_ConfigPolicy.Size(m)
+}
+func (m *ConfigPolicy) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigPolicy.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigPolicy proto.InternalMessageInfo
+
+func (m *ConfigPolicy) GetVersion() uint64 {
+ if m != nil {
+ return m.Version
+ }
+ return 0
+}
+
+func (m *ConfigPolicy) GetPolicy() *Policy {
+ if m != nil {
+ return m.Policy
+ }
+ return nil
+}
+
+func (m *ConfigPolicy) GetModPolicy() string {
+ if m != nil {
+ return m.ModPolicy
+ }
+ return ""
+}
+
+type ConfigSignature struct {
+ SignatureHeader []byte `protobuf:"bytes,1,opt,name=signature_header,json=signatureHeader,proto3" json:"signature_header,omitempty"`
+ Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigSignature) Reset() { *m = ConfigSignature{} }
+func (m *ConfigSignature) String() string { return proto.CompactTextString(m) }
+func (*ConfigSignature) ProtoMessage() {}
+func (*ConfigSignature) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5190bbf196fa7499, []int{10}
+}
+
+func (m *ConfigSignature) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigSignature.Unmarshal(m, b)
+}
+func (m *ConfigSignature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigSignature.Marshal(b, m, deterministic)
+}
+func (m *ConfigSignature) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigSignature.Merge(m, src)
+}
+func (m *ConfigSignature) XXX_Size() int {
+ return xxx_messageInfo_ConfigSignature.Size(m)
+}
+func (m *ConfigSignature) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigSignature.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigSignature proto.InternalMessageInfo
+
+func (m *ConfigSignature) GetSignatureHeader() []byte {
+ if m != nil {
+ return m.SignatureHeader
+ }
+ return nil
+}
+
+func (m *ConfigSignature) GetSignature() []byte {
+ if m != nil {
+ return m.Signature
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*ConfigEnvelope)(nil), "common.ConfigEnvelope")
+ proto.RegisterType((*ConfigGroupSchema)(nil), "common.ConfigGroupSchema")
+ proto.RegisterMapType((map[string]*ConfigGroupSchema)(nil), "common.ConfigGroupSchema.GroupsEntry")
+ proto.RegisterMapType((map[string]*ConfigPolicySchema)(nil), "common.ConfigGroupSchema.PoliciesEntry")
+ proto.RegisterMapType((map[string]*ConfigValueSchema)(nil), "common.ConfigGroupSchema.ValuesEntry")
+ proto.RegisterType((*ConfigValueSchema)(nil), "common.ConfigValueSchema")
+ proto.RegisterType((*ConfigPolicySchema)(nil), "common.ConfigPolicySchema")
+ proto.RegisterType((*Config)(nil), "common.Config")
+ proto.RegisterType((*ConfigUpdateEnvelope)(nil), "common.ConfigUpdateEnvelope")
+ proto.RegisterType((*ConfigUpdate)(nil), "common.ConfigUpdate")
+ proto.RegisterMapType((map[string][]byte)(nil), "common.ConfigUpdate.IsolatedDataEntry")
+ proto.RegisterType((*ConfigGroup)(nil), "common.ConfigGroup")
+ proto.RegisterMapType((map[string]*ConfigGroup)(nil), "common.ConfigGroup.GroupsEntry")
+ proto.RegisterMapType((map[string]*ConfigPolicy)(nil), "common.ConfigGroup.PoliciesEntry")
+ proto.RegisterMapType((map[string]*ConfigValue)(nil), "common.ConfigGroup.ValuesEntry")
+ proto.RegisterType((*ConfigValue)(nil), "common.ConfigValue")
+ proto.RegisterType((*ConfigPolicy)(nil), "common.ConfigPolicy")
+ proto.RegisterType((*ConfigSignature)(nil), "common.ConfigSignature")
+}
+
+func init() { proto.RegisterFile("common/configtx.proto", fileDescriptor_5190bbf196fa7499) }
+
+var fileDescriptor_5190bbf196fa7499 = []byte{
+ // 744 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xe1, 0x6e, 0xd3, 0x3c,
+ 0x14, 0x55, 0x9b, 0xb6, 0x6b, 0x6f, 0xdb, 0xad, 0xf3, 0xfa, 0xe9, 0x0b, 0x15, 0x88, 0x11, 0x60,
+ 0x6c, 0x48, 0x4b, 0xc7, 0xf8, 0xb1, 0x09, 0x69, 0x42, 0x62, 0x4c, 0xb0, 0x21, 0x4d, 0x90, 0xc1,
+ 0x90, 0x26, 0xa4, 0xca, 0x4b, 0xbc, 0x34, 0x2c, 0x8d, 0x43, 0xe2, 0x0e, 0xfa, 0x48, 0x3c, 0x13,
+ 0x6f, 0xc0, 0x53, 0xa0, 0xd8, 0x4e, 0x70, 0xd6, 0xb4, 0x15, 0xbf, 0x56, 0x5f, 0x9f, 0x73, 0xee,
+ 0xb5, 0xef, 0xf5, 0xc9, 0xe0, 0x3f, 0x9b, 0x8e, 0x46, 0x34, 0xe8, 0xdb, 0x34, 0xb8, 0xf2, 0x5c,
+ 0xf6, 0xc3, 0x0c, 0x23, 0xca, 0x28, 0xaa, 0x89, 0x70, 0x6f, 0x2d, 0xdb, 0x4e, 0xfe, 0x88, 0xcd,
+ 0x5e, 0xca, 0x09, 0xa9, 0xef, 0xd9, 0x1e, 0x89, 0x45, 0xd8, 0xb8, 0x86, 0xe5, 0x43, 0xae, 0x72,
+ 0x14, 0xdc, 0x10, 0x9f, 0x86, 0x04, 0x6d, 0x40, 0x4d, 0xe8, 0xea, 0xa5, 0xf5, 0xd2, 0x66, 0x73,
+ 0x77, 0xd9, 0x94, 0x3a, 0x02, 0x67, 0xc9, 0x5d, 0xf4, 0x0c, 0x9a, 0x3e, 0x8e, 0xd9, 0x60, 0x1c,
+ 0x3a, 0x98, 0x11, 0xbd, 0xcc, 0xc1, 0x9d, 0x14, 0x9c, 0xca, 0x59, 0x90, 0x80, 0x3e, 0x71, 0x8c,
+ 0xf1, 0x4b, 0x83, 0x55, 0xa1, 0xf2, 0x26, 0xa2, 0xe3, 0xf0, 0xcc, 0x1e, 0x92, 0x11, 0x46, 0x07,
+ 0x50, 0x73, 0x93, 0x65, 0xac, 0x97, 0xd6, 0xb5, 0xcd, 0xe6, 0xee, 0xe3, 0x7c, 0x42, 0x05, 0x6a,
+ 0xf2, 0xdf, 0xf1, 0x51, 0xc0, 0xa2, 0x89, 0x25, 0x49, 0x09, 0xfd, 0x06, 0xfb, 0x63, 0x12, 0xeb,
+ 0xe5, 0x45, 0xf4, 0x73, 0x8e, 0x93, 0x74, 0x41, 0x42, 0x87, 0x50, 0x4f, 0xaf, 0x44, 0xd7, 0xb8,
+ 0xc0, 0x93, 0xd9, 0x02, 0xef, 0x25, 0x52, 0x48, 0x64, 0xc4, 0xde, 0x47, 0x68, 0x2a, 0xa5, 0xa1,
+ 0x0e, 0x68, 0xd7, 0x64, 0xc2, 0xef, 0xaf, 0x61, 0x25, 0x3f, 0x51, 0x1f, 0xaa, 0x3c, 0x9f, 0xbc,
+ 0xa6, 0x3b, 0x33, 0x53, 0x58, 0x02, 0xf7, 0xa2, 0xbc, 0x5f, 0x4a, 0x54, 0x95, 0x8a, 0xff, 0x59,
+ 0x95, 0x73, 0xa7, 0x55, 0x3f, 0x43, 0x3b, 0x77, 0x8c, 0x02, 0xdd, 0x9d, 0xbc, 0x6e, 0x2f, 0xaf,
+ 0xcb, 0xd9, 0x93, 0x29, 0x61, 0x63, 0x2d, 0x6d, 0xae, 0x92, 0xd8, 0xe8, 0x02, 0x9a, 0x66, 0x19,
+ 0x5f, 0xa1, 0x26, 0xa2, 0xa8, 0x07, 0xf5, 0x98, 0x7c, 0x1b, 0x93, 0xc0, 0x26, 0xbc, 0x82, 0x8a,
+ 0x95, 0xad, 0xd1, 0x3e, 0xb4, 0xed, 0x21, 0x0e, 0x02, 0xe2, 0x0f, 0x78, 0xaf, 0x65, 0x39, 0x6b,
+ 0x05, 0x97, 0x67, 0xb5, 0x24, 0x92, 0xaf, 0x4e, 0x2a, 0x75, 0xad, 0x53, 0xb1, 0x2a, 0x6c, 0x12,
+ 0x12, 0x83, 0x41, 0x57, 0x00, 0xc5, 0x10, 0x66, 0x73, 0xfe, 0x10, 0xda, 0x62, 0x92, 0xd3, 0x09,
+ 0x4e, 0xd2, 0xb7, 0xac, 0x96, 0xad, 0x80, 0xd1, 0x1e, 0x40, 0xec, 0xb9, 0x01, 0x66, 0xe3, 0x28,
+ 0x1b, 0xb0, 0xff, 0xf3, 0xf9, 0xcf, 0xd2, 0x7d, 0x4b, 0x81, 0x1a, 0x3f, 0xcb, 0xd0, 0x52, 0xd3,
+ 0xa2, 0x7b, 0x00, 0xe9, 0x61, 0x3c, 0x47, 0x5e, 0x76, 0x43, 0x46, 0x8e, 0x1d, 0x64, 0x42, 0x3d,
+ 0x22, 0xd8, 0x19, 0xc4, 0x84, 0xcd, 0x3b, 0xe6, 0x52, 0x02, 0x3a, 0x23, 0x0c, 0xed, 0x40, 0xe3,
+ 0x7b, 0xe4, 0x31, 0xc2, 0x09, 0xda, 0x6c, 0x42, 0x9d, 0xa3, 0x12, 0xc6, 0x3b, 0x68, 0x7b, 0x31,
+ 0xf5, 0x31, 0x23, 0xce, 0xc0, 0xc1, 0x0c, 0xeb, 0x55, 0x7e, 0x9a, 0x8d, 0x3c, 0x4b, 0x54, 0x6b,
+ 0x1e, 0x4b, 0xe4, 0x6b, 0xcc, 0xb0, 0x18, 0xf6, 0x96, 0xa7, 0x84, 0x7a, 0x2f, 0x61, 0x75, 0x0a,
+ 0x52, 0x30, 0x48, 0x5d, 0x75, 0x90, 0x5a, 0xca, 0xb0, 0x9c, 0x54, 0xea, 0x95, 0x4e, 0x55, 0x76,
+ 0xe8, 0xb7, 0x06, 0x4d, 0xa5, 0x66, 0xa4, 0xc3, 0xd2, 0x0d, 0x89, 0x62, 0x8f, 0x06, 0x72, 0x24,
+ 0xd2, 0x25, 0xda, 0xcb, 0xac, 0x42, 0xb4, 0xe2, 0x7e, 0xc1, 0x91, 0x0b, 0x4d, 0x62, 0x2f, 0x33,
+ 0x09, 0x6d, 0x36, 0xb1, 0xc8, 0x1e, 0x0e, 0x14, 0x7b, 0xa8, 0x70, 0xea, 0x83, 0x22, 0xea, 0x0c,
+ 0x63, 0x48, 0xba, 0x3e, 0xa2, 0xce, 0x80, 0xaf, 0x27, 0x7a, 0x55, 0x74, 0x7d, 0x44, 0x1d, 0xf1,
+ 0x1a, 0x7a, 0xa7, 0x8b, 0x7c, 0x63, 0x2b, 0xff, 0x12, 0x0b, 0x5b, 0xac, 0xbc, 0xed, 0xd3, 0x45,
+ 0x8e, 0x31, 0x5f, 0x8f, 0x73, 0x55, 0xbd, 0x0f, 0x8b, 0xbd, 0xe2, 0x69, 0x5e, 0xb1, 0x5b, 0xe4,
+ 0x15, 0xaa, 0x4b, 0x7c, 0x49, 0x7b, 0xcd, 0x93, 0xcd, 0xe9, 0x75, 0xe1, 0xec, 0xdc, 0xba, 0x50,
+ 0xed, 0xd6, 0x85, 0x1a, 0x34, 0x7d, 0x75, 0x62, 0x3d, 0x47, 0x7e, 0x03, 0x6a, 0x52, 0xa4, 0x9c,
+ 0xff, 0xcc, 0xc9, 0x92, 0xe5, 0xee, 0xa2, 0x84, 0x17, 0xb0, 0x72, 0xcb, 0x06, 0xd0, 0x16, 0x74,
+ 0x32, 0x23, 0x18, 0x0c, 0x09, 0x76, 0x48, 0x24, 0xbd, 0x65, 0x25, 0x8b, 0xbf, 0xe5, 0x61, 0x74,
+ 0x17, 0x1a, 0x59, 0x48, 0x9e, 0xf3, 0x6f, 0xe0, 0xd5, 0x39, 0x3c, 0xa2, 0x91, 0x6b, 0x0e, 0x27,
+ 0x21, 0x89, 0x7c, 0xe2, 0xb8, 0x24, 0x32, 0xaf, 0xf0, 0x65, 0xe4, 0xd9, 0xe2, 0xdb, 0x1d, 0xcb,
+ 0x8a, 0x2f, 0x4c, 0xd7, 0x63, 0xc3, 0xf1, 0x65, 0xb2, 0xec, 0x2b, 0xe0, 0xbe, 0x00, 0x6f, 0x0b,
+ 0xf0, 0xb6, 0x4b, 0xe5, 0x3f, 0x04, 0x97, 0x35, 0x1e, 0x79, 0xfe, 0x27, 0x00, 0x00, 0xff, 0xff,
+ 0x96, 0xdf, 0xe6, 0x5b, 0x47, 0x08, 0x00, 0x00,
+}
diff --git a/common/configuration.pb.go b/common/configuration.pb.go
new file mode 100644
index 0000000..35d7a7a
--- /dev/null
+++ b/common/configuration.pb.go
@@ -0,0 +1,327 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: common/configuration.proto
+
+package common
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// HashingAlgorithm is encoded into the configuration transaction as a configuration item of type Chain
+// with a Key of "HashingAlgorithm" and a Value of HashingAlgorithm as marshaled protobuf bytes
+type HashingAlgorithm struct {
+ // Currently supported algorithms are: SHAKE256
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *HashingAlgorithm) Reset() { *m = HashingAlgorithm{} }
+func (m *HashingAlgorithm) String() string { return proto.CompactTextString(m) }
+func (*HashingAlgorithm) ProtoMessage() {}
+func (*HashingAlgorithm) Descriptor() ([]byte, []int) {
+ return fileDescriptor_cba1ec2883858369, []int{0}
+}
+
+func (m *HashingAlgorithm) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_HashingAlgorithm.Unmarshal(m, b)
+}
+func (m *HashingAlgorithm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_HashingAlgorithm.Marshal(b, m, deterministic)
+}
+func (m *HashingAlgorithm) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_HashingAlgorithm.Merge(m, src)
+}
+func (m *HashingAlgorithm) XXX_Size() int {
+ return xxx_messageInfo_HashingAlgorithm.Size(m)
+}
+func (m *HashingAlgorithm) XXX_DiscardUnknown() {
+ xxx_messageInfo_HashingAlgorithm.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_HashingAlgorithm proto.InternalMessageInfo
+
+func (m *HashingAlgorithm) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+// BlockDataHashingStructure is encoded into the configuration transaction as a configuration item of
+// type Chain with a Key of "BlockDataHashingStructure" and a Value of HashingAlgorithm as marshaled protobuf bytes
+type BlockDataHashingStructure struct {
+ // width specifies the width of the Merkle tree to use when computing the BlockDataHash
+ // in order to replicate flat hashing, set this width to MAX_UINT32
+ Width uint32 `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *BlockDataHashingStructure) Reset() { *m = BlockDataHashingStructure{} }
+func (m *BlockDataHashingStructure) String() string { return proto.CompactTextString(m) }
+func (*BlockDataHashingStructure) ProtoMessage() {}
+func (*BlockDataHashingStructure) Descriptor() ([]byte, []int) {
+ return fileDescriptor_cba1ec2883858369, []int{1}
+}
+
+func (m *BlockDataHashingStructure) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_BlockDataHashingStructure.Unmarshal(m, b)
+}
+func (m *BlockDataHashingStructure) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_BlockDataHashingStructure.Marshal(b, m, deterministic)
+}
+func (m *BlockDataHashingStructure) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BlockDataHashingStructure.Merge(m, src)
+}
+func (m *BlockDataHashingStructure) XXX_Size() int {
+ return xxx_messageInfo_BlockDataHashingStructure.Size(m)
+}
+func (m *BlockDataHashingStructure) XXX_DiscardUnknown() {
+ xxx_messageInfo_BlockDataHashingStructure.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_BlockDataHashingStructure proto.InternalMessageInfo
+
+func (m *BlockDataHashingStructure) GetWidth() uint32 {
+ if m != nil {
+ return m.Width
+ }
+ return 0
+}
+
+// OrdererAddresses is encoded into the configuration transaction as a configuration item of type Chain
+// with a Key of "OrdererAddresses" and a Value of OrdererAddresses as marshaled protobuf bytes
+type OrdererAddresses struct {
+ Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *OrdererAddresses) Reset() { *m = OrdererAddresses{} }
+func (m *OrdererAddresses) String() string { return proto.CompactTextString(m) }
+func (*OrdererAddresses) ProtoMessage() {}
+func (*OrdererAddresses) Descriptor() ([]byte, []int) {
+ return fileDescriptor_cba1ec2883858369, []int{2}
+}
+
+func (m *OrdererAddresses) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_OrdererAddresses.Unmarshal(m, b)
+}
+func (m *OrdererAddresses) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_OrdererAddresses.Marshal(b, m, deterministic)
+}
+func (m *OrdererAddresses) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OrdererAddresses.Merge(m, src)
+}
+func (m *OrdererAddresses) XXX_Size() int {
+ return xxx_messageInfo_OrdererAddresses.Size(m)
+}
+func (m *OrdererAddresses) XXX_DiscardUnknown() {
+ xxx_messageInfo_OrdererAddresses.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_OrdererAddresses proto.InternalMessageInfo
+
+func (m *OrdererAddresses) GetAddresses() []string {
+ if m != nil {
+ return m.Addresses
+ }
+ return nil
+}
+
+// Consortium represents the consortium context in which the channel was created
+type Consortium struct {
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Consortium) Reset() { *m = Consortium{} }
+func (m *Consortium) String() string { return proto.CompactTextString(m) }
+func (*Consortium) ProtoMessage() {}
+func (*Consortium) Descriptor() ([]byte, []int) {
+ return fileDescriptor_cba1ec2883858369, []int{3}
+}
+
+func (m *Consortium) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Consortium.Unmarshal(m, b)
+}
+func (m *Consortium) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Consortium.Marshal(b, m, deterministic)
+}
+func (m *Consortium) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Consortium.Merge(m, src)
+}
+func (m *Consortium) XXX_Size() int {
+ return xxx_messageInfo_Consortium.Size(m)
+}
+func (m *Consortium) XXX_DiscardUnknown() {
+ xxx_messageInfo_Consortium.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Consortium proto.InternalMessageInfo
+
+func (m *Consortium) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+// Capabilities message defines the capabilities a particular binary must implement
+// for that binary to be able to safely participate in the channel. The capabilities
+// message is defined at the /Channel level, the /Channel/Application level, and the
+// /Channel/Orderer level.
+//
+// The /Channel level capabilties define capabilities which both the orderer and peer
+// binaries must satisfy. These capabilties might be things like a new MSP type,
+// or a new policy type.
+//
+// The /Channel/Orderer level capabilties define capabilities which must be supported
+// by the orderer, but which have no bearing on the behavior of the peer. For instance
+// if the orderer changes the logic for how it constructs new channels, only all orderers
+// must agree on the new logic. The peers do not need to be aware of this change as
+// they only interact with the channel after it has been constructed.
+//
+// Finally, the /Channel/Application level capabilities define capabilities which the peer
+// binary must satisfy, but which have no bearing on the orderer. For instance, if the
+// peer adds a new UTXO transaction type, or changes the chaincode lifecycle requirements,
+// all peers must agree on the new logic. However, orderers never inspect transactions
+// this deeply, and therefore have no need to be aware of the change.
+//
+// The capabilities strings defined in these messages typically correspond to release
+// binary versions (e.g. "V1.1"), and are used primarilly as a mechanism for a fully
+// upgraded network to switch from one set of logic to a new one.
+//
+// Although for V1.1, the orderers must be upgraded to V1.1 prior to the rest of the
+// network, going forward, because of the split between the /Channel, /Channel/Orderer
+// and /Channel/Application capabilities. It should be possible for the orderer and
+// application networks to upgrade themselves independently (with the exception of any
+// new capabilities defined at the /Channel level).
+type Capabilities struct {
+ Capabilities map[string]*Capability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Capabilities) Reset() { *m = Capabilities{} }
+func (m *Capabilities) String() string { return proto.CompactTextString(m) }
+func (*Capabilities) ProtoMessage() {}
+func (*Capabilities) Descriptor() ([]byte, []int) {
+ return fileDescriptor_cba1ec2883858369, []int{4}
+}
+
+func (m *Capabilities) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Capabilities.Unmarshal(m, b)
+}
+func (m *Capabilities) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Capabilities.Marshal(b, m, deterministic)
+}
+func (m *Capabilities) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Capabilities.Merge(m, src)
+}
+func (m *Capabilities) XXX_Size() int {
+ return xxx_messageInfo_Capabilities.Size(m)
+}
+func (m *Capabilities) XXX_DiscardUnknown() {
+ xxx_messageInfo_Capabilities.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Capabilities proto.InternalMessageInfo
+
+func (m *Capabilities) GetCapabilities() map[string]*Capability {
+ if m != nil {
+ return m.Capabilities
+ }
+ return nil
+}
+
+// Capability is an empty message for the time being. It is defined as a protobuf
+// message rather than a constant, so that we may extend capabilities with other fields
+// if the need arises in the future. For the time being, a capability being in the
+// capabilities map requires that that capability be supported.
+type Capability struct {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Capability) Reset() { *m = Capability{} }
+func (m *Capability) String() string { return proto.CompactTextString(m) }
+func (*Capability) ProtoMessage() {}
+func (*Capability) Descriptor() ([]byte, []int) {
+ return fileDescriptor_cba1ec2883858369, []int{5}
+}
+
+func (m *Capability) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Capability.Unmarshal(m, b)
+}
+func (m *Capability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Capability.Marshal(b, m, deterministic)
+}
+func (m *Capability) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Capability.Merge(m, src)
+}
+func (m *Capability) XXX_Size() int {
+ return xxx_messageInfo_Capability.Size(m)
+}
+func (m *Capability) XXX_DiscardUnknown() {
+ xxx_messageInfo_Capability.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Capability proto.InternalMessageInfo
+
+func init() {
+ proto.RegisterType((*HashingAlgorithm)(nil), "common.HashingAlgorithm")
+ proto.RegisterType((*BlockDataHashingStructure)(nil), "common.BlockDataHashingStructure")
+ proto.RegisterType((*OrdererAddresses)(nil), "common.OrdererAddresses")
+ proto.RegisterType((*Consortium)(nil), "common.Consortium")
+ proto.RegisterType((*Capabilities)(nil), "common.Capabilities")
+ proto.RegisterMapType((map[string]*Capability)(nil), "common.Capabilities.CapabilitiesEntry")
+ proto.RegisterType((*Capability)(nil), "common.Capability")
+}
+
+func init() { proto.RegisterFile("common/configuration.proto", fileDescriptor_cba1ec2883858369) }
+
+var fileDescriptor_cba1ec2883858369 = []byte{
+ // 318 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x91, 0x41, 0x6b, 0xf2, 0x40,
+ 0x10, 0x86, 0x89, 0x7e, 0x0a, 0x8e, 0x7e, 0x60, 0x97, 0x1e, 0xac, 0xf4, 0x10, 0x42, 0x91, 0x5c,
+ 0x4c, 0x5a, 0x7b, 0x29, 0xbd, 0xa9, 0x2d, 0x94, 0x5e, 0x0a, 0x11, 0x7a, 0xe8, 0x6d, 0x93, 0xac,
+ 0x9b, 0xc5, 0x64, 0x57, 0x66, 0x77, 0x5b, 0xf2, 0xab, 0xfa, 0x17, 0x8b, 0x59, 0x8b, 0x8a, 0xbd,
+ 0xcd, 0x33, 0xf3, 0xbc, 0x93, 0x09, 0x0b, 0xe3, 0x4c, 0x55, 0x95, 0x92, 0x71, 0xa6, 0xe4, 0x5a,
+ 0x70, 0x8b, 0xd4, 0x08, 0x25, 0xa3, 0x2d, 0x2a, 0xa3, 0x48, 0xd7, 0xcd, 0x82, 0x09, 0x0c, 0x5f,
+ 0xa8, 0x2e, 0x84, 0xe4, 0xf3, 0x92, 0x2b, 0x14, 0xa6, 0xa8, 0x08, 0x81, 0x7f, 0x92, 0x56, 0x6c,
+ 0xe4, 0xf9, 0x5e, 0xd8, 0x4b, 0x9a, 0x3a, 0xb8, 0x83, 0xab, 0x45, 0xa9, 0xb2, 0xcd, 0x13, 0x35,
+ 0x74, 0x1f, 0x58, 0x19, 0xb4, 0x99, 0xb1, 0xc8, 0xc8, 0x25, 0x74, 0xbe, 0x44, 0x6e, 0x8a, 0x26,
+ 0xf1, 0x3f, 0x71, 0x10, 0xdc, 0xc2, 0xf0, 0x0d, 0x73, 0x86, 0x0c, 0xe7, 0x79, 0x8e, 0x4c, 0x6b,
+ 0xa6, 0xc9, 0x35, 0xf4, 0xe8, 0x2f, 0x8c, 0x3c, 0xbf, 0x1d, 0xf6, 0x92, 0x43, 0x23, 0xf0, 0x01,
+ 0x96, 0x4a, 0x6a, 0x85, 0x46, 0xd8, 0xbf, 0xcf, 0xf8, 0xf6, 0x60, 0xb0, 0xa4, 0x5b, 0x9a, 0x8a,
+ 0x52, 0x18, 0xc1, 0x34, 0x79, 0x85, 0x41, 0x76, 0xc4, 0xcd, 0xce, 0xfe, 0x6c, 0x12, 0xb9, 0xdf,
+ 0x8b, 0x8e, 0xdd, 0x13, 0x78, 0x96, 0x06, 0xeb, 0xe4, 0x24, 0x3b, 0x5e, 0xc1, 0xc5, 0x99, 0x42,
+ 0x86, 0xd0, 0xde, 0xb0, 0x7a, 0x7f, 0xc4, 0xae, 0x24, 0x21, 0x74, 0x3e, 0x69, 0x69, 0xd9, 0xa8,
+ 0xe5, 0x7b, 0x61, 0x7f, 0x46, 0xce, 0xbe, 0x55, 0x27, 0x4e, 0x78, 0x6c, 0x3d, 0x78, 0xc1, 0x00,
+ 0xe0, 0x30, 0x58, 0xbc, 0xc3, 0x8d, 0x42, 0x1e, 0x15, 0xf5, 0x96, 0x61, 0xc9, 0x72, 0xce, 0x30,
+ 0x5a, 0xd3, 0x14, 0x45, 0xe6, 0x9e, 0x45, 0xef, 0x77, 0x7d, 0x44, 0x5c, 0x98, 0xc2, 0xa6, 0x3b,
+ 0x8c, 0x8f, 0xe4, 0xd8, 0xc9, 0x53, 0x27, 0x4f, 0xb9, 0x8a, 0x9d, 0x9f, 0x76, 0x9b, 0xce, 0xfd,
+ 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3b, 0xe7, 0x4b, 0x89, 0xf3, 0x01, 0x00, 0x00,
+}
diff --git a/common/ledger.pb.go b/common/ledger.pb.go
new file mode 100644
index 0000000..86f3287
--- /dev/null
+++ b/common/ledger.pb.go
@@ -0,0 +1,100 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: common/ledger.proto
+
+package common
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// Contains information about the blockchain ledger such as height, current
+// block hash, and previous block hash.
+type BlockchainInfo struct {
+ Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
+ CurrentBlockHash []byte `protobuf:"bytes,2,opt,name=currentBlockHash,proto3" json:"currentBlockHash,omitempty"`
+ PreviousBlockHash []byte `protobuf:"bytes,3,opt,name=previousBlockHash,proto3" json:"previousBlockHash,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *BlockchainInfo) Reset() { *m = BlockchainInfo{} }
+func (m *BlockchainInfo) String() string { return proto.CompactTextString(m) }
+func (*BlockchainInfo) ProtoMessage() {}
+func (*BlockchainInfo) Descriptor() ([]byte, []int) {
+ return fileDescriptor_da3410306adbea27, []int{0}
+}
+
+func (m *BlockchainInfo) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_BlockchainInfo.Unmarshal(m, b)
+}
+func (m *BlockchainInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_BlockchainInfo.Marshal(b, m, deterministic)
+}
+func (m *BlockchainInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BlockchainInfo.Merge(m, src)
+}
+func (m *BlockchainInfo) XXX_Size() int {
+ return xxx_messageInfo_BlockchainInfo.Size(m)
+}
+func (m *BlockchainInfo) XXX_DiscardUnknown() {
+ xxx_messageInfo_BlockchainInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_BlockchainInfo proto.InternalMessageInfo
+
+func (m *BlockchainInfo) GetHeight() uint64 {
+ if m != nil {
+ return m.Height
+ }
+ return 0
+}
+
+func (m *BlockchainInfo) GetCurrentBlockHash() []byte {
+ if m != nil {
+ return m.CurrentBlockHash
+ }
+ return nil
+}
+
+func (m *BlockchainInfo) GetPreviousBlockHash() []byte {
+ if m != nil {
+ return m.PreviousBlockHash
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*BlockchainInfo)(nil), "common.BlockchainInfo")
+}
+
+func init() { proto.RegisterFile("common/ledger.proto", fileDescriptor_da3410306adbea27) }
+
+var fileDescriptor_da3410306adbea27 = []byte{
+ // 189 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4e, 0xce, 0xcf, 0xcd,
+ 0xcd, 0xcf, 0xd3, 0xcf, 0x49, 0x4d, 0x49, 0x4f, 0x2d, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17,
+ 0x62, 0x83, 0x08, 0x2a, 0x35, 0x31, 0x72, 0xf1, 0x39, 0xe5, 0xe4, 0x27, 0x67, 0x27, 0x67, 0x24,
+ 0x66, 0xe6, 0x79, 0xe6, 0xa5, 0xe5, 0x0b, 0x89, 0x71, 0xb1, 0x65, 0xa4, 0x66, 0xa6, 0x67, 0x94,
+ 0x48, 0x30, 0x2a, 0x30, 0x6a, 0xb0, 0x04, 0x41, 0x79, 0x42, 0x5a, 0x5c, 0x02, 0xc9, 0xa5, 0x45,
+ 0x45, 0xa9, 0x79, 0x25, 0x60, 0x0d, 0x1e, 0x89, 0xc5, 0x19, 0x12, 0x4c, 0x0a, 0x8c, 0x1a, 0x3c,
+ 0x41, 0x18, 0xe2, 0x42, 0x3a, 0x5c, 0x82, 0x05, 0x45, 0xa9, 0x65, 0x99, 0xf9, 0xa5, 0xc5, 0x08,
+ 0xc5, 0xcc, 0x60, 0xc5, 0x98, 0x12, 0x4e, 0x61, 0x5c, 0x2a, 0xf9, 0x45, 0xe9, 0x7a, 0x19, 0x95,
+ 0x05, 0xa9, 0x45, 0x50, 0x57, 0xa6, 0x25, 0x26, 0x15, 0x65, 0x26, 0x43, 0x1c, 0x5b, 0xac, 0x07,
+ 0x71, 0x6c, 0x94, 0x5e, 0x7a, 0x66, 0x49, 0x46, 0x69, 0x12, 0x88, 0xab, 0x8f, 0xa4, 0x58, 0x1f,
+ 0xa2, 0x58, 0x17, 0xa2, 0x58, 0x37, 0x3d, 0x5f, 0x1f, 0xa2, 0x3e, 0x89, 0x0d, 0x2c, 0x62, 0x0c,
+ 0x08, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x1e, 0x95, 0x9c, 0x02, 0x01, 0x00, 0x00,
+}
diff --git a/common/policies.pb.go b/common/policies.pb.go
new file mode 100644
index 0000000..f7c2ebb
--- /dev/null
+++ b/common/policies.pb.go
@@ -0,0 +1,421 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: common/policies.proto
+
+package common
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ msp "github.com/hyperledger/fabric-protos-go/msp"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type Policy_PolicyType int32
+
+const (
+ Policy_UNKNOWN Policy_PolicyType = 0
+ Policy_SIGNATURE Policy_PolicyType = 1
+ Policy_MSP Policy_PolicyType = 2
+ Policy_IMPLICIT_META Policy_PolicyType = 3
+)
+
+var Policy_PolicyType_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "SIGNATURE",
+ 2: "MSP",
+ 3: "IMPLICIT_META",
+}
+
+var Policy_PolicyType_value = map[string]int32{
+ "UNKNOWN": 0,
+ "SIGNATURE": 1,
+ "MSP": 2,
+ "IMPLICIT_META": 3,
+}
+
+func (x Policy_PolicyType) String() string {
+ return proto.EnumName(Policy_PolicyType_name, int32(x))
+}
+
+func (Policy_PolicyType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_0d02cf0d453425a3, []int{0, 0}
+}
+
+type ImplicitMetaPolicy_Rule int32
+
+const (
+ ImplicitMetaPolicy_ANY ImplicitMetaPolicy_Rule = 0
+ ImplicitMetaPolicy_ALL ImplicitMetaPolicy_Rule = 1
+ ImplicitMetaPolicy_MAJORITY ImplicitMetaPolicy_Rule = 2
+)
+
+var ImplicitMetaPolicy_Rule_name = map[int32]string{
+ 0: "ANY",
+ 1: "ALL",
+ 2: "MAJORITY",
+}
+
+var ImplicitMetaPolicy_Rule_value = map[string]int32{
+ "ANY": 0,
+ "ALL": 1,
+ "MAJORITY": 2,
+}
+
+func (x ImplicitMetaPolicy_Rule) String() string {
+ return proto.EnumName(ImplicitMetaPolicy_Rule_name, int32(x))
+}
+
+func (ImplicitMetaPolicy_Rule) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_0d02cf0d453425a3, []int{3, 0}
+}
+
+// Policy expresses a policy which the orderer can evaluate, because there has been some desire expressed to support
+// multiple policy engines, this is typed as a oneof for now
+type Policy struct {
+ Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
+ Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Policy) Reset() { *m = Policy{} }
+func (m *Policy) String() string { return proto.CompactTextString(m) }
+func (*Policy) ProtoMessage() {}
+func (*Policy) Descriptor() ([]byte, []int) {
+ return fileDescriptor_0d02cf0d453425a3, []int{0}
+}
+
+func (m *Policy) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Policy.Unmarshal(m, b)
+}
+func (m *Policy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Policy.Marshal(b, m, deterministic)
+}
+func (m *Policy) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Policy.Merge(m, src)
+}
+func (m *Policy) XXX_Size() int {
+ return xxx_messageInfo_Policy.Size(m)
+}
+func (m *Policy) XXX_DiscardUnknown() {
+ xxx_messageInfo_Policy.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Policy proto.InternalMessageInfo
+
+func (m *Policy) GetType() int32 {
+ if m != nil {
+ return m.Type
+ }
+ return 0
+}
+
+func (m *Policy) GetValue() []byte {
+ if m != nil {
+ return m.Value
+ }
+ return nil
+}
+
+// SignaturePolicyEnvelope wraps a SignaturePolicy and includes a version for future enhancements
+type SignaturePolicyEnvelope struct {
+ Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
+ Rule *SignaturePolicy `protobuf:"bytes,2,opt,name=rule,proto3" json:"rule,omitempty"`
+ Identities []*msp.MSPPrincipal `protobuf:"bytes,3,rep,name=identities,proto3" json:"identities,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SignaturePolicyEnvelope) Reset() { *m = SignaturePolicyEnvelope{} }
+func (m *SignaturePolicyEnvelope) String() string { return proto.CompactTextString(m) }
+func (*SignaturePolicyEnvelope) ProtoMessage() {}
+func (*SignaturePolicyEnvelope) Descriptor() ([]byte, []int) {
+ return fileDescriptor_0d02cf0d453425a3, []int{1}
+}
+
+func (m *SignaturePolicyEnvelope) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SignaturePolicyEnvelope.Unmarshal(m, b)
+}
+func (m *SignaturePolicyEnvelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SignaturePolicyEnvelope.Marshal(b, m, deterministic)
+}
+func (m *SignaturePolicyEnvelope) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SignaturePolicyEnvelope.Merge(m, src)
+}
+func (m *SignaturePolicyEnvelope) XXX_Size() int {
+ return xxx_messageInfo_SignaturePolicyEnvelope.Size(m)
+}
+func (m *SignaturePolicyEnvelope) XXX_DiscardUnknown() {
+ xxx_messageInfo_SignaturePolicyEnvelope.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SignaturePolicyEnvelope proto.InternalMessageInfo
+
+func (m *SignaturePolicyEnvelope) GetVersion() int32 {
+ if m != nil {
+ return m.Version
+ }
+ return 0
+}
+
+func (m *SignaturePolicyEnvelope) GetRule() *SignaturePolicy {
+ if m != nil {
+ return m.Rule
+ }
+ return nil
+}
+
+func (m *SignaturePolicyEnvelope) GetIdentities() []*msp.MSPPrincipal {
+ if m != nil {
+ return m.Identities
+ }
+ return nil
+}
+
+// SignaturePolicy is a recursive message structure which defines a featherweight DSL for describing
+// policies which are more complicated than 'exactly this signature'. The NOutOf operator is sufficent
+// to express AND as well as OR, as well as of course N out of the following M policies
+// SignedBy implies that the signature is from a valid certificate which is signed by the trusted
+// authority specified in the bytes. This will be the certificate itself for a self-signed certificate
+// and will be the CA for more traditional certificates
+type SignaturePolicy struct {
+ // Types that are valid to be assigned to Type:
+ // *SignaturePolicy_SignedBy
+ // *SignaturePolicy_NOutOf_
+ Type isSignaturePolicy_Type `protobuf_oneof:"Type"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SignaturePolicy) Reset() { *m = SignaturePolicy{} }
+func (m *SignaturePolicy) String() string { return proto.CompactTextString(m) }
+func (*SignaturePolicy) ProtoMessage() {}
+func (*SignaturePolicy) Descriptor() ([]byte, []int) {
+ return fileDescriptor_0d02cf0d453425a3, []int{2}
+}
+
+func (m *SignaturePolicy) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SignaturePolicy.Unmarshal(m, b)
+}
+func (m *SignaturePolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SignaturePolicy.Marshal(b, m, deterministic)
+}
+func (m *SignaturePolicy) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SignaturePolicy.Merge(m, src)
+}
+func (m *SignaturePolicy) XXX_Size() int {
+ return xxx_messageInfo_SignaturePolicy.Size(m)
+}
+func (m *SignaturePolicy) XXX_DiscardUnknown() {
+ xxx_messageInfo_SignaturePolicy.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SignaturePolicy proto.InternalMessageInfo
+
+type isSignaturePolicy_Type interface {
+ isSignaturePolicy_Type()
+}
+
+type SignaturePolicy_SignedBy struct {
+ SignedBy int32 `protobuf:"varint,1,opt,name=signed_by,json=signedBy,proto3,oneof"`
+}
+
+type SignaturePolicy_NOutOf_ struct {
+ NOutOf *SignaturePolicy_NOutOf `protobuf:"bytes,2,opt,name=n_out_of,json=nOutOf,proto3,oneof"`
+}
+
+func (*SignaturePolicy_SignedBy) isSignaturePolicy_Type() {}
+
+func (*SignaturePolicy_NOutOf_) isSignaturePolicy_Type() {}
+
+func (m *SignaturePolicy) GetType() isSignaturePolicy_Type {
+ if m != nil {
+ return m.Type
+ }
+ return nil
+}
+
+func (m *SignaturePolicy) GetSignedBy() int32 {
+ if x, ok := m.GetType().(*SignaturePolicy_SignedBy); ok {
+ return x.SignedBy
+ }
+ return 0
+}
+
+func (m *SignaturePolicy) GetNOutOf() *SignaturePolicy_NOutOf {
+ if x, ok := m.GetType().(*SignaturePolicy_NOutOf_); ok {
+ return x.NOutOf
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*SignaturePolicy) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*SignaturePolicy_SignedBy)(nil),
+ (*SignaturePolicy_NOutOf_)(nil),
+ }
+}
+
+type SignaturePolicy_NOutOf struct {
+ N int32 `protobuf:"varint,1,opt,name=n,proto3" json:"n,omitempty"`
+ Rules []*SignaturePolicy `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SignaturePolicy_NOutOf) Reset() { *m = SignaturePolicy_NOutOf{} }
+func (m *SignaturePolicy_NOutOf) String() string { return proto.CompactTextString(m) }
+func (*SignaturePolicy_NOutOf) ProtoMessage() {}
+func (*SignaturePolicy_NOutOf) Descriptor() ([]byte, []int) {
+ return fileDescriptor_0d02cf0d453425a3, []int{2, 0}
+}
+
+func (m *SignaturePolicy_NOutOf) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SignaturePolicy_NOutOf.Unmarshal(m, b)
+}
+func (m *SignaturePolicy_NOutOf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SignaturePolicy_NOutOf.Marshal(b, m, deterministic)
+}
+func (m *SignaturePolicy_NOutOf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SignaturePolicy_NOutOf.Merge(m, src)
+}
+func (m *SignaturePolicy_NOutOf) XXX_Size() int {
+ return xxx_messageInfo_SignaturePolicy_NOutOf.Size(m)
+}
+func (m *SignaturePolicy_NOutOf) XXX_DiscardUnknown() {
+ xxx_messageInfo_SignaturePolicy_NOutOf.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SignaturePolicy_NOutOf proto.InternalMessageInfo
+
+func (m *SignaturePolicy_NOutOf) GetN() int32 {
+ if m != nil {
+ return m.N
+ }
+ return 0
+}
+
+func (m *SignaturePolicy_NOutOf) GetRules() []*SignaturePolicy {
+ if m != nil {
+ return m.Rules
+ }
+ return nil
+}
+
+// ImplicitMetaPolicy is a policy type which depends on the hierarchical nature of the configuration
+// It is implicit because the rule is generate implicitly based on the number of sub policies
+// It is meta because it depends only on the result of other policies
+// When evaluated, this policy iterates over all immediate child sub-groups, retrieves the policy
+// of name sub_policy, evaluates the collection and applies the rule.
+// For example, with 4 sub-groups, and a policy name of "foo", ImplicitMetaPolicy retrieves
+// each sub-group, retrieves policy "foo" for each subgroup, evaluates it, and, in the case of ANY
+// 1 satisfied is sufficient, ALL would require 4 signatures, and MAJORITY would require 3 signatures.
+type ImplicitMetaPolicy struct {
+ SubPolicy string `protobuf:"bytes,1,opt,name=sub_policy,json=subPolicy,proto3" json:"sub_policy,omitempty"`
+ Rule ImplicitMetaPolicy_Rule `protobuf:"varint,2,opt,name=rule,proto3,enum=common.ImplicitMetaPolicy_Rule" json:"rule,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ImplicitMetaPolicy) Reset() { *m = ImplicitMetaPolicy{} }
+func (m *ImplicitMetaPolicy) String() string { return proto.CompactTextString(m) }
+func (*ImplicitMetaPolicy) ProtoMessage() {}
+func (*ImplicitMetaPolicy) Descriptor() ([]byte, []int) {
+ return fileDescriptor_0d02cf0d453425a3, []int{3}
+}
+
+func (m *ImplicitMetaPolicy) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ImplicitMetaPolicy.Unmarshal(m, b)
+}
+func (m *ImplicitMetaPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ImplicitMetaPolicy.Marshal(b, m, deterministic)
+}
+func (m *ImplicitMetaPolicy) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ImplicitMetaPolicy.Merge(m, src)
+}
+func (m *ImplicitMetaPolicy) XXX_Size() int {
+ return xxx_messageInfo_ImplicitMetaPolicy.Size(m)
+}
+func (m *ImplicitMetaPolicy) XXX_DiscardUnknown() {
+ xxx_messageInfo_ImplicitMetaPolicy.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ImplicitMetaPolicy proto.InternalMessageInfo
+
+func (m *ImplicitMetaPolicy) GetSubPolicy() string {
+ if m != nil {
+ return m.SubPolicy
+ }
+ return ""
+}
+
+func (m *ImplicitMetaPolicy) GetRule() ImplicitMetaPolicy_Rule {
+ if m != nil {
+ return m.Rule
+ }
+ return ImplicitMetaPolicy_ANY
+}
+
+func init() {
+ proto.RegisterEnum("common.Policy_PolicyType", Policy_PolicyType_name, Policy_PolicyType_value)
+ proto.RegisterEnum("common.ImplicitMetaPolicy_Rule", ImplicitMetaPolicy_Rule_name, ImplicitMetaPolicy_Rule_value)
+ proto.RegisterType((*Policy)(nil), "common.Policy")
+ proto.RegisterType((*SignaturePolicyEnvelope)(nil), "common.SignaturePolicyEnvelope")
+ proto.RegisterType((*SignaturePolicy)(nil), "common.SignaturePolicy")
+ proto.RegisterType((*SignaturePolicy_NOutOf)(nil), "common.SignaturePolicy.NOutOf")
+ proto.RegisterType((*ImplicitMetaPolicy)(nil), "common.ImplicitMetaPolicy")
+}
+
+func init() { proto.RegisterFile("common/policies.proto", fileDescriptor_0d02cf0d453425a3) }
+
+var fileDescriptor_0d02cf0d453425a3 = []byte{
+ // 483 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xdf, 0x8f, 0xd2, 0x40,
+ 0x10, 0xc7, 0x29, 0x3f, 0x0a, 0x0c, 0x9c, 0xd6, 0xcd, 0x19, 0xc8, 0x25, 0x2a, 0x69, 0x8c, 0x21,
+ 0x31, 0x94, 0x84, 0xf3, 0xc9, 0x37, 0x50, 0xe2, 0x55, 0x69, 0x21, 0x0b, 0xa7, 0x39, 0x5f, 0x1a,
+ 0x0a, 0x4b, 0x6f, 0x93, 0xb2, 0xbb, 0xe9, 0x6e, 0x89, 0xfc, 0x17, 0x3e, 0xf9, 0xcf, 0xf8, 0xcf,
+ 0x99, 0x76, 0xa9, 0x21, 0x77, 0xb9, 0xb7, 0x99, 0xe9, 0x67, 0xa6, 0xdf, 0xef, 0xec, 0xc0, 0xcb,
+ 0x0d, 0xdf, 0xef, 0x39, 0x1b, 0x0a, 0x1e, 0xd3, 0x0d, 0x25, 0xd2, 0x11, 0x09, 0x57, 0x1c, 0x99,
+ 0xba, 0x7c, 0xd5, 0xd9, 0x4b, 0x31, 0xdc, 0x4b, 0x11, 0x88, 0x84, 0xb2, 0x0d, 0x15, 0xeb, 0x58,
+ 0x03, 0xf6, 0x2f, 0x30, 0x17, 0x59, 0xcb, 0x11, 0x21, 0xa8, 0xaa, 0xa3, 0x20, 0x5d, 0xa3, 0x67,
+ 0xf4, 0x6b, 0x38, 0x8f, 0xd1, 0x25, 0xd4, 0x0e, 0xeb, 0x38, 0x25, 0xdd, 0x72, 0xcf, 0xe8, 0xb7,
+ 0xb1, 0x4e, 0xec, 0xcf, 0x00, 0xba, 0x67, 0x95, 0x31, 0x2d, 0xa8, 0xdf, 0xfa, 0xdf, 0xfc, 0xf9,
+ 0x0f, 0xdf, 0x2a, 0xa1, 0x0b, 0x68, 0x2e, 0xdd, 0x2f, 0xfe, 0x78, 0x75, 0x8b, 0xa7, 0x96, 0x81,
+ 0xea, 0x50, 0xf1, 0x96, 0x0b, 0xab, 0x8c, 0x5e, 0xc0, 0x85, 0xeb, 0x2d, 0x66, 0xee, 0x27, 0x77,
+ 0x15, 0x78, 0xd3, 0xd5, 0xd8, 0xaa, 0xd8, 0x7f, 0x0c, 0xe8, 0x2c, 0x69, 0xc4, 0xd6, 0x2a, 0x4d,
+ 0x88, 0x9e, 0x37, 0x65, 0x07, 0x12, 0x73, 0x41, 0x50, 0x17, 0xea, 0x07, 0x92, 0x48, 0xca, 0xd9,
+ 0x49, 0x4e, 0x91, 0xa2, 0xf7, 0x50, 0x4d, 0xd2, 0x58, 0x0b, 0x6a, 0x8d, 0x3a, 0x8e, 0xf6, 0xe7,
+ 0x3c, 0x18, 0x84, 0x73, 0x08, 0x7d, 0x00, 0xa0, 0x5b, 0xc2, 0x14, 0x55, 0x94, 0xc8, 0x6e, 0xa5,
+ 0x57, 0xe9, 0xb7, 0x46, 0x97, 0x45, 0x8b, 0xb7, 0x5c, 0x2c, 0x8a, 0x65, 0xe0, 0x33, 0xce, 0xfe,
+ 0x6b, 0xc0, 0xf3, 0x07, 0xf3, 0xd0, 0x2b, 0x68, 0x4a, 0x1a, 0x31, 0xb2, 0x0d, 0xc2, 0xa3, 0x96,
+ 0x74, 0x53, 0xc2, 0x0d, 0x5d, 0x9a, 0x1c, 0xd1, 0x47, 0x68, 0xb0, 0x80, 0xa7, 0x2a, 0xe0, 0xbb,
+ 0x93, 0xb2, 0xd7, 0x4f, 0x28, 0x73, 0xfc, 0x79, 0xaa, 0xe6, 0xbb, 0x9b, 0x12, 0x36, 0x59, 0x1e,
+ 0x5d, 0x4d, 0xc1, 0xd4, 0x35, 0xd4, 0x06, 0xa3, 0xf0, 0x6b, 0x30, 0x34, 0x80, 0x5a, 0x66, 0x42,
+ 0x76, 0xcb, 0xb9, 0xee, 0x27, 0xad, 0x6a, 0x6a, 0x62, 0x42, 0x35, 0x7b, 0x0e, 0xfb, 0xb7, 0x01,
+ 0xc8, 0xdd, 0x8b, 0xec, 0x0a, 0x94, 0x47, 0xd4, 0xfa, 0xbf, 0x01, 0x90, 0x69, 0x18, 0xe4, 0xe7,
+ 0xa1, 0x1d, 0x34, 0x71, 0x53, 0xa6, 0xe1, 0xe9, 0xf3, 0xf5, 0xd9, 0x5a, 0x9f, 0x8d, 0xde, 0x14,
+ 0xff, 0x7a, 0x3c, 0xc8, 0xc1, 0x69, 0x4c, 0xf4, 0x7a, 0xed, 0x77, 0x50, 0xcd, 0xb2, 0xec, 0x95,
+ 0xc7, 0xfe, 0x9d, 0x55, 0xca, 0x83, 0xd9, 0xcc, 0x32, 0x50, 0x1b, 0x1a, 0xde, 0xf8, 0xeb, 0x1c,
+ 0xbb, 0xab, 0x3b, 0xab, 0x3c, 0xf9, 0x0e, 0x6f, 0x79, 0x12, 0x39, 0xf7, 0x47, 0x41, 0x92, 0x98,
+ 0x6c, 0x23, 0x92, 0x38, 0xbb, 0x75, 0x98, 0xd0, 0x8d, 0xbe, 0x41, 0x79, 0xfa, 0xdb, 0x4f, 0x27,
+ 0xa2, 0xea, 0x3e, 0x0d, 0xb3, 0x74, 0x78, 0x06, 0x0f, 0x35, 0x3c, 0xd0, 0xf0, 0x20, 0xe2, 0x43,
+ 0xcd, 0x87, 0x66, 0x5e, 0xb9, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x38, 0xcf, 0x03, 0x1e, 0xfc,
+ 0x02, 0x00, 0x00,
+}
diff --git a/discovery/protocol.pb.go b/discovery/protocol.pb.go
new file mode 100644
index 0000000..632ef69
--- /dev/null
+++ b/discovery/protocol.pb.go
@@ -0,0 +1,1367 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: discovery/protocol.proto
+
+package discovery
+
+import (
+ context "context"
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ gossip "github.com/hyperledger/fabric-protos-go/gossip"
+ msp "github.com/hyperledger/fabric-protos-go/msp"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// SignedRequest contains a serialized Request in the payload field
+// and a signature.
+// The identity that is used to verify the signature
+// can be extracted from the authentication field of type AuthInfo
+// in the Request itself after deserializing it.
+type SignedRequest struct {
+ Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
+ Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SignedRequest) Reset() { *m = SignedRequest{} }
+func (m *SignedRequest) String() string { return proto.CompactTextString(m) }
+func (*SignedRequest) ProtoMessage() {}
+func (*SignedRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{0}
+}
+
+func (m *SignedRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SignedRequest.Unmarshal(m, b)
+}
+func (m *SignedRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SignedRequest.Marshal(b, m, deterministic)
+}
+func (m *SignedRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SignedRequest.Merge(m, src)
+}
+func (m *SignedRequest) XXX_Size() int {
+ return xxx_messageInfo_SignedRequest.Size(m)
+}
+func (m *SignedRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_SignedRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SignedRequest proto.InternalMessageInfo
+
+func (m *SignedRequest) GetPayload() []byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+func (m *SignedRequest) GetSignature() []byte {
+ if m != nil {
+ return m.Signature
+ }
+ return nil
+}
+
+// Request contains authentication info about the client that sent the request
+// and the queries it wishes to query the service
+type Request struct {
+ // authentication contains information that the service uses to check
+ // the client's eligibility for the queries.
+ Authentication *AuthInfo `protobuf:"bytes,1,opt,name=authentication,proto3" json:"authentication,omitempty"`
+ // queries
+ Queries []*Query `protobuf:"bytes,2,rep,name=queries,proto3" json:"queries,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Request) Reset() { *m = Request{} }
+func (m *Request) String() string { return proto.CompactTextString(m) }
+func (*Request) ProtoMessage() {}
+func (*Request) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{1}
+}
+
+func (m *Request) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Request.Unmarshal(m, b)
+}
+func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Request.Marshal(b, m, deterministic)
+}
+func (m *Request) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Request.Merge(m, src)
+}
+func (m *Request) XXX_Size() int {
+ return xxx_messageInfo_Request.Size(m)
+}
+func (m *Request) XXX_DiscardUnknown() {
+ xxx_messageInfo_Request.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Request proto.InternalMessageInfo
+
+func (m *Request) GetAuthentication() *AuthInfo {
+ if m != nil {
+ return m.Authentication
+ }
+ return nil
+}
+
+func (m *Request) GetQueries() []*Query {
+ if m != nil {
+ return m.Queries
+ }
+ return nil
+}
+
+type Response struct {
+ // The results are returned in the same order of the queries
+ Results []*QueryResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Response) Reset() { *m = Response{} }
+func (m *Response) String() string { return proto.CompactTextString(m) }
+func (*Response) ProtoMessage() {}
+func (*Response) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{2}
+}
+
+func (m *Response) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Response.Unmarshal(m, b)
+}
+func (m *Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Response.Marshal(b, m, deterministic)
+}
+func (m *Response) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Response.Merge(m, src)
+}
+func (m *Response) XXX_Size() int {
+ return xxx_messageInfo_Response.Size(m)
+}
+func (m *Response) XXX_DiscardUnknown() {
+ xxx_messageInfo_Response.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Response proto.InternalMessageInfo
+
+func (m *Response) GetResults() []*QueryResult {
+ if m != nil {
+ return m.Results
+ }
+ return nil
+}
+
+// AuthInfo aggregates authentication information that the server uses
+// to authenticate the client
+type AuthInfo struct {
+ // This is the identity of the client that is used to verify the signature
+ // on the SignedRequest's payload.
+ // It is a msp.SerializedIdentity in bytes form
+ ClientIdentity []byte `protobuf:"bytes,1,opt,name=client_identity,json=clientIdentity,proto3" json:"client_identity,omitempty"`
+ // This is the hash of the client's TLS cert.
+ // When the network is running with TLS, clients that don't include a certificate
+ // will be denied access to the service.
+ // Since the Request is encapsulated with a SignedRequest (which is signed),
+ // this binds the TLS session to the enrollement identity of the client and
+ // therefore both authenticates the client to the server,
+ // and also prevents the server from relaying the request message to another server.
+ ClientTlsCertHash []byte `protobuf:"bytes,2,opt,name=client_tls_cert_hash,json=clientTlsCertHash,proto3" json:"client_tls_cert_hash,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *AuthInfo) Reset() { *m = AuthInfo{} }
+func (m *AuthInfo) String() string { return proto.CompactTextString(m) }
+func (*AuthInfo) ProtoMessage() {}
+func (*AuthInfo) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{3}
+}
+
+func (m *AuthInfo) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_AuthInfo.Unmarshal(m, b)
+}
+func (m *AuthInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_AuthInfo.Marshal(b, m, deterministic)
+}
+func (m *AuthInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AuthInfo.Merge(m, src)
+}
+func (m *AuthInfo) XXX_Size() int {
+ return xxx_messageInfo_AuthInfo.Size(m)
+}
+func (m *AuthInfo) XXX_DiscardUnknown() {
+ xxx_messageInfo_AuthInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_AuthInfo proto.InternalMessageInfo
+
+func (m *AuthInfo) GetClientIdentity() []byte {
+ if m != nil {
+ return m.ClientIdentity
+ }
+ return nil
+}
+
+func (m *AuthInfo) GetClientTlsCertHash() []byte {
+ if m != nil {
+ return m.ClientTlsCertHash
+ }
+ return nil
+}
+
+// Query asks for information in the context of a specific channel
+type Query struct {
+ Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
+ // Types that are valid to be assigned to Query:
+ // *Query_ConfigQuery
+ // *Query_PeerQuery
+ // *Query_CcQuery
+ // *Query_LocalPeers
+ Query isQuery_Query `protobuf_oneof:"query"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Query) Reset() { *m = Query{} }
+func (m *Query) String() string { return proto.CompactTextString(m) }
+func (*Query) ProtoMessage() {}
+func (*Query) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{4}
+}
+
+func (m *Query) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Query.Unmarshal(m, b)
+}
+func (m *Query) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Query.Marshal(b, m, deterministic)
+}
+func (m *Query) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Query.Merge(m, src)
+}
+func (m *Query) XXX_Size() int {
+ return xxx_messageInfo_Query.Size(m)
+}
+func (m *Query) XXX_DiscardUnknown() {
+ xxx_messageInfo_Query.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Query proto.InternalMessageInfo
+
+func (m *Query) GetChannel() string {
+ if m != nil {
+ return m.Channel
+ }
+ return ""
+}
+
+type isQuery_Query interface {
+ isQuery_Query()
+}
+
+type Query_ConfigQuery struct {
+ ConfigQuery *ConfigQuery `protobuf:"bytes,2,opt,name=config_query,json=configQuery,proto3,oneof"`
+}
+
+type Query_PeerQuery struct {
+ PeerQuery *PeerMembershipQuery `protobuf:"bytes,3,opt,name=peer_query,json=peerQuery,proto3,oneof"`
+}
+
+type Query_CcQuery struct {
+ CcQuery *ChaincodeQuery `protobuf:"bytes,4,opt,name=cc_query,json=ccQuery,proto3,oneof"`
+}
+
+type Query_LocalPeers struct {
+ LocalPeers *LocalPeerQuery `protobuf:"bytes,5,opt,name=local_peers,json=localPeers,proto3,oneof"`
+}
+
+func (*Query_ConfigQuery) isQuery_Query() {}
+
+func (*Query_PeerQuery) isQuery_Query() {}
+
+func (*Query_CcQuery) isQuery_Query() {}
+
+func (*Query_LocalPeers) isQuery_Query() {}
+
+func (m *Query) GetQuery() isQuery_Query {
+ if m != nil {
+ return m.Query
+ }
+ return nil
+}
+
+func (m *Query) GetConfigQuery() *ConfigQuery {
+ if x, ok := m.GetQuery().(*Query_ConfigQuery); ok {
+ return x.ConfigQuery
+ }
+ return nil
+}
+
+func (m *Query) GetPeerQuery() *PeerMembershipQuery {
+ if x, ok := m.GetQuery().(*Query_PeerQuery); ok {
+ return x.PeerQuery
+ }
+ return nil
+}
+
+func (m *Query) GetCcQuery() *ChaincodeQuery {
+ if x, ok := m.GetQuery().(*Query_CcQuery); ok {
+ return x.CcQuery
+ }
+ return nil
+}
+
+func (m *Query) GetLocalPeers() *LocalPeerQuery {
+ if x, ok := m.GetQuery().(*Query_LocalPeers); ok {
+ return x.LocalPeers
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*Query) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*Query_ConfigQuery)(nil),
+ (*Query_PeerQuery)(nil),
+ (*Query_CcQuery)(nil),
+ (*Query_LocalPeers)(nil),
+ }
+}
+
+// QueryResult contains a result for a given Query.
+// The corresponding Query can be inferred by the index of the QueryResult from
+// its enclosing Response message.
+// QueryResults are ordered in the same order as the Queries are ordered in their enclosing Request.
+type QueryResult struct {
+ // Types that are valid to be assigned to Result:
+ // *QueryResult_Error
+ // *QueryResult_ConfigResult
+ // *QueryResult_CcQueryRes
+ // *QueryResult_Members
+ Result isQueryResult_Result `protobuf_oneof:"result"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryResult) Reset() { *m = QueryResult{} }
+func (m *QueryResult) String() string { return proto.CompactTextString(m) }
+func (*QueryResult) ProtoMessage() {}
+func (*QueryResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{5}
+}
+
+func (m *QueryResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryResult.Unmarshal(m, b)
+}
+func (m *QueryResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryResult.Marshal(b, m, deterministic)
+}
+func (m *QueryResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryResult.Merge(m, src)
+}
+func (m *QueryResult) XXX_Size() int {
+ return xxx_messageInfo_QueryResult.Size(m)
+}
+func (m *QueryResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryResult proto.InternalMessageInfo
+
+type isQueryResult_Result interface {
+ isQueryResult_Result()
+}
+
+type QueryResult_Error struct {
+ Error *Error `protobuf:"bytes,1,opt,name=error,proto3,oneof"`
+}
+
+type QueryResult_ConfigResult struct {
+ ConfigResult *ConfigResult `protobuf:"bytes,2,opt,name=config_result,json=configResult,proto3,oneof"`
+}
+
+type QueryResult_CcQueryRes struct {
+ CcQueryRes *ChaincodeQueryResult `protobuf:"bytes,3,opt,name=cc_query_res,json=ccQueryRes,proto3,oneof"`
+}
+
+type QueryResult_Members struct {
+ Members *PeerMembershipResult `protobuf:"bytes,4,opt,name=members,proto3,oneof"`
+}
+
+func (*QueryResult_Error) isQueryResult_Result() {}
+
+func (*QueryResult_ConfigResult) isQueryResult_Result() {}
+
+func (*QueryResult_CcQueryRes) isQueryResult_Result() {}
+
+func (*QueryResult_Members) isQueryResult_Result() {}
+
+func (m *QueryResult) GetResult() isQueryResult_Result {
+ if m != nil {
+ return m.Result
+ }
+ return nil
+}
+
+func (m *QueryResult) GetError() *Error {
+ if x, ok := m.GetResult().(*QueryResult_Error); ok {
+ return x.Error
+ }
+ return nil
+}
+
+func (m *QueryResult) GetConfigResult() *ConfigResult {
+ if x, ok := m.GetResult().(*QueryResult_ConfigResult); ok {
+ return x.ConfigResult
+ }
+ return nil
+}
+
+func (m *QueryResult) GetCcQueryRes() *ChaincodeQueryResult {
+ if x, ok := m.GetResult().(*QueryResult_CcQueryRes); ok {
+ return x.CcQueryRes
+ }
+ return nil
+}
+
+func (m *QueryResult) GetMembers() *PeerMembershipResult {
+ if x, ok := m.GetResult().(*QueryResult_Members); ok {
+ return x.Members
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*QueryResult) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*QueryResult_Error)(nil),
+ (*QueryResult_ConfigResult)(nil),
+ (*QueryResult_CcQueryRes)(nil),
+ (*QueryResult_Members)(nil),
+ }
+}
+
+// ConfigQuery requests a ConfigResult
+type ConfigQuery struct {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigQuery) Reset() { *m = ConfigQuery{} }
+func (m *ConfigQuery) String() string { return proto.CompactTextString(m) }
+func (*ConfigQuery) ProtoMessage() {}
+func (*ConfigQuery) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{6}
+}
+
+func (m *ConfigQuery) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigQuery.Unmarshal(m, b)
+}
+func (m *ConfigQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigQuery.Marshal(b, m, deterministic)
+}
+func (m *ConfigQuery) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigQuery.Merge(m, src)
+}
+func (m *ConfigQuery) XXX_Size() int {
+ return xxx_messageInfo_ConfigQuery.Size(m)
+}
+func (m *ConfigQuery) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigQuery.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigQuery proto.InternalMessageInfo
+
+type ConfigResult struct {
+ // msps is a map from MSP_ID to FabricMSPConfig
+ Msps map[string]*msp.FabricMSPConfig `protobuf:"bytes,1,rep,name=msps,proto3" json:"msps,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // orderers is a map from MSP_ID to endpoint lists of orderers
+ Orderers map[string]*Endpoints `protobuf:"bytes,2,rep,name=orderers,proto3" json:"orderers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigResult) Reset() { *m = ConfigResult{} }
+func (m *ConfigResult) String() string { return proto.CompactTextString(m) }
+func (*ConfigResult) ProtoMessage() {}
+func (*ConfigResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{7}
+}
+
+func (m *ConfigResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigResult.Unmarshal(m, b)
+}
+func (m *ConfigResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigResult.Marshal(b, m, deterministic)
+}
+func (m *ConfigResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigResult.Merge(m, src)
+}
+func (m *ConfigResult) XXX_Size() int {
+ return xxx_messageInfo_ConfigResult.Size(m)
+}
+func (m *ConfigResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigResult proto.InternalMessageInfo
+
+func (m *ConfigResult) GetMsps() map[string]*msp.FabricMSPConfig {
+ if m != nil {
+ return m.Msps
+ }
+ return nil
+}
+
+func (m *ConfigResult) GetOrderers() map[string]*Endpoints {
+ if m != nil {
+ return m.Orderers
+ }
+ return nil
+}
+
+// PeerMembershipQuery requests PeerMembershipResult.
+// The filter field may be optionally populated in order
+// for the peer membership to be filtered according to
+// chaincodes that are installed on peers and collection
+// access control policies.
+type PeerMembershipQuery struct {
+ Filter *ChaincodeInterest `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PeerMembershipQuery) Reset() { *m = PeerMembershipQuery{} }
+func (m *PeerMembershipQuery) String() string { return proto.CompactTextString(m) }
+func (*PeerMembershipQuery) ProtoMessage() {}
+func (*PeerMembershipQuery) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{8}
+}
+
+func (m *PeerMembershipQuery) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PeerMembershipQuery.Unmarshal(m, b)
+}
+func (m *PeerMembershipQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PeerMembershipQuery.Marshal(b, m, deterministic)
+}
+func (m *PeerMembershipQuery) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PeerMembershipQuery.Merge(m, src)
+}
+func (m *PeerMembershipQuery) XXX_Size() int {
+ return xxx_messageInfo_PeerMembershipQuery.Size(m)
+}
+func (m *PeerMembershipQuery) XXX_DiscardUnknown() {
+ xxx_messageInfo_PeerMembershipQuery.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PeerMembershipQuery proto.InternalMessageInfo
+
+func (m *PeerMembershipQuery) GetFilter() *ChaincodeInterest {
+ if m != nil {
+ return m.Filter
+ }
+ return nil
+}
+
+// PeerMembershipResult contains peers mapped by their organizations (MSP_ID)
+type PeerMembershipResult struct {
+ PeersByOrg map[string]*Peers `protobuf:"bytes,1,rep,name=peers_by_org,json=peersByOrg,proto3" json:"peers_by_org,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PeerMembershipResult) Reset() { *m = PeerMembershipResult{} }
+func (m *PeerMembershipResult) String() string { return proto.CompactTextString(m) }
+func (*PeerMembershipResult) ProtoMessage() {}
+func (*PeerMembershipResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{9}
+}
+
+func (m *PeerMembershipResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PeerMembershipResult.Unmarshal(m, b)
+}
+func (m *PeerMembershipResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PeerMembershipResult.Marshal(b, m, deterministic)
+}
+func (m *PeerMembershipResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PeerMembershipResult.Merge(m, src)
+}
+func (m *PeerMembershipResult) XXX_Size() int {
+ return xxx_messageInfo_PeerMembershipResult.Size(m)
+}
+func (m *PeerMembershipResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_PeerMembershipResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PeerMembershipResult proto.InternalMessageInfo
+
+func (m *PeerMembershipResult) GetPeersByOrg() map[string]*Peers {
+ if m != nil {
+ return m.PeersByOrg
+ }
+ return nil
+}
+
+// ChaincodeQuery requests ChaincodeQueryResults for a given
+// list of chaincode invocations.
+// Each invocation is a separate one, and the endorsement policy
+// is evaluated independantly for each given interest.
+type ChaincodeQuery struct {
+ Interests []*ChaincodeInterest `protobuf:"bytes,1,rep,name=interests,proto3" json:"interests,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeQuery) Reset() { *m = ChaincodeQuery{} }
+func (m *ChaincodeQuery) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeQuery) ProtoMessage() {}
+func (*ChaincodeQuery) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{10}
+}
+
+func (m *ChaincodeQuery) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeQuery.Unmarshal(m, b)
+}
+func (m *ChaincodeQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeQuery.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeQuery) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeQuery.Merge(m, src)
+}
+func (m *ChaincodeQuery) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeQuery.Size(m)
+}
+func (m *ChaincodeQuery) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeQuery.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeQuery proto.InternalMessageInfo
+
+func (m *ChaincodeQuery) GetInterests() []*ChaincodeInterest {
+ if m != nil {
+ return m.Interests
+ }
+ return nil
+}
+
+// ChaincodeInterest defines an interest about an endorsement
+// for a specific single chaincode invocation.
+// Multiple chaincodes indicate chaincode to chaincode invocations.
+type ChaincodeInterest struct {
+ Chaincodes []*ChaincodeCall `protobuf:"bytes,1,rep,name=chaincodes,proto3" json:"chaincodes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeInterest) Reset() { *m = ChaincodeInterest{} }
+func (m *ChaincodeInterest) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeInterest) ProtoMessage() {}
+func (*ChaincodeInterest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{11}
+}
+
+func (m *ChaincodeInterest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeInterest.Unmarshal(m, b)
+}
+func (m *ChaincodeInterest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeInterest.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeInterest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeInterest.Merge(m, src)
+}
+func (m *ChaincodeInterest) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeInterest.Size(m)
+}
+func (m *ChaincodeInterest) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeInterest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeInterest proto.InternalMessageInfo
+
+func (m *ChaincodeInterest) GetChaincodes() []*ChaincodeCall {
+ if m != nil {
+ return m.Chaincodes
+ }
+ return nil
+}
+
+// ChaincodeCall defines a call to a chaincode.
+// It may have collections that are related to the chaincode
+type ChaincodeCall struct {
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ CollectionNames []string `protobuf:"bytes,2,rep,name=collection_names,json=collectionNames,proto3" json:"collection_names,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeCall) Reset() { *m = ChaincodeCall{} }
+func (m *ChaincodeCall) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeCall) ProtoMessage() {}
+func (*ChaincodeCall) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{12}
+}
+
+func (m *ChaincodeCall) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeCall.Unmarshal(m, b)
+}
+func (m *ChaincodeCall) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeCall.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeCall) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeCall.Merge(m, src)
+}
+func (m *ChaincodeCall) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeCall.Size(m)
+}
+func (m *ChaincodeCall) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeCall.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeCall proto.InternalMessageInfo
+
+func (m *ChaincodeCall) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *ChaincodeCall) GetCollectionNames() []string {
+ if m != nil {
+ return m.CollectionNames
+ }
+ return nil
+}
+
+// ChaincodeQueryResult contains EndorsementDescriptors for
+// chaincodes
+type ChaincodeQueryResult struct {
+ Content []*EndorsementDescriptor `protobuf:"bytes,1,rep,name=content,proto3" json:"content,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeQueryResult) Reset() { *m = ChaincodeQueryResult{} }
+func (m *ChaincodeQueryResult) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeQueryResult) ProtoMessage() {}
+func (*ChaincodeQueryResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{13}
+}
+
+func (m *ChaincodeQueryResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeQueryResult.Unmarshal(m, b)
+}
+func (m *ChaincodeQueryResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeQueryResult.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeQueryResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeQueryResult.Merge(m, src)
+}
+func (m *ChaincodeQueryResult) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeQueryResult.Size(m)
+}
+func (m *ChaincodeQueryResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeQueryResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeQueryResult proto.InternalMessageInfo
+
+func (m *ChaincodeQueryResult) GetContent() []*EndorsementDescriptor {
+ if m != nil {
+ return m.Content
+ }
+ return nil
+}
+
+// LocalPeerQuery queries for peers in a non channel context
+type LocalPeerQuery struct {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *LocalPeerQuery) Reset() { *m = LocalPeerQuery{} }
+func (m *LocalPeerQuery) String() string { return proto.CompactTextString(m) }
+func (*LocalPeerQuery) ProtoMessage() {}
+func (*LocalPeerQuery) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{14}
+}
+
+func (m *LocalPeerQuery) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_LocalPeerQuery.Unmarshal(m, b)
+}
+func (m *LocalPeerQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_LocalPeerQuery.Marshal(b, m, deterministic)
+}
+func (m *LocalPeerQuery) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_LocalPeerQuery.Merge(m, src)
+}
+func (m *LocalPeerQuery) XXX_Size() int {
+ return xxx_messageInfo_LocalPeerQuery.Size(m)
+}
+func (m *LocalPeerQuery) XXX_DiscardUnknown() {
+ xxx_messageInfo_LocalPeerQuery.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_LocalPeerQuery proto.InternalMessageInfo
+
+// EndorsementDescriptor contains information about which peers can be used
+// to request endorsement from, such that the endorsement policy would be fulfilled.
+// Here is how to compute a set of peers to ask an endorsement from, given an EndorsementDescriptor:
+// Let e: G --> P be the endorsers_by_groups field that maps a group to a set of peers.
+// Note that applying e on a group g yields a set of peers.
+// 1) Select a layout l: G --> N out of the layouts given.
+// l is the quantities_by_group field of a Layout, and it maps a group to an integer.
+// 2) R = {} (an empty set of peers)
+// 3) For each group g in the layout l, compute n = l(g)
+// 3.1) Denote P_g as a set of n random peers {p0, p1, ... p_n} selected from e(g)
+// 3.2) R = R U P_g (add P_g to R)
+// 4) The set of peers R is the peers the client needs to request endorsements from
+type EndorsementDescriptor struct {
+ Chaincode string `protobuf:"bytes,1,opt,name=chaincode,proto3" json:"chaincode,omitempty"`
+ // Specifies the endorsers, separated to groups.
+ EndorsersByGroups map[string]*Peers `protobuf:"bytes,2,rep,name=endorsers_by_groups,json=endorsersByGroups,proto3" json:"endorsers_by_groups,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // Specifies options of fulfulling the endorsement policy.
+ // Each option lists the group names, and the amount of signatures needed
+ // from each group.
+ Layouts []*Layout `protobuf:"bytes,3,rep,name=layouts,proto3" json:"layouts,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *EndorsementDescriptor) Reset() { *m = EndorsementDescriptor{} }
+func (m *EndorsementDescriptor) String() string { return proto.CompactTextString(m) }
+func (*EndorsementDescriptor) ProtoMessage() {}
+func (*EndorsementDescriptor) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{15}
+}
+
+func (m *EndorsementDescriptor) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_EndorsementDescriptor.Unmarshal(m, b)
+}
+func (m *EndorsementDescriptor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_EndorsementDescriptor.Marshal(b, m, deterministic)
+}
+func (m *EndorsementDescriptor) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EndorsementDescriptor.Merge(m, src)
+}
+func (m *EndorsementDescriptor) XXX_Size() int {
+ return xxx_messageInfo_EndorsementDescriptor.Size(m)
+}
+func (m *EndorsementDescriptor) XXX_DiscardUnknown() {
+ xxx_messageInfo_EndorsementDescriptor.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EndorsementDescriptor proto.InternalMessageInfo
+
+func (m *EndorsementDescriptor) GetChaincode() string {
+ if m != nil {
+ return m.Chaincode
+ }
+ return ""
+}
+
+func (m *EndorsementDescriptor) GetEndorsersByGroups() map[string]*Peers {
+ if m != nil {
+ return m.EndorsersByGroups
+ }
+ return nil
+}
+
+func (m *EndorsementDescriptor) GetLayouts() []*Layout {
+ if m != nil {
+ return m.Layouts
+ }
+ return nil
+}
+
+// Layout contains a mapping from a group name to number of peers
+// that are needed for fulfilling an endorsement policy
+type Layout struct {
+ // Specifies how many non repeated signatures of each group
+ // are needed for endorsement
+ QuantitiesByGroup map[string]uint32 `protobuf:"bytes,1,rep,name=quantities_by_group,json=quantitiesByGroup,proto3" json:"quantities_by_group,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Layout) Reset() { *m = Layout{} }
+func (m *Layout) String() string { return proto.CompactTextString(m) }
+func (*Layout) ProtoMessage() {}
+func (*Layout) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{16}
+}
+
+func (m *Layout) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Layout.Unmarshal(m, b)
+}
+func (m *Layout) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Layout.Marshal(b, m, deterministic)
+}
+func (m *Layout) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Layout.Merge(m, src)
+}
+func (m *Layout) XXX_Size() int {
+ return xxx_messageInfo_Layout.Size(m)
+}
+func (m *Layout) XXX_DiscardUnknown() {
+ xxx_messageInfo_Layout.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Layout proto.InternalMessageInfo
+
+func (m *Layout) GetQuantitiesByGroup() map[string]uint32 {
+ if m != nil {
+ return m.QuantitiesByGroup
+ }
+ return nil
+}
+
+// Peers contains a list of Peer(s)
+type Peers struct {
+ Peers []*Peer `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Peers) Reset() { *m = Peers{} }
+func (m *Peers) String() string { return proto.CompactTextString(m) }
+func (*Peers) ProtoMessage() {}
+func (*Peers) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{17}
+}
+
+func (m *Peers) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Peers.Unmarshal(m, b)
+}
+func (m *Peers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Peers.Marshal(b, m, deterministic)
+}
+func (m *Peers) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Peers.Merge(m, src)
+}
+func (m *Peers) XXX_Size() int {
+ return xxx_messageInfo_Peers.Size(m)
+}
+func (m *Peers) XXX_DiscardUnknown() {
+ xxx_messageInfo_Peers.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Peers proto.InternalMessageInfo
+
+func (m *Peers) GetPeers() []*Peer {
+ if m != nil {
+ return m.Peers
+ }
+ return nil
+}
+
+// Peer contains information about the peer such as its channel specific
+// state, and membership information.
+type Peer struct {
+ // This is an Envelope of a GossipMessage with a gossip.StateInfo message
+ StateInfo *gossip.Envelope `protobuf:"bytes,1,opt,name=state_info,json=stateInfo,proto3" json:"state_info,omitempty"`
+ // This is an Envelope of a GossipMessage with a gossip.AliveMessage message
+ MembershipInfo *gossip.Envelope `protobuf:"bytes,2,opt,name=membership_info,json=membershipInfo,proto3" json:"membership_info,omitempty"`
+ // This is the msp.SerializedIdentity of the peer, represented in bytes.
+ Identity []byte `protobuf:"bytes,3,opt,name=identity,proto3" json:"identity,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Peer) Reset() { *m = Peer{} }
+func (m *Peer) String() string { return proto.CompactTextString(m) }
+func (*Peer) ProtoMessage() {}
+func (*Peer) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{18}
+}
+
+func (m *Peer) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Peer.Unmarshal(m, b)
+}
+func (m *Peer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Peer.Marshal(b, m, deterministic)
+}
+func (m *Peer) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Peer.Merge(m, src)
+}
+func (m *Peer) XXX_Size() int {
+ return xxx_messageInfo_Peer.Size(m)
+}
+func (m *Peer) XXX_DiscardUnknown() {
+ xxx_messageInfo_Peer.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Peer proto.InternalMessageInfo
+
+func (m *Peer) GetStateInfo() *gossip.Envelope {
+ if m != nil {
+ return m.StateInfo
+ }
+ return nil
+}
+
+func (m *Peer) GetMembershipInfo() *gossip.Envelope {
+ if m != nil {
+ return m.MembershipInfo
+ }
+ return nil
+}
+
+func (m *Peer) GetIdentity() []byte {
+ if m != nil {
+ return m.Identity
+ }
+ return nil
+}
+
+// Error denotes that something went wrong and contains the error message
+type Error struct {
+ Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Error) Reset() { *m = Error{} }
+func (m *Error) String() string { return proto.CompactTextString(m) }
+func (*Error) ProtoMessage() {}
+func (*Error) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{19}
+}
+
+func (m *Error) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Error.Unmarshal(m, b)
+}
+func (m *Error) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Error.Marshal(b, m, deterministic)
+}
+func (m *Error) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Error.Merge(m, src)
+}
+func (m *Error) XXX_Size() int {
+ return xxx_messageInfo_Error.Size(m)
+}
+func (m *Error) XXX_DiscardUnknown() {
+ xxx_messageInfo_Error.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Error proto.InternalMessageInfo
+
+func (m *Error) GetContent() string {
+ if m != nil {
+ return m.Content
+ }
+ return ""
+}
+
+// Endpoints is a list of Endpoint(s)
+type Endpoints struct {
+ Endpoint []*Endpoint `protobuf:"bytes,1,rep,name=endpoint,proto3" json:"endpoint,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Endpoints) Reset() { *m = Endpoints{} }
+func (m *Endpoints) String() string { return proto.CompactTextString(m) }
+func (*Endpoints) ProtoMessage() {}
+func (*Endpoints) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{20}
+}
+
+func (m *Endpoints) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Endpoints.Unmarshal(m, b)
+}
+func (m *Endpoints) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Endpoints.Marshal(b, m, deterministic)
+}
+func (m *Endpoints) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Endpoints.Merge(m, src)
+}
+func (m *Endpoints) XXX_Size() int {
+ return xxx_messageInfo_Endpoints.Size(m)
+}
+func (m *Endpoints) XXX_DiscardUnknown() {
+ xxx_messageInfo_Endpoints.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Endpoints proto.InternalMessageInfo
+
+func (m *Endpoints) GetEndpoint() []*Endpoint {
+ if m != nil {
+ return m.Endpoint
+ }
+ return nil
+}
+
+// Endpoint is a combination of a host and a port
+type Endpoint struct {
+ Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
+ Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Endpoint) Reset() { *m = Endpoint{} }
+func (m *Endpoint) String() string { return proto.CompactTextString(m) }
+func (*Endpoint) ProtoMessage() {}
+func (*Endpoint) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ce69bf33982206ff, []int{21}
+}
+
+func (m *Endpoint) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Endpoint.Unmarshal(m, b)
+}
+func (m *Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Endpoint.Marshal(b, m, deterministic)
+}
+func (m *Endpoint) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Endpoint.Merge(m, src)
+}
+func (m *Endpoint) XXX_Size() int {
+ return xxx_messageInfo_Endpoint.Size(m)
+}
+func (m *Endpoint) XXX_DiscardUnknown() {
+ xxx_messageInfo_Endpoint.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Endpoint proto.InternalMessageInfo
+
+func (m *Endpoint) GetHost() string {
+ if m != nil {
+ return m.Host
+ }
+ return ""
+}
+
+func (m *Endpoint) GetPort() uint32 {
+ if m != nil {
+ return m.Port
+ }
+ return 0
+}
+
+func init() {
+ proto.RegisterType((*SignedRequest)(nil), "discovery.SignedRequest")
+ proto.RegisterType((*Request)(nil), "discovery.Request")
+ proto.RegisterType((*Response)(nil), "discovery.Response")
+ proto.RegisterType((*AuthInfo)(nil), "discovery.AuthInfo")
+ proto.RegisterType((*Query)(nil), "discovery.Query")
+ proto.RegisterType((*QueryResult)(nil), "discovery.QueryResult")
+ proto.RegisterType((*ConfigQuery)(nil), "discovery.ConfigQuery")
+ proto.RegisterType((*ConfigResult)(nil), "discovery.ConfigResult")
+ proto.RegisterMapType((map[string]*msp.FabricMSPConfig)(nil), "discovery.ConfigResult.MspsEntry")
+ proto.RegisterMapType((map[string]*Endpoints)(nil), "discovery.ConfigResult.OrderersEntry")
+ proto.RegisterType((*PeerMembershipQuery)(nil), "discovery.PeerMembershipQuery")
+ proto.RegisterType((*PeerMembershipResult)(nil), "discovery.PeerMembershipResult")
+ proto.RegisterMapType((map[string]*Peers)(nil), "discovery.PeerMembershipResult.PeersByOrgEntry")
+ proto.RegisterType((*ChaincodeQuery)(nil), "discovery.ChaincodeQuery")
+ proto.RegisterType((*ChaincodeInterest)(nil), "discovery.ChaincodeInterest")
+ proto.RegisterType((*ChaincodeCall)(nil), "discovery.ChaincodeCall")
+ proto.RegisterType((*ChaincodeQueryResult)(nil), "discovery.ChaincodeQueryResult")
+ proto.RegisterType((*LocalPeerQuery)(nil), "discovery.LocalPeerQuery")
+ proto.RegisterType((*EndorsementDescriptor)(nil), "discovery.EndorsementDescriptor")
+ proto.RegisterMapType((map[string]*Peers)(nil), "discovery.EndorsementDescriptor.EndorsersByGroupsEntry")
+ proto.RegisterType((*Layout)(nil), "discovery.Layout")
+ proto.RegisterMapType((map[string]uint32)(nil), "discovery.Layout.QuantitiesByGroupEntry")
+ proto.RegisterType((*Peers)(nil), "discovery.Peers")
+ proto.RegisterType((*Peer)(nil), "discovery.Peer")
+ proto.RegisterType((*Error)(nil), "discovery.Error")
+ proto.RegisterType((*Endpoints)(nil), "discovery.Endpoints")
+ proto.RegisterType((*Endpoint)(nil), "discovery.Endpoint")
+}
+
+func init() { proto.RegisterFile("discovery/protocol.proto", fileDescriptor_ce69bf33982206ff) }
+
+var fileDescriptor_ce69bf33982206ff = []byte{
+ // 1145 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x5b, 0x6f, 0x1b, 0xc5,
+ 0x17, 0x8f, 0x9d, 0x38, 0xb6, 0x8f, 0xe3, 0x5c, 0x26, 0xfe, 0xf7, 0x6f, 0xac, 0x8a, 0xb6, 0x2b,
+ 0x15, 0x42, 0x51, 0x6d, 0x48, 0xb9, 0xb4, 0x49, 0x04, 0x6a, 0x2e, 0x6d, 0x22, 0x9a, 0x26, 0x99,
+ 0x22, 0x84, 0x78, 0xb1, 0x36, 0xeb, 0x93, 0xf5, 0x8a, 0xf5, 0xce, 0x66, 0x66, 0x36, 0xd2, 0x3e,
+ 0xf3, 0xce, 0x47, 0xe0, 0x85, 0x17, 0xc4, 0x47, 0xe0, 0xd3, 0xa1, 0x9d, 0xcb, 0x7a, 0xed, 0x6c,
+ 0x28, 0x12, 0x6f, 0x33, 0xe7, 0x9c, 0xdf, 0xef, 0x5c, 0xe7, 0x02, 0xdd, 0x51, 0x20, 0x3c, 0x76,
+ 0x83, 0x3c, 0x1d, 0xc4, 0x9c, 0x49, 0xe6, 0xb1, 0xb0, 0xaf, 0x16, 0xa4, 0x99, 0x6b, 0x7a, 0x1d,
+ 0x9f, 0x09, 0x11, 0xc4, 0x83, 0x09, 0x0a, 0xe1, 0xfa, 0xa8, 0x0d, 0x7a, 0x9d, 0x89, 0x88, 0x07,
+ 0x13, 0x11, 0x0f, 0x3d, 0x16, 0x5d, 0x05, 0xbe, 0x96, 0x3a, 0xaf, 0xa1, 0xfd, 0x2e, 0xf0, 0x23,
+ 0x1c, 0x51, 0xbc, 0x4e, 0x50, 0x48, 0xd2, 0x85, 0x7a, 0xec, 0xa6, 0x21, 0x73, 0x47, 0xdd, 0xca,
+ 0xc3, 0xca, 0xd6, 0x0a, 0xb5, 0x5b, 0x72, 0x1f, 0x9a, 0x22, 0xf0, 0x23, 0x57, 0x26, 0x1c, 0xbb,
+ 0x55, 0xa5, 0x9b, 0x0a, 0x1c, 0x0e, 0x75, 0x4b, 0xb1, 0x0b, 0xab, 0x6e, 0x22, 0xc7, 0x18, 0xc9,
+ 0xc0, 0x73, 0x65, 0xc0, 0x22, 0xc5, 0xd4, 0xda, 0xde, 0xec, 0xe7, 0x31, 0xf6, 0x5f, 0x26, 0x72,
+ 0x7c, 0x12, 0x5d, 0x31, 0x3a, 0x67, 0x4a, 0x9e, 0x40, 0xfd, 0x3a, 0x41, 0x1e, 0xa0, 0xe8, 0x56,
+ 0x1f, 0x2e, 0x6e, 0xb5, 0xb6, 0xd7, 0x0b, 0xa8, 0x8b, 0x04, 0x79, 0x4a, 0xad, 0x81, 0xb3, 0x07,
+ 0x0d, 0x8a, 0x22, 0x66, 0x91, 0x40, 0xf2, 0x19, 0xd4, 0x39, 0x8a, 0x24, 0x94, 0xa2, 0x5b, 0x51,
+ 0xb8, 0x7b, 0xb7, 0x70, 0x4a, 0x4d, 0xad, 0x99, 0x33, 0x82, 0x86, 0x8d, 0x82, 0x7c, 0x0c, 0x6b,
+ 0x5e, 0x18, 0x60, 0x24, 0x87, 0xc1, 0x28, 0x0b, 0x46, 0xa6, 0x26, 0xfb, 0x55, 0x2d, 0x3e, 0x31,
+ 0x52, 0x32, 0x80, 0x8e, 0x31, 0x94, 0xa1, 0x18, 0x7a, 0xc8, 0xe5, 0x70, 0xec, 0x8a, 0xb1, 0xa9,
+ 0xc7, 0x86, 0xd6, 0x7d, 0x1f, 0x8a, 0x03, 0xe4, 0xf2, 0xd8, 0x15, 0x63, 0xe7, 0xb7, 0x2a, 0xd4,
+ 0x94, 0xfb, 0xac, 0xb2, 0xde, 0xd8, 0x8d, 0x22, 0x0c, 0x15, 0x77, 0x93, 0xda, 0x2d, 0xd9, 0x85,
+ 0x15, 0xdd, 0x94, 0x61, 0x96, 0x59, 0xaa, 0xc8, 0x66, 0x13, 0x38, 0x50, 0x6a, 0xc5, 0x73, 0xbc,
+ 0x40, 0x5b, 0xde, 0x74, 0x4b, 0xbe, 0x05, 0x88, 0x11, 0xb9, 0x81, 0x2e, 0x2a, 0xe8, 0x87, 0x05,
+ 0xe8, 0x39, 0x22, 0x3f, 0xc5, 0xc9, 0x25, 0x72, 0x31, 0x0e, 0x62, 0x4b, 0xd1, 0xcc, 0x30, 0x9a,
+ 0xe0, 0x2b, 0x68, 0x78, 0x9e, 0x81, 0x2f, 0x29, 0xf8, 0x07, 0x45, 0xcf, 0x63, 0x37, 0x88, 0x3c,
+ 0x36, 0x42, 0x8b, 0xac, 0x7b, 0x9e, 0xc6, 0xed, 0x41, 0x2b, 0x64, 0x9e, 0x1b, 0x0e, 0x33, 0x2a,
+ 0xd1, 0xad, 0xdd, 0x82, 0xbe, 0xc9, 0xb4, 0xe7, 0xd6, 0xcf, 0xf1, 0x02, 0x85, 0xd0, 0x4a, 0xc4,
+ 0x7e, 0x1d, 0x6a, 0xca, 0xa5, 0xf3, 0x4b, 0x15, 0x5a, 0x85, 0xfe, 0x90, 0x2d, 0xa8, 0x21, 0xe7,
+ 0x8c, 0x9b, 0xa1, 0x29, 0xb6, 0xff, 0x28, 0x93, 0x1f, 0x2f, 0x50, 0x6d, 0x40, 0xbe, 0x81, 0xb6,
+ 0x29, 0x9b, 0x6e, 0xa9, 0xa9, 0xdb, 0xff, 0x6f, 0xd5, 0x4d, 0x33, 0x1f, 0x2f, 0x50, 0x53, 0x66,
+ 0xe3, 0xe9, 0x00, 0x56, 0x6c, 0xe2, 0x19, 0x83, 0xa9, 0xdd, 0x83, 0x3b, 0x93, 0xcf, 0x69, 0xc0,
+ 0x94, 0x80, 0xa2, 0x20, 0xbb, 0x50, 0x9f, 0xe8, 0xea, 0x9a, 0xe2, 0x3d, 0xb8, 0xb3, 0xf6, 0x39,
+ 0xde, 0x22, 0xf6, 0x1b, 0xb0, 0xac, 0x43, 0x77, 0xda, 0xd0, 0x2a, 0xf4, 0xd8, 0xf9, 0xb3, 0x0a,
+ 0x2b, 0xc5, 0xd8, 0xc9, 0x97, 0xb0, 0x34, 0x11, 0xb1, 0x9d, 0xed, 0x47, 0x77, 0xa4, 0xd8, 0x3f,
+ 0x15, 0xb1, 0x38, 0x8a, 0x24, 0x4f, 0xa9, 0x32, 0x27, 0x2f, 0xa1, 0xc1, 0xf8, 0x08, 0x79, 0x16,
+ 0x9e, 0x3e, 0x4e, 0x8f, 0xef, 0x82, 0x9e, 0x19, 0x3b, 0x0d, 0xcf, 0x61, 0xbd, 0x53, 0x68, 0xe6,
+ 0xac, 0x64, 0x1d, 0x16, 0x7f, 0xc6, 0xd4, 0xcc, 0x6f, 0xb6, 0x24, 0x4f, 0xa0, 0x76, 0xe3, 0x86,
+ 0x09, 0x9a, 0xe2, 0x77, 0xfa, 0x13, 0x11, 0xf7, 0x5f, 0xb9, 0x97, 0x3c, 0xf0, 0x4e, 0xdf, 0x9d,
+ 0x1b, 0x0f, 0xda, 0x64, 0xa7, 0xfa, 0xbc, 0xd2, 0xbb, 0x80, 0xf6, 0x8c, 0xa7, 0x7f, 0x43, 0x59,
+ 0x98, 0x80, 0x68, 0x14, 0xb3, 0x20, 0x92, 0xa2, 0x40, 0xe9, 0x7c, 0x07, 0x9b, 0x25, 0x43, 0x4e,
+ 0xbe, 0x80, 0xe5, 0xab, 0x20, 0x94, 0x68, 0x27, 0xe9, 0x7e, 0x59, 0x63, 0x4f, 0x22, 0x89, 0x1c,
+ 0x85, 0xa4, 0xc6, 0xd6, 0xf9, 0xab, 0x02, 0x9d, 0xb2, 0xb6, 0x91, 0x0b, 0x58, 0x51, 0x83, 0x3e,
+ 0xbc, 0x4c, 0x87, 0x8c, 0xfb, 0xa6, 0x13, 0x83, 0xf7, 0x74, 0xbb, 0xaf, 0xa7, 0x3d, 0x3d, 0xe3,
+ 0xbe, 0x2e, 0xac, 0x3a, 0xac, 0x5a, 0xd0, 0x3b, 0x83, 0xb5, 0x39, 0x75, 0x49, 0x35, 0x3e, 0x9a,
+ 0xad, 0xc6, 0xfa, 0x9c, 0xc3, 0x99, 0x4a, 0xbc, 0x81, 0xd5, 0xd9, 0x91, 0x25, 0x3b, 0xd0, 0x0c,
+ 0x4c, 0x8a, 0x76, 0x78, 0xfe, 0xb9, 0x0e, 0x53, 0x73, 0xe7, 0x14, 0x36, 0x6e, 0xe9, 0xc9, 0x73,
+ 0x00, 0xcf, 0x0a, 0x2d, 0x63, 0xb7, 0x8c, 0xf1, 0xc0, 0x0d, 0x43, 0x5a, 0xb0, 0x75, 0xde, 0x42,
+ 0x7b, 0x46, 0x49, 0x08, 0x2c, 0x45, 0xee, 0x04, 0x4d, 0xb2, 0x6a, 0x4d, 0x3e, 0x81, 0x75, 0x8f,
+ 0x85, 0x21, 0x7a, 0xd9, 0x63, 0x30, 0xcc, 0x44, 0x7a, 0x70, 0x9b, 0x74, 0x6d, 0x2a, 0x7f, 0x9b,
+ 0x89, 0x1d, 0x0a, 0x9d, 0xb2, 0xf3, 0x49, 0x76, 0xa0, 0xee, 0xb1, 0x48, 0x62, 0x24, 0x4d, 0x78,
+ 0x0f, 0x67, 0x07, 0x88, 0x71, 0x81, 0x13, 0x8c, 0xe4, 0x21, 0x0a, 0x8f, 0x07, 0xb1, 0x64, 0x9c,
+ 0x5a, 0x80, 0xb3, 0x0e, 0xab, 0xb3, 0xb7, 0x96, 0xf3, 0x7b, 0x15, 0xfe, 0x57, 0x0a, 0xca, 0xde,
+ 0xc3, 0x3c, 0x3b, 0x93, 0xc3, 0x54, 0x40, 0x7c, 0xd8, 0x44, 0x0d, 0xd3, 0x23, 0xe3, 0x73, 0x96,
+ 0xc4, 0xf6, 0x10, 0x7e, 0xfd, 0xbe, 0x88, 0xac, 0x34, 0x9b, 0x8d, 0xd7, 0x0a, 0xa9, 0xa7, 0x67,
+ 0x03, 0xe7, 0xe5, 0xe4, 0x53, 0xa8, 0x87, 0x6e, 0xca, 0x12, 0x99, 0x5d, 0x60, 0x19, 0xf9, 0x46,
+ 0xf1, 0x0a, 0x56, 0x1a, 0x6a, 0x2d, 0x7a, 0x3f, 0xc0, 0xbd, 0x72, 0xe6, 0xff, 0x38, 0x78, 0x7f,
+ 0x54, 0x60, 0x59, 0xfb, 0x22, 0x3f, 0xc2, 0xe6, 0x75, 0xe2, 0x66, 0xaf, 0x65, 0x80, 0xd3, 0xcc,
+ 0x4d, 0x2b, 0xb6, 0x6e, 0xc5, 0xd6, 0xbf, 0xc8, 0x8d, 0x4d, 0x40, 0x26, 0xd3, 0xeb, 0x79, 0x79,
+ 0xef, 0x10, 0xee, 0x95, 0x1b, 0x97, 0x04, 0xdf, 0x29, 0x06, 0xdf, 0x2e, 0x86, 0xda, 0x87, 0x9a,
+ 0x0a, 0x9f, 0x3c, 0x86, 0x9a, 0x7e, 0xb9, 0x74, 0x68, 0x6b, 0x73, 0xf9, 0x51, 0xad, 0x75, 0x7e,
+ 0xad, 0xc0, 0x52, 0xb6, 0x27, 0x03, 0x00, 0x21, 0x5d, 0x89, 0xc3, 0x20, 0xba, 0x62, 0xf9, 0xeb,
+ 0xa4, 0xff, 0x5a, 0xfd, 0xa3, 0xe8, 0x06, 0x43, 0x16, 0x23, 0x6d, 0x2a, 0x1b, 0xf5, 0xa9, 0x78,
+ 0x01, 0x6b, 0x93, 0xfc, 0x3a, 0xd0, 0xa8, 0xea, 0x1d, 0xa8, 0xd5, 0xa9, 0xa1, 0x82, 0xf6, 0xa0,
+ 0x91, 0x7f, 0x44, 0x16, 0xd5, 0xd7, 0x22, 0xdf, 0x3b, 0x8f, 0xa0, 0xa6, 0x1e, 0x42, 0xf5, 0xa1,
+ 0xc8, 0x07, 0x5d, 0x7f, 0x28, 0xcc, 0x18, 0xef, 0x41, 0x33, 0xbf, 0x29, 0xc9, 0x00, 0x1a, 0x68,
+ 0x36, 0x26, 0xd5, 0xcd, 0x92, 0x1b, 0x95, 0xe6, 0x46, 0xce, 0x36, 0x34, 0xac, 0x34, 0x3b, 0xa3,
+ 0x63, 0x26, 0xac, 0x03, 0xb5, 0xce, 0x64, 0x31, 0xe3, 0xd2, 0x94, 0x56, 0xad, 0xb7, 0x5f, 0x41,
+ 0xf3, 0xd0, 0x72, 0x92, 0x17, 0xd0, 0xb0, 0x1b, 0x52, 0xbc, 0x1b, 0x66, 0x7e, 0x9a, 0xbd, 0x62,
+ 0x14, 0xf6, 0x1b, 0xb7, 0xff, 0xec, 0xa7, 0xcf, 0xfd, 0x40, 0x8e, 0x93, 0xcb, 0xbe, 0xc7, 0x26,
+ 0x83, 0x71, 0x1a, 0x23, 0x0f, 0x71, 0xe4, 0x23, 0x1f, 0x5c, 0xa9, 0x37, 0xe5, 0xa9, 0xfa, 0xb6,
+ 0x8a, 0xa7, 0x3e, 0x1b, 0xe4, 0xe8, 0xcb, 0x65, 0x25, 0x7c, 0xf6, 0x77, 0x00, 0x00, 0x00, 0xff,
+ 0xff, 0x3c, 0x96, 0xb7, 0xa5, 0x1e, 0x0b, 0x00, 0x00,
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// DiscoveryClient is the client API for Discovery service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type DiscoveryClient interface {
+ // Discover receives a signed request, and returns a response.
+ Discover(ctx context.Context, in *SignedRequest, opts ...grpc.CallOption) (*Response, error)
+}
+
+type discoveryClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewDiscoveryClient(cc *grpc.ClientConn) DiscoveryClient {
+ return &discoveryClient{cc}
+}
+
+func (c *discoveryClient) Discover(ctx context.Context, in *SignedRequest, opts ...grpc.CallOption) (*Response, error) {
+ out := new(Response)
+ err := c.cc.Invoke(ctx, "/discovery.Discovery/Discover", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// DiscoveryServer is the server API for Discovery service.
+type DiscoveryServer interface {
+ // Discover receives a signed request, and returns a response.
+ Discover(context.Context, *SignedRequest) (*Response, error)
+}
+
+// UnimplementedDiscoveryServer can be embedded to have forward compatible implementations.
+type UnimplementedDiscoveryServer struct {
+}
+
+func (*UnimplementedDiscoveryServer) Discover(ctx context.Context, req *SignedRequest) (*Response, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method Discover not implemented")
+}
+
+func RegisterDiscoveryServer(s *grpc.Server, srv DiscoveryServer) {
+ s.RegisterService(&_Discovery_serviceDesc, srv)
+}
+
+func _Discovery_Discover_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(SignedRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(DiscoveryServer).Discover(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/discovery.Discovery/Discover",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(DiscoveryServer).Discover(ctx, req.(*SignedRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _Discovery_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "discovery.Discovery",
+ HandlerType: (*DiscoveryServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "Discover",
+ Handler: _Discovery_Discover_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "discovery/protocol.proto",
+}
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..d7d279d
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,8 @@
+module github.com/hyperledger/fabric-protos-go
+
+go 1.12
+
+require (
+ github.com/golang/protobuf v1.3.2
+ google.golang.org/grpc v1.23.0
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..4618af7
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,28 @@
+cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
+github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc=
+google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+google.golang.org/grpc v1.23.0 h1:AzbTB6ux+okLTzP8Ru1Xs41C303zdcfEht7MQnYJt5A=
+google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
diff --git a/gossip/message.pb.go b/gossip/message.pb.go
new file mode 100644
index 0000000..30829bf
--- /dev/null
+++ b/gossip/message.pb.go
@@ -0,0 +1,2540 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: gossip/message.proto
+
+package gossip
+
+import (
+ context "context"
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ common "github.com/hyperledger/fabric-protos-go/common"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type PullMsgType int32
+
+const (
+ PullMsgType_UNDEFINED PullMsgType = 0
+ PullMsgType_BLOCK_MSG PullMsgType = 1
+ PullMsgType_IDENTITY_MSG PullMsgType = 2
+)
+
+var PullMsgType_name = map[int32]string{
+ 0: "UNDEFINED",
+ 1: "BLOCK_MSG",
+ 2: "IDENTITY_MSG",
+}
+
+var PullMsgType_value = map[string]int32{
+ "UNDEFINED": 0,
+ "BLOCK_MSG": 1,
+ "IDENTITY_MSG": 2,
+}
+
+func (x PullMsgType) String() string {
+ return proto.EnumName(PullMsgType_name, int32(x))
+}
+
+func (PullMsgType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{0}
+}
+
+type GossipMessage_Tag int32
+
+const (
+ GossipMessage_UNDEFINED GossipMessage_Tag = 0
+ GossipMessage_EMPTY GossipMessage_Tag = 1
+ GossipMessage_ORG_ONLY GossipMessage_Tag = 2
+ GossipMessage_CHAN_ONLY GossipMessage_Tag = 3
+ GossipMessage_CHAN_AND_ORG GossipMessage_Tag = 4
+ GossipMessage_CHAN_OR_ORG GossipMessage_Tag = 5
+)
+
+var GossipMessage_Tag_name = map[int32]string{
+ 0: "UNDEFINED",
+ 1: "EMPTY",
+ 2: "ORG_ONLY",
+ 3: "CHAN_ONLY",
+ 4: "CHAN_AND_ORG",
+ 5: "CHAN_OR_ORG",
+}
+
+var GossipMessage_Tag_value = map[string]int32{
+ "UNDEFINED": 0,
+ "EMPTY": 1,
+ "ORG_ONLY": 2,
+ "CHAN_ONLY": 3,
+ "CHAN_AND_ORG": 4,
+ "CHAN_OR_ORG": 5,
+}
+
+func (x GossipMessage_Tag) String() string {
+ return proto.EnumName(GossipMessage_Tag_name, int32(x))
+}
+
+func (GossipMessage_Tag) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{3, 0}
+}
+
+// Envelope contains a marshalled
+// GossipMessage and a signature over it.
+// It may also contain a SecretEnvelope
+// which is a marshalled Secret
+type Envelope struct {
+ Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
+ Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
+ SecretEnvelope *SecretEnvelope `protobuf:"bytes,3,opt,name=secret_envelope,json=secretEnvelope,proto3" json:"secret_envelope,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Envelope) Reset() { *m = Envelope{} }
+func (m *Envelope) String() string { return proto.CompactTextString(m) }
+func (*Envelope) ProtoMessage() {}
+func (*Envelope) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{0}
+}
+
+func (m *Envelope) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Envelope.Unmarshal(m, b)
+}
+func (m *Envelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Envelope.Marshal(b, m, deterministic)
+}
+func (m *Envelope) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Envelope.Merge(m, src)
+}
+func (m *Envelope) XXX_Size() int {
+ return xxx_messageInfo_Envelope.Size(m)
+}
+func (m *Envelope) XXX_DiscardUnknown() {
+ xxx_messageInfo_Envelope.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Envelope proto.InternalMessageInfo
+
+func (m *Envelope) GetPayload() []byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+func (m *Envelope) GetSignature() []byte {
+ if m != nil {
+ return m.Signature
+ }
+ return nil
+}
+
+func (m *Envelope) GetSecretEnvelope() *SecretEnvelope {
+ if m != nil {
+ return m.SecretEnvelope
+ }
+ return nil
+}
+
+// SecretEnvelope is a marshalled Secret
+// and a signature over it.
+// The signature should be validated by the peer
+// that signed the Envelope the SecretEnvelope
+// came with
+type SecretEnvelope struct {
+ Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
+ Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SecretEnvelope) Reset() { *m = SecretEnvelope{} }
+func (m *SecretEnvelope) String() string { return proto.CompactTextString(m) }
+func (*SecretEnvelope) ProtoMessage() {}
+func (*SecretEnvelope) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{1}
+}
+
+func (m *SecretEnvelope) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SecretEnvelope.Unmarshal(m, b)
+}
+func (m *SecretEnvelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SecretEnvelope.Marshal(b, m, deterministic)
+}
+func (m *SecretEnvelope) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SecretEnvelope.Merge(m, src)
+}
+func (m *SecretEnvelope) XXX_Size() int {
+ return xxx_messageInfo_SecretEnvelope.Size(m)
+}
+func (m *SecretEnvelope) XXX_DiscardUnknown() {
+ xxx_messageInfo_SecretEnvelope.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SecretEnvelope proto.InternalMessageInfo
+
+func (m *SecretEnvelope) GetPayload() []byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+func (m *SecretEnvelope) GetSignature() []byte {
+ if m != nil {
+ return m.Signature
+ }
+ return nil
+}
+
+// Secret is an entity that might be omitted
+// from an Envelope when the remote peer that is receiving
+// the Envelope shouldn't know the secret's content.
+type Secret struct {
+ // Types that are valid to be assigned to Content:
+ // *Secret_InternalEndpoint
+ Content isSecret_Content `protobuf_oneof:"content"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Secret) Reset() { *m = Secret{} }
+func (m *Secret) String() string { return proto.CompactTextString(m) }
+func (*Secret) ProtoMessage() {}
+func (*Secret) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{2}
+}
+
+func (m *Secret) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Secret.Unmarshal(m, b)
+}
+func (m *Secret) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Secret.Marshal(b, m, deterministic)
+}
+func (m *Secret) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Secret.Merge(m, src)
+}
+func (m *Secret) XXX_Size() int {
+ return xxx_messageInfo_Secret.Size(m)
+}
+func (m *Secret) XXX_DiscardUnknown() {
+ xxx_messageInfo_Secret.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Secret proto.InternalMessageInfo
+
+type isSecret_Content interface {
+ isSecret_Content()
+}
+
+type Secret_InternalEndpoint struct {
+ InternalEndpoint string `protobuf:"bytes,1,opt,name=internalEndpoint,proto3,oneof"`
+}
+
+func (*Secret_InternalEndpoint) isSecret_Content() {}
+
+func (m *Secret) GetContent() isSecret_Content {
+ if m != nil {
+ return m.Content
+ }
+ return nil
+}
+
+func (m *Secret) GetInternalEndpoint() string {
+ if x, ok := m.GetContent().(*Secret_InternalEndpoint); ok {
+ return x.InternalEndpoint
+ }
+ return ""
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*Secret) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*Secret_InternalEndpoint)(nil),
+ }
+}
+
+// GossipMessage defines the message sent in a gossip network
+type GossipMessage struct {
+ // used mainly for testing, but will might be used in the future
+ // for ensuring message delivery by acking
+ Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"`
+ // The channel of the message.
+ // Some GossipMessages may set this to nil, because
+ // they are cross-channels but some may not
+ Channel []byte `protobuf:"bytes,2,opt,name=channel,proto3" json:"channel,omitempty"`
+ // determines to which peers it is allowed
+ // to forward the message
+ Tag GossipMessage_Tag `protobuf:"varint,3,opt,name=tag,proto3,enum=gossip.GossipMessage_Tag" json:"tag,omitempty"`
+ // Types that are valid to be assigned to Content:
+ // *GossipMessage_AliveMsg
+ // *GossipMessage_MemReq
+ // *GossipMessage_MemRes
+ // *GossipMessage_DataMsg
+ // *GossipMessage_Hello
+ // *GossipMessage_DataDig
+ // *GossipMessage_DataReq
+ // *GossipMessage_DataUpdate
+ // *GossipMessage_Empty
+ // *GossipMessage_Conn
+ // *GossipMessage_StateInfo
+ // *GossipMessage_StateSnapshot
+ // *GossipMessage_StateInfoPullReq
+ // *GossipMessage_StateRequest
+ // *GossipMessage_StateResponse
+ // *GossipMessage_LeadershipMsg
+ // *GossipMessage_PeerIdentity
+ // *GossipMessage_Ack
+ // *GossipMessage_PrivateReq
+ // *GossipMessage_PrivateRes
+ // *GossipMessage_PrivateData
+ Content isGossipMessage_Content `protobuf_oneof:"content"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GossipMessage) Reset() { *m = GossipMessage{} }
+func (m *GossipMessage) String() string { return proto.CompactTextString(m) }
+func (*GossipMessage) ProtoMessage() {}
+func (*GossipMessage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{3}
+}
+
+func (m *GossipMessage) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GossipMessage.Unmarshal(m, b)
+}
+func (m *GossipMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GossipMessage.Marshal(b, m, deterministic)
+}
+func (m *GossipMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GossipMessage.Merge(m, src)
+}
+func (m *GossipMessage) XXX_Size() int {
+ return xxx_messageInfo_GossipMessage.Size(m)
+}
+func (m *GossipMessage) XXX_DiscardUnknown() {
+ xxx_messageInfo_GossipMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GossipMessage proto.InternalMessageInfo
+
+func (m *GossipMessage) GetNonce() uint64 {
+ if m != nil {
+ return m.Nonce
+ }
+ return 0
+}
+
+func (m *GossipMessage) GetChannel() []byte {
+ if m != nil {
+ return m.Channel
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetTag() GossipMessage_Tag {
+ if m != nil {
+ return m.Tag
+ }
+ return GossipMessage_UNDEFINED
+}
+
+type isGossipMessage_Content interface {
+ isGossipMessage_Content()
+}
+
+type GossipMessage_AliveMsg struct {
+ AliveMsg *AliveMessage `protobuf:"bytes,5,opt,name=alive_msg,json=aliveMsg,proto3,oneof"`
+}
+
+type GossipMessage_MemReq struct {
+ MemReq *MembershipRequest `protobuf:"bytes,6,opt,name=mem_req,json=memReq,proto3,oneof"`
+}
+
+type GossipMessage_MemRes struct {
+ MemRes *MembershipResponse `protobuf:"bytes,7,opt,name=mem_res,json=memRes,proto3,oneof"`
+}
+
+type GossipMessage_DataMsg struct {
+ DataMsg *DataMessage `protobuf:"bytes,8,opt,name=data_msg,json=dataMsg,proto3,oneof"`
+}
+
+type GossipMessage_Hello struct {
+ Hello *GossipHello `protobuf:"bytes,9,opt,name=hello,proto3,oneof"`
+}
+
+type GossipMessage_DataDig struct {
+ DataDig *DataDigest `protobuf:"bytes,10,opt,name=data_dig,json=dataDig,proto3,oneof"`
+}
+
+type GossipMessage_DataReq struct {
+ DataReq *DataRequest `protobuf:"bytes,11,opt,name=data_req,json=dataReq,proto3,oneof"`
+}
+
+type GossipMessage_DataUpdate struct {
+ DataUpdate *DataUpdate `protobuf:"bytes,12,opt,name=data_update,json=dataUpdate,proto3,oneof"`
+}
+
+type GossipMessage_Empty struct {
+ Empty *Empty `protobuf:"bytes,13,opt,name=empty,proto3,oneof"`
+}
+
+type GossipMessage_Conn struct {
+ Conn *ConnEstablish `protobuf:"bytes,14,opt,name=conn,proto3,oneof"`
+}
+
+type GossipMessage_StateInfo struct {
+ StateInfo *StateInfo `protobuf:"bytes,15,opt,name=state_info,json=stateInfo,proto3,oneof"`
+}
+
+type GossipMessage_StateSnapshot struct {
+ StateSnapshot *StateInfoSnapshot `protobuf:"bytes,16,opt,name=state_snapshot,json=stateSnapshot,proto3,oneof"`
+}
+
+type GossipMessage_StateInfoPullReq struct {
+ StateInfoPullReq *StateInfoPullRequest `protobuf:"bytes,17,opt,name=state_info_pull_req,json=stateInfoPullReq,proto3,oneof"`
+}
+
+type GossipMessage_StateRequest struct {
+ StateRequest *RemoteStateRequest `protobuf:"bytes,18,opt,name=state_request,json=stateRequest,proto3,oneof"`
+}
+
+type GossipMessage_StateResponse struct {
+ StateResponse *RemoteStateResponse `protobuf:"bytes,19,opt,name=state_response,json=stateResponse,proto3,oneof"`
+}
+
+type GossipMessage_LeadershipMsg struct {
+ LeadershipMsg *LeadershipMessage `protobuf:"bytes,20,opt,name=leadership_msg,json=leadershipMsg,proto3,oneof"`
+}
+
+type GossipMessage_PeerIdentity struct {
+ PeerIdentity *PeerIdentity `protobuf:"bytes,21,opt,name=peer_identity,json=peerIdentity,proto3,oneof"`
+}
+
+type GossipMessage_Ack struct {
+ Ack *Acknowledgement `protobuf:"bytes,22,opt,name=ack,proto3,oneof"`
+}
+
+type GossipMessage_PrivateReq struct {
+ PrivateReq *RemotePvtDataRequest `protobuf:"bytes,23,opt,name=privateReq,proto3,oneof"`
+}
+
+type GossipMessage_PrivateRes struct {
+ PrivateRes *RemotePvtDataResponse `protobuf:"bytes,24,opt,name=privateRes,proto3,oneof"`
+}
+
+type GossipMessage_PrivateData struct {
+ PrivateData *PrivateDataMessage `protobuf:"bytes,25,opt,name=private_data,json=privateData,proto3,oneof"`
+}
+
+func (*GossipMessage_AliveMsg) isGossipMessage_Content() {}
+
+func (*GossipMessage_MemReq) isGossipMessage_Content() {}
+
+func (*GossipMessage_MemRes) isGossipMessage_Content() {}
+
+func (*GossipMessage_DataMsg) isGossipMessage_Content() {}
+
+func (*GossipMessage_Hello) isGossipMessage_Content() {}
+
+func (*GossipMessage_DataDig) isGossipMessage_Content() {}
+
+func (*GossipMessage_DataReq) isGossipMessage_Content() {}
+
+func (*GossipMessage_DataUpdate) isGossipMessage_Content() {}
+
+func (*GossipMessage_Empty) isGossipMessage_Content() {}
+
+func (*GossipMessage_Conn) isGossipMessage_Content() {}
+
+func (*GossipMessage_StateInfo) isGossipMessage_Content() {}
+
+func (*GossipMessage_StateSnapshot) isGossipMessage_Content() {}
+
+func (*GossipMessage_StateInfoPullReq) isGossipMessage_Content() {}
+
+func (*GossipMessage_StateRequest) isGossipMessage_Content() {}
+
+func (*GossipMessage_StateResponse) isGossipMessage_Content() {}
+
+func (*GossipMessage_LeadershipMsg) isGossipMessage_Content() {}
+
+func (*GossipMessage_PeerIdentity) isGossipMessage_Content() {}
+
+func (*GossipMessage_Ack) isGossipMessage_Content() {}
+
+func (*GossipMessage_PrivateReq) isGossipMessage_Content() {}
+
+func (*GossipMessage_PrivateRes) isGossipMessage_Content() {}
+
+func (*GossipMessage_PrivateData) isGossipMessage_Content() {}
+
+func (m *GossipMessage) GetContent() isGossipMessage_Content {
+ if m != nil {
+ return m.Content
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetAliveMsg() *AliveMessage {
+ if x, ok := m.GetContent().(*GossipMessage_AliveMsg); ok {
+ return x.AliveMsg
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetMemReq() *MembershipRequest {
+ if x, ok := m.GetContent().(*GossipMessage_MemReq); ok {
+ return x.MemReq
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetMemRes() *MembershipResponse {
+ if x, ok := m.GetContent().(*GossipMessage_MemRes); ok {
+ return x.MemRes
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetDataMsg() *DataMessage {
+ if x, ok := m.GetContent().(*GossipMessage_DataMsg); ok {
+ return x.DataMsg
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetHello() *GossipHello {
+ if x, ok := m.GetContent().(*GossipMessage_Hello); ok {
+ return x.Hello
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetDataDig() *DataDigest {
+ if x, ok := m.GetContent().(*GossipMessage_DataDig); ok {
+ return x.DataDig
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetDataReq() *DataRequest {
+ if x, ok := m.GetContent().(*GossipMessage_DataReq); ok {
+ return x.DataReq
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetDataUpdate() *DataUpdate {
+ if x, ok := m.GetContent().(*GossipMessage_DataUpdate); ok {
+ return x.DataUpdate
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetEmpty() *Empty {
+ if x, ok := m.GetContent().(*GossipMessage_Empty); ok {
+ return x.Empty
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetConn() *ConnEstablish {
+ if x, ok := m.GetContent().(*GossipMessage_Conn); ok {
+ return x.Conn
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetStateInfo() *StateInfo {
+ if x, ok := m.GetContent().(*GossipMessage_StateInfo); ok {
+ return x.StateInfo
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetStateSnapshot() *StateInfoSnapshot {
+ if x, ok := m.GetContent().(*GossipMessage_StateSnapshot); ok {
+ return x.StateSnapshot
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetStateInfoPullReq() *StateInfoPullRequest {
+ if x, ok := m.GetContent().(*GossipMessage_StateInfoPullReq); ok {
+ return x.StateInfoPullReq
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetStateRequest() *RemoteStateRequest {
+ if x, ok := m.GetContent().(*GossipMessage_StateRequest); ok {
+ return x.StateRequest
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetStateResponse() *RemoteStateResponse {
+ if x, ok := m.GetContent().(*GossipMessage_StateResponse); ok {
+ return x.StateResponse
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetLeadershipMsg() *LeadershipMessage {
+ if x, ok := m.GetContent().(*GossipMessage_LeadershipMsg); ok {
+ return x.LeadershipMsg
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetPeerIdentity() *PeerIdentity {
+ if x, ok := m.GetContent().(*GossipMessage_PeerIdentity); ok {
+ return x.PeerIdentity
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetAck() *Acknowledgement {
+ if x, ok := m.GetContent().(*GossipMessage_Ack); ok {
+ return x.Ack
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetPrivateReq() *RemotePvtDataRequest {
+ if x, ok := m.GetContent().(*GossipMessage_PrivateReq); ok {
+ return x.PrivateReq
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetPrivateRes() *RemotePvtDataResponse {
+ if x, ok := m.GetContent().(*GossipMessage_PrivateRes); ok {
+ return x.PrivateRes
+ }
+ return nil
+}
+
+func (m *GossipMessage) GetPrivateData() *PrivateDataMessage {
+ if x, ok := m.GetContent().(*GossipMessage_PrivateData); ok {
+ return x.PrivateData
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*GossipMessage) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*GossipMessage_AliveMsg)(nil),
+ (*GossipMessage_MemReq)(nil),
+ (*GossipMessage_MemRes)(nil),
+ (*GossipMessage_DataMsg)(nil),
+ (*GossipMessage_Hello)(nil),
+ (*GossipMessage_DataDig)(nil),
+ (*GossipMessage_DataReq)(nil),
+ (*GossipMessage_DataUpdate)(nil),
+ (*GossipMessage_Empty)(nil),
+ (*GossipMessage_Conn)(nil),
+ (*GossipMessage_StateInfo)(nil),
+ (*GossipMessage_StateSnapshot)(nil),
+ (*GossipMessage_StateInfoPullReq)(nil),
+ (*GossipMessage_StateRequest)(nil),
+ (*GossipMessage_StateResponse)(nil),
+ (*GossipMessage_LeadershipMsg)(nil),
+ (*GossipMessage_PeerIdentity)(nil),
+ (*GossipMessage_Ack)(nil),
+ (*GossipMessage_PrivateReq)(nil),
+ (*GossipMessage_PrivateRes)(nil),
+ (*GossipMessage_PrivateData)(nil),
+ }
+}
+
+// StateInfo is used for a peer to relay its state information
+// to other peers
+type StateInfo struct {
+ Timestamp *PeerTime `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+ PkiId []byte `protobuf:"bytes,3,opt,name=pki_id,json=pkiId,proto3" json:"pki_id,omitempty"`
+ // channel_MAC is an authentication code that proves
+ // that the peer that sent this message knows
+ // the name of the channel.
+ Channel_MAC []byte `protobuf:"bytes,4,opt,name=channel_MAC,json=channelMAC,proto3" json:"channel_MAC,omitempty"`
+ Properties *Properties `protobuf:"bytes,5,opt,name=properties,proto3" json:"properties,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StateInfo) Reset() { *m = StateInfo{} }
+func (m *StateInfo) String() string { return proto.CompactTextString(m) }
+func (*StateInfo) ProtoMessage() {}
+func (*StateInfo) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{4}
+}
+
+func (m *StateInfo) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StateInfo.Unmarshal(m, b)
+}
+func (m *StateInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StateInfo.Marshal(b, m, deterministic)
+}
+func (m *StateInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StateInfo.Merge(m, src)
+}
+func (m *StateInfo) XXX_Size() int {
+ return xxx_messageInfo_StateInfo.Size(m)
+}
+func (m *StateInfo) XXX_DiscardUnknown() {
+ xxx_messageInfo_StateInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StateInfo proto.InternalMessageInfo
+
+func (m *StateInfo) GetTimestamp() *PeerTime {
+ if m != nil {
+ return m.Timestamp
+ }
+ return nil
+}
+
+func (m *StateInfo) GetPkiId() []byte {
+ if m != nil {
+ return m.PkiId
+ }
+ return nil
+}
+
+func (m *StateInfo) GetChannel_MAC() []byte {
+ if m != nil {
+ return m.Channel_MAC
+ }
+ return nil
+}
+
+func (m *StateInfo) GetProperties() *Properties {
+ if m != nil {
+ return m.Properties
+ }
+ return nil
+}
+
+type Properties struct {
+ LedgerHeight uint64 `protobuf:"varint,1,opt,name=ledger_height,json=ledgerHeight,proto3" json:"ledger_height,omitempty"`
+ LeftChannel bool `protobuf:"varint,2,opt,name=left_channel,json=leftChannel,proto3" json:"left_channel,omitempty"`
+ Chaincodes []*Chaincode `protobuf:"bytes,3,rep,name=chaincodes,proto3" json:"chaincodes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Properties) Reset() { *m = Properties{} }
+func (m *Properties) String() string { return proto.CompactTextString(m) }
+func (*Properties) ProtoMessage() {}
+func (*Properties) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{5}
+}
+
+func (m *Properties) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Properties.Unmarshal(m, b)
+}
+func (m *Properties) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Properties.Marshal(b, m, deterministic)
+}
+func (m *Properties) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Properties.Merge(m, src)
+}
+func (m *Properties) XXX_Size() int {
+ return xxx_messageInfo_Properties.Size(m)
+}
+func (m *Properties) XXX_DiscardUnknown() {
+ xxx_messageInfo_Properties.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Properties proto.InternalMessageInfo
+
+func (m *Properties) GetLedgerHeight() uint64 {
+ if m != nil {
+ return m.LedgerHeight
+ }
+ return 0
+}
+
+func (m *Properties) GetLeftChannel() bool {
+ if m != nil {
+ return m.LeftChannel
+ }
+ return false
+}
+
+func (m *Properties) GetChaincodes() []*Chaincode {
+ if m != nil {
+ return m.Chaincodes
+ }
+ return nil
+}
+
+// StateInfoSnapshot is an aggregation of StateInfo messages
+type StateInfoSnapshot struct {
+ Elements []*Envelope `protobuf:"bytes,1,rep,name=elements,proto3" json:"elements,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StateInfoSnapshot) Reset() { *m = StateInfoSnapshot{} }
+func (m *StateInfoSnapshot) String() string { return proto.CompactTextString(m) }
+func (*StateInfoSnapshot) ProtoMessage() {}
+func (*StateInfoSnapshot) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{6}
+}
+
+func (m *StateInfoSnapshot) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StateInfoSnapshot.Unmarshal(m, b)
+}
+func (m *StateInfoSnapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StateInfoSnapshot.Marshal(b, m, deterministic)
+}
+func (m *StateInfoSnapshot) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StateInfoSnapshot.Merge(m, src)
+}
+func (m *StateInfoSnapshot) XXX_Size() int {
+ return xxx_messageInfo_StateInfoSnapshot.Size(m)
+}
+func (m *StateInfoSnapshot) XXX_DiscardUnknown() {
+ xxx_messageInfo_StateInfoSnapshot.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StateInfoSnapshot proto.InternalMessageInfo
+
+func (m *StateInfoSnapshot) GetElements() []*Envelope {
+ if m != nil {
+ return m.Elements
+ }
+ return nil
+}
+
+// StateInfoPullRequest is used to fetch a StateInfoSnapshot
+// from a remote peer
+type StateInfoPullRequest struct {
+ // channel_MAC is an authentication code that proves
+ // that the peer that sent this message knows
+ // the name of the channel.
+ Channel_MAC []byte `protobuf:"bytes,1,opt,name=channel_MAC,json=channelMAC,proto3" json:"channel_MAC,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StateInfoPullRequest) Reset() { *m = StateInfoPullRequest{} }
+func (m *StateInfoPullRequest) String() string { return proto.CompactTextString(m) }
+func (*StateInfoPullRequest) ProtoMessage() {}
+func (*StateInfoPullRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{7}
+}
+
+func (m *StateInfoPullRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StateInfoPullRequest.Unmarshal(m, b)
+}
+func (m *StateInfoPullRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StateInfoPullRequest.Marshal(b, m, deterministic)
+}
+func (m *StateInfoPullRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StateInfoPullRequest.Merge(m, src)
+}
+func (m *StateInfoPullRequest) XXX_Size() int {
+ return xxx_messageInfo_StateInfoPullRequest.Size(m)
+}
+func (m *StateInfoPullRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_StateInfoPullRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StateInfoPullRequest proto.InternalMessageInfo
+
+func (m *StateInfoPullRequest) GetChannel_MAC() []byte {
+ if m != nil {
+ return m.Channel_MAC
+ }
+ return nil
+}
+
+// ConnEstablish is the message used for the gossip handshake
+// Whenever a peer connects to another peer, it handshakes
+// with it by sending this message that proves its identity
+type ConnEstablish struct {
+ PkiId []byte `protobuf:"bytes,1,opt,name=pki_id,json=pkiId,proto3" json:"pki_id,omitempty"`
+ Identity []byte `protobuf:"bytes,2,opt,name=identity,proto3" json:"identity,omitempty"`
+ TlsCertHash []byte `protobuf:"bytes,3,opt,name=tls_cert_hash,json=tlsCertHash,proto3" json:"tls_cert_hash,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConnEstablish) Reset() { *m = ConnEstablish{} }
+func (m *ConnEstablish) String() string { return proto.CompactTextString(m) }
+func (*ConnEstablish) ProtoMessage() {}
+func (*ConnEstablish) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{8}
+}
+
+func (m *ConnEstablish) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConnEstablish.Unmarshal(m, b)
+}
+func (m *ConnEstablish) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConnEstablish.Marshal(b, m, deterministic)
+}
+func (m *ConnEstablish) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConnEstablish.Merge(m, src)
+}
+func (m *ConnEstablish) XXX_Size() int {
+ return xxx_messageInfo_ConnEstablish.Size(m)
+}
+func (m *ConnEstablish) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConnEstablish.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConnEstablish proto.InternalMessageInfo
+
+func (m *ConnEstablish) GetPkiId() []byte {
+ if m != nil {
+ return m.PkiId
+ }
+ return nil
+}
+
+func (m *ConnEstablish) GetIdentity() []byte {
+ if m != nil {
+ return m.Identity
+ }
+ return nil
+}
+
+func (m *ConnEstablish) GetTlsCertHash() []byte {
+ if m != nil {
+ return m.TlsCertHash
+ }
+ return nil
+}
+
+// PeerIdentity defines the identity of the peer
+// Used to make other peers learn of the identity
+// of a certain peer
+type PeerIdentity struct {
+ PkiId []byte `protobuf:"bytes,1,opt,name=pki_id,json=pkiId,proto3" json:"pki_id,omitempty"`
+ Cert []byte `protobuf:"bytes,2,opt,name=cert,proto3" json:"cert,omitempty"`
+ Metadata []byte `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PeerIdentity) Reset() { *m = PeerIdentity{} }
+func (m *PeerIdentity) String() string { return proto.CompactTextString(m) }
+func (*PeerIdentity) ProtoMessage() {}
+func (*PeerIdentity) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{9}
+}
+
+func (m *PeerIdentity) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PeerIdentity.Unmarshal(m, b)
+}
+func (m *PeerIdentity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PeerIdentity.Marshal(b, m, deterministic)
+}
+func (m *PeerIdentity) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PeerIdentity.Merge(m, src)
+}
+func (m *PeerIdentity) XXX_Size() int {
+ return xxx_messageInfo_PeerIdentity.Size(m)
+}
+func (m *PeerIdentity) XXX_DiscardUnknown() {
+ xxx_messageInfo_PeerIdentity.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PeerIdentity proto.InternalMessageInfo
+
+func (m *PeerIdentity) GetPkiId() []byte {
+ if m != nil {
+ return m.PkiId
+ }
+ return nil
+}
+
+func (m *PeerIdentity) GetCert() []byte {
+ if m != nil {
+ return m.Cert
+ }
+ return nil
+}
+
+func (m *PeerIdentity) GetMetadata() []byte {
+ if m != nil {
+ return m.Metadata
+ }
+ return nil
+}
+
+// DataRequest is a message used for a peer to request
+// certain data blocks from a remote peer
+type DataRequest struct {
+ Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"`
+ Digests [][]byte `protobuf:"bytes,2,rep,name=digests,proto3" json:"digests,omitempty"`
+ MsgType PullMsgType `protobuf:"varint,3,opt,name=msg_type,json=msgType,proto3,enum=gossip.PullMsgType" json:"msg_type,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *DataRequest) Reset() { *m = DataRequest{} }
+func (m *DataRequest) String() string { return proto.CompactTextString(m) }
+func (*DataRequest) ProtoMessage() {}
+func (*DataRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{10}
+}
+
+func (m *DataRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_DataRequest.Unmarshal(m, b)
+}
+func (m *DataRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_DataRequest.Marshal(b, m, deterministic)
+}
+func (m *DataRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DataRequest.Merge(m, src)
+}
+func (m *DataRequest) XXX_Size() int {
+ return xxx_messageInfo_DataRequest.Size(m)
+}
+func (m *DataRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_DataRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DataRequest proto.InternalMessageInfo
+
+func (m *DataRequest) GetNonce() uint64 {
+ if m != nil {
+ return m.Nonce
+ }
+ return 0
+}
+
+func (m *DataRequest) GetDigests() [][]byte {
+ if m != nil {
+ return m.Digests
+ }
+ return nil
+}
+
+func (m *DataRequest) GetMsgType() PullMsgType {
+ if m != nil {
+ return m.MsgType
+ }
+ return PullMsgType_UNDEFINED
+}
+
+// GossipHello is the message that is used for the peer to initiate
+// a pull round with another peer
+type GossipHello struct {
+ Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"`
+ Metadata []byte `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ MsgType PullMsgType `protobuf:"varint,3,opt,name=msg_type,json=msgType,proto3,enum=gossip.PullMsgType" json:"msg_type,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GossipHello) Reset() { *m = GossipHello{} }
+func (m *GossipHello) String() string { return proto.CompactTextString(m) }
+func (*GossipHello) ProtoMessage() {}
+func (*GossipHello) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{11}
+}
+
+func (m *GossipHello) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GossipHello.Unmarshal(m, b)
+}
+func (m *GossipHello) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GossipHello.Marshal(b, m, deterministic)
+}
+func (m *GossipHello) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GossipHello.Merge(m, src)
+}
+func (m *GossipHello) XXX_Size() int {
+ return xxx_messageInfo_GossipHello.Size(m)
+}
+func (m *GossipHello) XXX_DiscardUnknown() {
+ xxx_messageInfo_GossipHello.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GossipHello proto.InternalMessageInfo
+
+func (m *GossipHello) GetNonce() uint64 {
+ if m != nil {
+ return m.Nonce
+ }
+ return 0
+}
+
+func (m *GossipHello) GetMetadata() []byte {
+ if m != nil {
+ return m.Metadata
+ }
+ return nil
+}
+
+func (m *GossipHello) GetMsgType() PullMsgType {
+ if m != nil {
+ return m.MsgType
+ }
+ return PullMsgType_UNDEFINED
+}
+
+// DataUpdate is the final message in the pull phase
+// sent from the receiver to the initiator
+type DataUpdate struct {
+ Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"`
+ Data []*Envelope `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"`
+ MsgType PullMsgType `protobuf:"varint,3,opt,name=msg_type,json=msgType,proto3,enum=gossip.PullMsgType" json:"msg_type,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *DataUpdate) Reset() { *m = DataUpdate{} }
+func (m *DataUpdate) String() string { return proto.CompactTextString(m) }
+func (*DataUpdate) ProtoMessage() {}
+func (*DataUpdate) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{12}
+}
+
+func (m *DataUpdate) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_DataUpdate.Unmarshal(m, b)
+}
+func (m *DataUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_DataUpdate.Marshal(b, m, deterministic)
+}
+func (m *DataUpdate) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DataUpdate.Merge(m, src)
+}
+func (m *DataUpdate) XXX_Size() int {
+ return xxx_messageInfo_DataUpdate.Size(m)
+}
+func (m *DataUpdate) XXX_DiscardUnknown() {
+ xxx_messageInfo_DataUpdate.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DataUpdate proto.InternalMessageInfo
+
+func (m *DataUpdate) GetNonce() uint64 {
+ if m != nil {
+ return m.Nonce
+ }
+ return 0
+}
+
+func (m *DataUpdate) GetData() []*Envelope {
+ if m != nil {
+ return m.Data
+ }
+ return nil
+}
+
+func (m *DataUpdate) GetMsgType() PullMsgType {
+ if m != nil {
+ return m.MsgType
+ }
+ return PullMsgType_UNDEFINED
+}
+
+// DataDigest is the message sent from the receiver peer
+// to the initator peer and contains the data items it has
+type DataDigest struct {
+ Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"`
+ Digests [][]byte `protobuf:"bytes,2,rep,name=digests,proto3" json:"digests,omitempty"`
+ MsgType PullMsgType `protobuf:"varint,3,opt,name=msg_type,json=msgType,proto3,enum=gossip.PullMsgType" json:"msg_type,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *DataDigest) Reset() { *m = DataDigest{} }
+func (m *DataDigest) String() string { return proto.CompactTextString(m) }
+func (*DataDigest) ProtoMessage() {}
+func (*DataDigest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{13}
+}
+
+func (m *DataDigest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_DataDigest.Unmarshal(m, b)
+}
+func (m *DataDigest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_DataDigest.Marshal(b, m, deterministic)
+}
+func (m *DataDigest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DataDigest.Merge(m, src)
+}
+func (m *DataDigest) XXX_Size() int {
+ return xxx_messageInfo_DataDigest.Size(m)
+}
+func (m *DataDigest) XXX_DiscardUnknown() {
+ xxx_messageInfo_DataDigest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DataDigest proto.InternalMessageInfo
+
+func (m *DataDigest) GetNonce() uint64 {
+ if m != nil {
+ return m.Nonce
+ }
+ return 0
+}
+
+func (m *DataDigest) GetDigests() [][]byte {
+ if m != nil {
+ return m.Digests
+ }
+ return nil
+}
+
+func (m *DataDigest) GetMsgType() PullMsgType {
+ if m != nil {
+ return m.MsgType
+ }
+ return PullMsgType_UNDEFINED
+}
+
+// DataMessage is the message that contains a block
+type DataMessage struct {
+ Payload *Payload `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *DataMessage) Reset() { *m = DataMessage{} }
+func (m *DataMessage) String() string { return proto.CompactTextString(m) }
+func (*DataMessage) ProtoMessage() {}
+func (*DataMessage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{14}
+}
+
+func (m *DataMessage) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_DataMessage.Unmarshal(m, b)
+}
+func (m *DataMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_DataMessage.Marshal(b, m, deterministic)
+}
+func (m *DataMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DataMessage.Merge(m, src)
+}
+func (m *DataMessage) XXX_Size() int {
+ return xxx_messageInfo_DataMessage.Size(m)
+}
+func (m *DataMessage) XXX_DiscardUnknown() {
+ xxx_messageInfo_DataMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DataMessage proto.InternalMessageInfo
+
+func (m *DataMessage) GetPayload() *Payload {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+// PrivateDataMessage message which includes private
+// data information to distributed once transaction
+// has been endorsed
+type PrivateDataMessage struct {
+ Payload *PrivatePayload `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PrivateDataMessage) Reset() { *m = PrivateDataMessage{} }
+func (m *PrivateDataMessage) String() string { return proto.CompactTextString(m) }
+func (*PrivateDataMessage) ProtoMessage() {}
+func (*PrivateDataMessage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{15}
+}
+
+func (m *PrivateDataMessage) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PrivateDataMessage.Unmarshal(m, b)
+}
+func (m *PrivateDataMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PrivateDataMessage.Marshal(b, m, deterministic)
+}
+func (m *PrivateDataMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PrivateDataMessage.Merge(m, src)
+}
+func (m *PrivateDataMessage) XXX_Size() int {
+ return xxx_messageInfo_PrivateDataMessage.Size(m)
+}
+func (m *PrivateDataMessage) XXX_DiscardUnknown() {
+ xxx_messageInfo_PrivateDataMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PrivateDataMessage proto.InternalMessageInfo
+
+func (m *PrivateDataMessage) GetPayload() *PrivatePayload {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+// Payload contains a block
+type Payload struct {
+ SeqNum uint64 `protobuf:"varint,1,opt,name=seq_num,json=seqNum,proto3" json:"seq_num,omitempty"`
+ Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
+ PrivateData [][]byte `protobuf:"bytes,3,rep,name=private_data,json=privateData,proto3" json:"private_data,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Payload) Reset() { *m = Payload{} }
+func (m *Payload) String() string { return proto.CompactTextString(m) }
+func (*Payload) ProtoMessage() {}
+func (*Payload) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{16}
+}
+
+func (m *Payload) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Payload.Unmarshal(m, b)
+}
+func (m *Payload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Payload.Marshal(b, m, deterministic)
+}
+func (m *Payload) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Payload.Merge(m, src)
+}
+func (m *Payload) XXX_Size() int {
+ return xxx_messageInfo_Payload.Size(m)
+}
+func (m *Payload) XXX_DiscardUnknown() {
+ xxx_messageInfo_Payload.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Payload proto.InternalMessageInfo
+
+func (m *Payload) GetSeqNum() uint64 {
+ if m != nil {
+ return m.SeqNum
+ }
+ return 0
+}
+
+func (m *Payload) GetData() []byte {
+ if m != nil {
+ return m.Data
+ }
+ return nil
+}
+
+func (m *Payload) GetPrivateData() [][]byte {
+ if m != nil {
+ return m.PrivateData
+ }
+ return nil
+}
+
+// PrivatePayload payload to encapsulate private
+// data with collection name to enable routing
+// based on collection partitioning
+type PrivatePayload struct {
+ CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"`
+ Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
+ TxId string `protobuf:"bytes,3,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
+ PrivateRwset []byte `protobuf:"bytes,4,opt,name=private_rwset,json=privateRwset,proto3" json:"private_rwset,omitempty"`
+ PrivateSimHeight uint64 `protobuf:"varint,5,opt,name=private_sim_height,json=privateSimHeight,proto3" json:"private_sim_height,omitempty"`
+ CollectionConfigs *common.CollectionConfigPackage `protobuf:"bytes,6,opt,name=collection_configs,json=collectionConfigs,proto3" json:"collection_configs,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PrivatePayload) Reset() { *m = PrivatePayload{} }
+func (m *PrivatePayload) String() string { return proto.CompactTextString(m) }
+func (*PrivatePayload) ProtoMessage() {}
+func (*PrivatePayload) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{17}
+}
+
+func (m *PrivatePayload) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PrivatePayload.Unmarshal(m, b)
+}
+func (m *PrivatePayload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PrivatePayload.Marshal(b, m, deterministic)
+}
+func (m *PrivatePayload) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PrivatePayload.Merge(m, src)
+}
+func (m *PrivatePayload) XXX_Size() int {
+ return xxx_messageInfo_PrivatePayload.Size(m)
+}
+func (m *PrivatePayload) XXX_DiscardUnknown() {
+ xxx_messageInfo_PrivatePayload.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PrivatePayload proto.InternalMessageInfo
+
+func (m *PrivatePayload) GetCollectionName() string {
+ if m != nil {
+ return m.CollectionName
+ }
+ return ""
+}
+
+func (m *PrivatePayload) GetNamespace() string {
+ if m != nil {
+ return m.Namespace
+ }
+ return ""
+}
+
+func (m *PrivatePayload) GetTxId() string {
+ if m != nil {
+ return m.TxId
+ }
+ return ""
+}
+
+func (m *PrivatePayload) GetPrivateRwset() []byte {
+ if m != nil {
+ return m.PrivateRwset
+ }
+ return nil
+}
+
+func (m *PrivatePayload) GetPrivateSimHeight() uint64 {
+ if m != nil {
+ return m.PrivateSimHeight
+ }
+ return 0
+}
+
+func (m *PrivatePayload) GetCollectionConfigs() *common.CollectionConfigPackage {
+ if m != nil {
+ return m.CollectionConfigs
+ }
+ return nil
+}
+
+// AliveMessage is sent to inform remote peers
+// of a peer's existence and activity
+type AliveMessage struct {
+ Membership *Member `protobuf:"bytes,1,opt,name=membership,proto3" json:"membership,omitempty"`
+ Timestamp *PeerTime `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+ Identity []byte `protobuf:"bytes,4,opt,name=identity,proto3" json:"identity,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *AliveMessage) Reset() { *m = AliveMessage{} }
+func (m *AliveMessage) String() string { return proto.CompactTextString(m) }
+func (*AliveMessage) ProtoMessage() {}
+func (*AliveMessage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{18}
+}
+
+func (m *AliveMessage) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_AliveMessage.Unmarshal(m, b)
+}
+func (m *AliveMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_AliveMessage.Marshal(b, m, deterministic)
+}
+func (m *AliveMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AliveMessage.Merge(m, src)
+}
+func (m *AliveMessage) XXX_Size() int {
+ return xxx_messageInfo_AliveMessage.Size(m)
+}
+func (m *AliveMessage) XXX_DiscardUnknown() {
+ xxx_messageInfo_AliveMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_AliveMessage proto.InternalMessageInfo
+
+func (m *AliveMessage) GetMembership() *Member {
+ if m != nil {
+ return m.Membership
+ }
+ return nil
+}
+
+func (m *AliveMessage) GetTimestamp() *PeerTime {
+ if m != nil {
+ return m.Timestamp
+ }
+ return nil
+}
+
+func (m *AliveMessage) GetIdentity() []byte {
+ if m != nil {
+ return m.Identity
+ }
+ return nil
+}
+
+// Leadership Message is sent during leader election to inform
+// remote peers about intent of peer to proclaim itself as leader
+type LeadershipMessage struct {
+ PkiId []byte `protobuf:"bytes,1,opt,name=pki_id,json=pkiId,proto3" json:"pki_id,omitempty"`
+ Timestamp *PeerTime `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+ IsDeclaration bool `protobuf:"varint,3,opt,name=is_declaration,json=isDeclaration,proto3" json:"is_declaration,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *LeadershipMessage) Reset() { *m = LeadershipMessage{} }
+func (m *LeadershipMessage) String() string { return proto.CompactTextString(m) }
+func (*LeadershipMessage) ProtoMessage() {}
+func (*LeadershipMessage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{19}
+}
+
+func (m *LeadershipMessage) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_LeadershipMessage.Unmarshal(m, b)
+}
+func (m *LeadershipMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_LeadershipMessage.Marshal(b, m, deterministic)
+}
+func (m *LeadershipMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_LeadershipMessage.Merge(m, src)
+}
+func (m *LeadershipMessage) XXX_Size() int {
+ return xxx_messageInfo_LeadershipMessage.Size(m)
+}
+func (m *LeadershipMessage) XXX_DiscardUnknown() {
+ xxx_messageInfo_LeadershipMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_LeadershipMessage proto.InternalMessageInfo
+
+func (m *LeadershipMessage) GetPkiId() []byte {
+ if m != nil {
+ return m.PkiId
+ }
+ return nil
+}
+
+func (m *LeadershipMessage) GetTimestamp() *PeerTime {
+ if m != nil {
+ return m.Timestamp
+ }
+ return nil
+}
+
+func (m *LeadershipMessage) GetIsDeclaration() bool {
+ if m != nil {
+ return m.IsDeclaration
+ }
+ return false
+}
+
+// PeerTime defines the logical time of a peer's life
+type PeerTime struct {
+ IncNum uint64 `protobuf:"varint,1,opt,name=inc_num,json=incNum,proto3" json:"inc_num,omitempty"`
+ SeqNum uint64 `protobuf:"varint,2,opt,name=seq_num,json=seqNum,proto3" json:"seq_num,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PeerTime) Reset() { *m = PeerTime{} }
+func (m *PeerTime) String() string { return proto.CompactTextString(m) }
+func (*PeerTime) ProtoMessage() {}
+func (*PeerTime) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{20}
+}
+
+func (m *PeerTime) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PeerTime.Unmarshal(m, b)
+}
+func (m *PeerTime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PeerTime.Marshal(b, m, deterministic)
+}
+func (m *PeerTime) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PeerTime.Merge(m, src)
+}
+func (m *PeerTime) XXX_Size() int {
+ return xxx_messageInfo_PeerTime.Size(m)
+}
+func (m *PeerTime) XXX_DiscardUnknown() {
+ xxx_messageInfo_PeerTime.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PeerTime proto.InternalMessageInfo
+
+func (m *PeerTime) GetIncNum() uint64 {
+ if m != nil {
+ return m.IncNum
+ }
+ return 0
+}
+
+func (m *PeerTime) GetSeqNum() uint64 {
+ if m != nil {
+ return m.SeqNum
+ }
+ return 0
+}
+
+// MembershipRequest is used to ask membership information
+// from a remote peer
+type MembershipRequest struct {
+ SelfInformation *Envelope `protobuf:"bytes,1,opt,name=self_information,json=selfInformation,proto3" json:"self_information,omitempty"`
+ Known [][]byte `protobuf:"bytes,2,rep,name=known,proto3" json:"known,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MembershipRequest) Reset() { *m = MembershipRequest{} }
+func (m *MembershipRequest) String() string { return proto.CompactTextString(m) }
+func (*MembershipRequest) ProtoMessage() {}
+func (*MembershipRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{21}
+}
+
+func (m *MembershipRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MembershipRequest.Unmarshal(m, b)
+}
+func (m *MembershipRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MembershipRequest.Marshal(b, m, deterministic)
+}
+func (m *MembershipRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MembershipRequest.Merge(m, src)
+}
+func (m *MembershipRequest) XXX_Size() int {
+ return xxx_messageInfo_MembershipRequest.Size(m)
+}
+func (m *MembershipRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_MembershipRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MembershipRequest proto.InternalMessageInfo
+
+func (m *MembershipRequest) GetSelfInformation() *Envelope {
+ if m != nil {
+ return m.SelfInformation
+ }
+ return nil
+}
+
+func (m *MembershipRequest) GetKnown() [][]byte {
+ if m != nil {
+ return m.Known
+ }
+ return nil
+}
+
+// MembershipResponse is used for replying to MembershipRequests
+type MembershipResponse struct {
+ Alive []*Envelope `protobuf:"bytes,1,rep,name=alive,proto3" json:"alive,omitempty"`
+ Dead []*Envelope `protobuf:"bytes,2,rep,name=dead,proto3" json:"dead,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MembershipResponse) Reset() { *m = MembershipResponse{} }
+func (m *MembershipResponse) String() string { return proto.CompactTextString(m) }
+func (*MembershipResponse) ProtoMessage() {}
+func (*MembershipResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{22}
+}
+
+func (m *MembershipResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MembershipResponse.Unmarshal(m, b)
+}
+func (m *MembershipResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MembershipResponse.Marshal(b, m, deterministic)
+}
+func (m *MembershipResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MembershipResponse.Merge(m, src)
+}
+func (m *MembershipResponse) XXX_Size() int {
+ return xxx_messageInfo_MembershipResponse.Size(m)
+}
+func (m *MembershipResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_MembershipResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MembershipResponse proto.InternalMessageInfo
+
+func (m *MembershipResponse) GetAlive() []*Envelope {
+ if m != nil {
+ return m.Alive
+ }
+ return nil
+}
+
+func (m *MembershipResponse) GetDead() []*Envelope {
+ if m != nil {
+ return m.Dead
+ }
+ return nil
+}
+
+// Member holds membership-related information
+// about a peer
+type Member struct {
+ Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
+ Metadata []byte `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ PkiId []byte `protobuf:"bytes,3,opt,name=pki_id,json=pkiId,proto3" json:"pki_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Member) Reset() { *m = Member{} }
+func (m *Member) String() string { return proto.CompactTextString(m) }
+func (*Member) ProtoMessage() {}
+func (*Member) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{23}
+}
+
+func (m *Member) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Member.Unmarshal(m, b)
+}
+func (m *Member) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Member.Marshal(b, m, deterministic)
+}
+func (m *Member) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Member.Merge(m, src)
+}
+func (m *Member) XXX_Size() int {
+ return xxx_messageInfo_Member.Size(m)
+}
+func (m *Member) XXX_DiscardUnknown() {
+ xxx_messageInfo_Member.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Member proto.InternalMessageInfo
+
+func (m *Member) GetEndpoint() string {
+ if m != nil {
+ return m.Endpoint
+ }
+ return ""
+}
+
+func (m *Member) GetMetadata() []byte {
+ if m != nil {
+ return m.Metadata
+ }
+ return nil
+}
+
+func (m *Member) GetPkiId() []byte {
+ if m != nil {
+ return m.PkiId
+ }
+ return nil
+}
+
+// Empty is used for pinging and in tests
+type Empty struct {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Empty) Reset() { *m = Empty{} }
+func (m *Empty) String() string { return proto.CompactTextString(m) }
+func (*Empty) ProtoMessage() {}
+func (*Empty) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{24}
+}
+
+func (m *Empty) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Empty.Unmarshal(m, b)
+}
+func (m *Empty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Empty.Marshal(b, m, deterministic)
+}
+func (m *Empty) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Empty.Merge(m, src)
+}
+func (m *Empty) XXX_Size() int {
+ return xxx_messageInfo_Empty.Size(m)
+}
+func (m *Empty) XXX_DiscardUnknown() {
+ xxx_messageInfo_Empty.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Empty proto.InternalMessageInfo
+
+// RemoteStateRequest is used to ask a set of blocks
+// from a remote peer
+type RemoteStateRequest struct {
+ StartSeqNum uint64 `protobuf:"varint,1,opt,name=start_seq_num,json=startSeqNum,proto3" json:"start_seq_num,omitempty"`
+ EndSeqNum uint64 `protobuf:"varint,2,opt,name=end_seq_num,json=endSeqNum,proto3" json:"end_seq_num,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *RemoteStateRequest) Reset() { *m = RemoteStateRequest{} }
+func (m *RemoteStateRequest) String() string { return proto.CompactTextString(m) }
+func (*RemoteStateRequest) ProtoMessage() {}
+func (*RemoteStateRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{25}
+}
+
+func (m *RemoteStateRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_RemoteStateRequest.Unmarshal(m, b)
+}
+func (m *RemoteStateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_RemoteStateRequest.Marshal(b, m, deterministic)
+}
+func (m *RemoteStateRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RemoteStateRequest.Merge(m, src)
+}
+func (m *RemoteStateRequest) XXX_Size() int {
+ return xxx_messageInfo_RemoteStateRequest.Size(m)
+}
+func (m *RemoteStateRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_RemoteStateRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RemoteStateRequest proto.InternalMessageInfo
+
+func (m *RemoteStateRequest) GetStartSeqNum() uint64 {
+ if m != nil {
+ return m.StartSeqNum
+ }
+ return 0
+}
+
+func (m *RemoteStateRequest) GetEndSeqNum() uint64 {
+ if m != nil {
+ return m.EndSeqNum
+ }
+ return 0
+}
+
+// RemoteStateResponse is used to send a set of blocks
+// to a remote peer
+type RemoteStateResponse struct {
+ Payloads []*Payload `protobuf:"bytes,1,rep,name=payloads,proto3" json:"payloads,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *RemoteStateResponse) Reset() { *m = RemoteStateResponse{} }
+func (m *RemoteStateResponse) String() string { return proto.CompactTextString(m) }
+func (*RemoteStateResponse) ProtoMessage() {}
+func (*RemoteStateResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{26}
+}
+
+func (m *RemoteStateResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_RemoteStateResponse.Unmarshal(m, b)
+}
+func (m *RemoteStateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_RemoteStateResponse.Marshal(b, m, deterministic)
+}
+func (m *RemoteStateResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RemoteStateResponse.Merge(m, src)
+}
+func (m *RemoteStateResponse) XXX_Size() int {
+ return xxx_messageInfo_RemoteStateResponse.Size(m)
+}
+func (m *RemoteStateResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_RemoteStateResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RemoteStateResponse proto.InternalMessageInfo
+
+func (m *RemoteStateResponse) GetPayloads() []*Payload {
+ if m != nil {
+ return m.Payloads
+ }
+ return nil
+}
+
+// RemotePrivateDataRequest message used to request
+// missing private rwset
+type RemotePvtDataRequest struct {
+ Digests []*PvtDataDigest `protobuf:"bytes,1,rep,name=digests,proto3" json:"digests,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *RemotePvtDataRequest) Reset() { *m = RemotePvtDataRequest{} }
+func (m *RemotePvtDataRequest) String() string { return proto.CompactTextString(m) }
+func (*RemotePvtDataRequest) ProtoMessage() {}
+func (*RemotePvtDataRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{27}
+}
+
+func (m *RemotePvtDataRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_RemotePvtDataRequest.Unmarshal(m, b)
+}
+func (m *RemotePvtDataRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_RemotePvtDataRequest.Marshal(b, m, deterministic)
+}
+func (m *RemotePvtDataRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RemotePvtDataRequest.Merge(m, src)
+}
+func (m *RemotePvtDataRequest) XXX_Size() int {
+ return xxx_messageInfo_RemotePvtDataRequest.Size(m)
+}
+func (m *RemotePvtDataRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_RemotePvtDataRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RemotePvtDataRequest proto.InternalMessageInfo
+
+func (m *RemotePvtDataRequest) GetDigests() []*PvtDataDigest {
+ if m != nil {
+ return m.Digests
+ }
+ return nil
+}
+
+// PvtDataDigest defines a digest of private data
+type PvtDataDigest struct {
+ TxId string `protobuf:"bytes,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
+ Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
+ Collection string `protobuf:"bytes,3,opt,name=collection,proto3" json:"collection,omitempty"`
+ BlockSeq uint64 `protobuf:"varint,4,opt,name=block_seq,json=blockSeq,proto3" json:"block_seq,omitempty"`
+ SeqInBlock uint64 `protobuf:"varint,5,opt,name=seq_in_block,json=seqInBlock,proto3" json:"seq_in_block,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PvtDataDigest) Reset() { *m = PvtDataDigest{} }
+func (m *PvtDataDigest) String() string { return proto.CompactTextString(m) }
+func (*PvtDataDigest) ProtoMessage() {}
+func (*PvtDataDigest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{28}
+}
+
+func (m *PvtDataDigest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PvtDataDigest.Unmarshal(m, b)
+}
+func (m *PvtDataDigest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PvtDataDigest.Marshal(b, m, deterministic)
+}
+func (m *PvtDataDigest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PvtDataDigest.Merge(m, src)
+}
+func (m *PvtDataDigest) XXX_Size() int {
+ return xxx_messageInfo_PvtDataDigest.Size(m)
+}
+func (m *PvtDataDigest) XXX_DiscardUnknown() {
+ xxx_messageInfo_PvtDataDigest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PvtDataDigest proto.InternalMessageInfo
+
+func (m *PvtDataDigest) GetTxId() string {
+ if m != nil {
+ return m.TxId
+ }
+ return ""
+}
+
+func (m *PvtDataDigest) GetNamespace() string {
+ if m != nil {
+ return m.Namespace
+ }
+ return ""
+}
+
+func (m *PvtDataDigest) GetCollection() string {
+ if m != nil {
+ return m.Collection
+ }
+ return ""
+}
+
+func (m *PvtDataDigest) GetBlockSeq() uint64 {
+ if m != nil {
+ return m.BlockSeq
+ }
+ return 0
+}
+
+func (m *PvtDataDigest) GetSeqInBlock() uint64 {
+ if m != nil {
+ return m.SeqInBlock
+ }
+ return 0
+}
+
+// RemotePrivateData message to response on private
+// data replication request
+type RemotePvtDataResponse struct {
+ Elements []*PvtDataElement `protobuf:"bytes,1,rep,name=elements,proto3" json:"elements,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *RemotePvtDataResponse) Reset() { *m = RemotePvtDataResponse{} }
+func (m *RemotePvtDataResponse) String() string { return proto.CompactTextString(m) }
+func (*RemotePvtDataResponse) ProtoMessage() {}
+func (*RemotePvtDataResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{29}
+}
+
+func (m *RemotePvtDataResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_RemotePvtDataResponse.Unmarshal(m, b)
+}
+func (m *RemotePvtDataResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_RemotePvtDataResponse.Marshal(b, m, deterministic)
+}
+func (m *RemotePvtDataResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RemotePvtDataResponse.Merge(m, src)
+}
+func (m *RemotePvtDataResponse) XXX_Size() int {
+ return xxx_messageInfo_RemotePvtDataResponse.Size(m)
+}
+func (m *RemotePvtDataResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_RemotePvtDataResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RemotePvtDataResponse proto.InternalMessageInfo
+
+func (m *RemotePvtDataResponse) GetElements() []*PvtDataElement {
+ if m != nil {
+ return m.Elements
+ }
+ return nil
+}
+
+type PvtDataElement struct {
+ Digest *PvtDataDigest `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
+ // the payload is a marshaled kvrwset.KVRWSet
+ Payload [][]byte `protobuf:"bytes,2,rep,name=payload,proto3" json:"payload,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PvtDataElement) Reset() { *m = PvtDataElement{} }
+func (m *PvtDataElement) String() string { return proto.CompactTextString(m) }
+func (*PvtDataElement) ProtoMessage() {}
+func (*PvtDataElement) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{30}
+}
+
+func (m *PvtDataElement) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PvtDataElement.Unmarshal(m, b)
+}
+func (m *PvtDataElement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PvtDataElement.Marshal(b, m, deterministic)
+}
+func (m *PvtDataElement) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PvtDataElement.Merge(m, src)
+}
+func (m *PvtDataElement) XXX_Size() int {
+ return xxx_messageInfo_PvtDataElement.Size(m)
+}
+func (m *PvtDataElement) XXX_DiscardUnknown() {
+ xxx_messageInfo_PvtDataElement.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PvtDataElement proto.InternalMessageInfo
+
+func (m *PvtDataElement) GetDigest() *PvtDataDigest {
+ if m != nil {
+ return m.Digest
+ }
+ return nil
+}
+
+func (m *PvtDataElement) GetPayload() [][]byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+// PvtPayload augments private rwset data and tx index
+// inside the block
+type PvtDataPayload struct {
+ TxSeqInBlock uint64 `protobuf:"varint,1,opt,name=tx_seq_in_block,json=txSeqInBlock,proto3" json:"tx_seq_in_block,omitempty"`
+ // Encodes marhslaed bytes of rwset.TxPvtReadWriteSet
+ // defined in rwset.proto
+ Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PvtDataPayload) Reset() { *m = PvtDataPayload{} }
+func (m *PvtDataPayload) String() string { return proto.CompactTextString(m) }
+func (*PvtDataPayload) ProtoMessage() {}
+func (*PvtDataPayload) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{31}
+}
+
+func (m *PvtDataPayload) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PvtDataPayload.Unmarshal(m, b)
+}
+func (m *PvtDataPayload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PvtDataPayload.Marshal(b, m, deterministic)
+}
+func (m *PvtDataPayload) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PvtDataPayload.Merge(m, src)
+}
+func (m *PvtDataPayload) XXX_Size() int {
+ return xxx_messageInfo_PvtDataPayload.Size(m)
+}
+func (m *PvtDataPayload) XXX_DiscardUnknown() {
+ xxx_messageInfo_PvtDataPayload.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PvtDataPayload proto.InternalMessageInfo
+
+func (m *PvtDataPayload) GetTxSeqInBlock() uint64 {
+ if m != nil {
+ return m.TxSeqInBlock
+ }
+ return 0
+}
+
+func (m *PvtDataPayload) GetPayload() []byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+type Acknowledgement struct {
+ Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Acknowledgement) Reset() { *m = Acknowledgement{} }
+func (m *Acknowledgement) String() string { return proto.CompactTextString(m) }
+func (*Acknowledgement) ProtoMessage() {}
+func (*Acknowledgement) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{32}
+}
+
+func (m *Acknowledgement) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Acknowledgement.Unmarshal(m, b)
+}
+func (m *Acknowledgement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Acknowledgement.Marshal(b, m, deterministic)
+}
+func (m *Acknowledgement) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Acknowledgement.Merge(m, src)
+}
+func (m *Acknowledgement) XXX_Size() int {
+ return xxx_messageInfo_Acknowledgement.Size(m)
+}
+func (m *Acknowledgement) XXX_DiscardUnknown() {
+ xxx_messageInfo_Acknowledgement.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Acknowledgement proto.InternalMessageInfo
+
+func (m *Acknowledgement) GetError() string {
+ if m != nil {
+ return m.Error
+ }
+ return ""
+}
+
+// Chaincode represents a Chaincode that is installed
+// on a peer
+type Chaincode struct {
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
+ Metadata []byte `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Chaincode) Reset() { *m = Chaincode{} }
+func (m *Chaincode) String() string { return proto.CompactTextString(m) }
+func (*Chaincode) ProtoMessage() {}
+func (*Chaincode) Descriptor() ([]byte, []int) {
+ return fileDescriptor_24518b295636120e, []int{33}
+}
+
+func (m *Chaincode) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Chaincode.Unmarshal(m, b)
+}
+func (m *Chaincode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Chaincode.Marshal(b, m, deterministic)
+}
+func (m *Chaincode) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Chaincode.Merge(m, src)
+}
+func (m *Chaincode) XXX_Size() int {
+ return xxx_messageInfo_Chaincode.Size(m)
+}
+func (m *Chaincode) XXX_DiscardUnknown() {
+ xxx_messageInfo_Chaincode.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Chaincode proto.InternalMessageInfo
+
+func (m *Chaincode) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *Chaincode) GetVersion() string {
+ if m != nil {
+ return m.Version
+ }
+ return ""
+}
+
+func (m *Chaincode) GetMetadata() []byte {
+ if m != nil {
+ return m.Metadata
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterEnum("gossip.PullMsgType", PullMsgType_name, PullMsgType_value)
+ proto.RegisterEnum("gossip.GossipMessage_Tag", GossipMessage_Tag_name, GossipMessage_Tag_value)
+ proto.RegisterType((*Envelope)(nil), "gossip.Envelope")
+ proto.RegisterType((*SecretEnvelope)(nil), "gossip.SecretEnvelope")
+ proto.RegisterType((*Secret)(nil), "gossip.Secret")
+ proto.RegisterType((*GossipMessage)(nil), "gossip.GossipMessage")
+ proto.RegisterType((*StateInfo)(nil), "gossip.StateInfo")
+ proto.RegisterType((*Properties)(nil), "gossip.Properties")
+ proto.RegisterType((*StateInfoSnapshot)(nil), "gossip.StateInfoSnapshot")
+ proto.RegisterType((*StateInfoPullRequest)(nil), "gossip.StateInfoPullRequest")
+ proto.RegisterType((*ConnEstablish)(nil), "gossip.ConnEstablish")
+ proto.RegisterType((*PeerIdentity)(nil), "gossip.PeerIdentity")
+ proto.RegisterType((*DataRequest)(nil), "gossip.DataRequest")
+ proto.RegisterType((*GossipHello)(nil), "gossip.GossipHello")
+ proto.RegisterType((*DataUpdate)(nil), "gossip.DataUpdate")
+ proto.RegisterType((*DataDigest)(nil), "gossip.DataDigest")
+ proto.RegisterType((*DataMessage)(nil), "gossip.DataMessage")
+ proto.RegisterType((*PrivateDataMessage)(nil), "gossip.PrivateDataMessage")
+ proto.RegisterType((*Payload)(nil), "gossip.Payload")
+ proto.RegisterType((*PrivatePayload)(nil), "gossip.PrivatePayload")
+ proto.RegisterType((*AliveMessage)(nil), "gossip.AliveMessage")
+ proto.RegisterType((*LeadershipMessage)(nil), "gossip.LeadershipMessage")
+ proto.RegisterType((*PeerTime)(nil), "gossip.PeerTime")
+ proto.RegisterType((*MembershipRequest)(nil), "gossip.MembershipRequest")
+ proto.RegisterType((*MembershipResponse)(nil), "gossip.MembershipResponse")
+ proto.RegisterType((*Member)(nil), "gossip.Member")
+ proto.RegisterType((*Empty)(nil), "gossip.Empty")
+ proto.RegisterType((*RemoteStateRequest)(nil), "gossip.RemoteStateRequest")
+ proto.RegisterType((*RemoteStateResponse)(nil), "gossip.RemoteStateResponse")
+ proto.RegisterType((*RemotePvtDataRequest)(nil), "gossip.RemotePvtDataRequest")
+ proto.RegisterType((*PvtDataDigest)(nil), "gossip.PvtDataDigest")
+ proto.RegisterType((*RemotePvtDataResponse)(nil), "gossip.RemotePvtDataResponse")
+ proto.RegisterType((*PvtDataElement)(nil), "gossip.PvtDataElement")
+ proto.RegisterType((*PvtDataPayload)(nil), "gossip.PvtDataPayload")
+ proto.RegisterType((*Acknowledgement)(nil), "gossip.Acknowledgement")
+ proto.RegisterType((*Chaincode)(nil), "gossip.Chaincode")
+}
+
+func init() { proto.RegisterFile("gossip/message.proto", fileDescriptor_24518b295636120e) }
+
+var fileDescriptor_24518b295636120e = []byte{
+ // 1872 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x5b, 0x6f, 0xe3, 0xc6,
+ 0x15, 0x36, 0x6d, 0x5d, 0x8f, 0x2e, 0x96, 0xc7, 0xde, 0x5d, 0xc6, 0x49, 0x13, 0x87, 0xed, 0x36,
+ 0xdb, 0xee, 0xae, 0xbc, 0x75, 0x7a, 0x03, 0xd2, 0x76, 0x61, 0x4b, 0x8a, 0x25, 0x64, 0xa5, 0x75,
+ 0x69, 0x2f, 0x5a, 0xf7, 0x85, 0x18, 0x93, 0x23, 0x8a, 0x30, 0x39, 0xa4, 0x39, 0x63, 0xc7, 0x7e,
+ 0x2c, 0xfa, 0x10, 0xa0, 0x2f, 0xfd, 0x0d, 0x7d, 0xea, 0xdf, 0x2c, 0x66, 0x86, 0x57, 0xc9, 0x36,
+ 0xb0, 0x01, 0xf2, 0xc6, 0x73, 0x9f, 0x39, 0x73, 0xe6, 0x3b, 0x67, 0x08, 0x3b, 0x6e, 0xc8, 0x98,
+ 0x17, 0xed, 0x07, 0x84, 0x31, 0xec, 0x92, 0x7e, 0x14, 0x87, 0x3c, 0x44, 0x35, 0xc5, 0xdd, 0x7d,
+ 0x66, 0x87, 0x41, 0x10, 0xd2, 0x7d, 0x3b, 0xf4, 0x7d, 0x62, 0x73, 0x2f, 0xa4, 0x4a, 0xc1, 0xf8,
+ 0x97, 0x06, 0x8d, 0x11, 0xbd, 0x21, 0x7e, 0x18, 0x11, 0xa4, 0x43, 0x3d, 0xc2, 0x77, 0x7e, 0x88,
+ 0x1d, 0x5d, 0xdb, 0xd3, 0x5e, 0xb4, 0xcd, 0x94, 0x44, 0x9f, 0x41, 0x93, 0x79, 0x2e, 0xc5, 0xfc,
+ 0x3a, 0x26, 0xfa, 0xba, 0x94, 0xe5, 0x0c, 0xf4, 0x16, 0x36, 0x19, 0xb1, 0x63, 0xc2, 0x2d, 0x92,
+ 0xb8, 0xd2, 0x37, 0xf6, 0xb4, 0x17, 0xad, 0x83, 0xa7, 0x7d, 0x15, 0xbf, 0x7f, 0x2a, 0xc5, 0x69,
+ 0x20, 0xb3, 0xcb, 0x4a, 0xb4, 0x31, 0x86, 0x6e, 0x59, 0xe3, 0xc7, 0x2e, 0xc5, 0x38, 0x84, 0x9a,
+ 0xf2, 0x84, 0x5e, 0x41, 0xcf, 0xa3, 0x9c, 0xc4, 0x14, 0xfb, 0x23, 0xea, 0x44, 0xa1, 0x47, 0xb9,
+ 0x74, 0xd5, 0x1c, 0xaf, 0x99, 0x2b, 0x92, 0xa3, 0x26, 0xd4, 0xed, 0x90, 0x72, 0x42, 0xb9, 0xf1,
+ 0x43, 0x0b, 0x3a, 0xc7, 0x72, 0xd9, 0x53, 0x95, 0x4b, 0xb4, 0x03, 0x55, 0x1a, 0x52, 0x9b, 0x48,
+ 0xfb, 0x8a, 0xa9, 0x08, 0xb1, 0x44, 0x7b, 0x81, 0x29, 0x25, 0x7e, 0xb2, 0x8c, 0x94, 0x44, 0x2f,
+ 0x61, 0x83, 0x63, 0x57, 0xe6, 0xa0, 0x7b, 0xf0, 0x49, 0x9a, 0x83, 0x92, 0xcf, 0xfe, 0x19, 0x76,
+ 0x4d, 0xa1, 0x85, 0xbe, 0x86, 0x26, 0xf6, 0xbd, 0x1b, 0x62, 0x05, 0xcc, 0xd5, 0xab, 0x32, 0x6d,
+ 0x3b, 0xa9, 0xc9, 0xa1, 0x10, 0x24, 0x16, 0xe3, 0x35, 0xb3, 0x21, 0x15, 0xa7, 0xcc, 0x45, 0xbf,
+ 0x85, 0x7a, 0x40, 0x02, 0x2b, 0x26, 0x57, 0x7a, 0x4d, 0x9a, 0x64, 0x51, 0xa6, 0x24, 0xb8, 0x20,
+ 0x31, 0x5b, 0x78, 0x91, 0x49, 0xae, 0xae, 0x09, 0xe3, 0xe3, 0x35, 0xb3, 0x16, 0x90, 0xc0, 0x24,
+ 0x57, 0xe8, 0x77, 0xa9, 0x15, 0xd3, 0xeb, 0xd2, 0x6a, 0xf7, 0x3e, 0x2b, 0x16, 0x85, 0x94, 0x91,
+ 0xcc, 0x8c, 0xa1, 0x37, 0xd0, 0x70, 0x30, 0xc7, 0x72, 0x81, 0x0d, 0x69, 0xb7, 0x9d, 0xda, 0x0d,
+ 0x31, 0xc7, 0xf9, 0xfa, 0xea, 0x42, 0x4d, 0x2c, 0xef, 0x25, 0x54, 0x17, 0xc4, 0xf7, 0x43, 0xbd,
+ 0x59, 0x56, 0x57, 0x29, 0x18, 0x0b, 0xd1, 0x78, 0xcd, 0x54, 0x3a, 0x68, 0x3f, 0x71, 0xef, 0x78,
+ 0xae, 0x0e, 0x52, 0x1f, 0x15, 0xdd, 0x0f, 0x3d, 0x57, 0xed, 0x42, 0x7a, 0x1f, 0x7a, 0x6e, 0xb6,
+ 0x1e, 0xb1, 0xfb, 0xd6, 0xea, 0x7a, 0xf2, 0x7d, 0x4b, 0x0b, 0xb5, 0xf1, 0x96, 0xb4, 0xb8, 0x8e,
+ 0x1c, 0xcc, 0x89, 0xde, 0x5e, 0x8d, 0xf2, 0x41, 0x4a, 0xc6, 0x6b, 0x26, 0x38, 0x19, 0x85, 0x9e,
+ 0x43, 0x95, 0x04, 0x11, 0xbf, 0xd3, 0x3b, 0xd2, 0xa0, 0x93, 0x1a, 0x8c, 0x04, 0x53, 0x6c, 0x40,
+ 0x4a, 0xd1, 0x4b, 0xa8, 0xd8, 0x21, 0xa5, 0x7a, 0x57, 0x6a, 0x3d, 0x49, 0xb5, 0x06, 0x21, 0xa5,
+ 0x23, 0xc6, 0xf1, 0x85, 0xef, 0xb1, 0xc5, 0x78, 0xcd, 0x94, 0x4a, 0xe8, 0x00, 0x80, 0x71, 0xcc,
+ 0x89, 0xe5, 0xd1, 0x79, 0xa8, 0x6f, 0x4a, 0x93, 0xad, 0xec, 0x9a, 0x08, 0xc9, 0x84, 0xce, 0x45,
+ 0x76, 0x9a, 0x2c, 0x25, 0xd0, 0x11, 0x74, 0x95, 0x0d, 0xa3, 0x38, 0x62, 0x8b, 0x90, 0xeb, 0xbd,
+ 0xf2, 0xa1, 0x67, 0x76, 0xa7, 0x89, 0xc2, 0x78, 0xcd, 0xec, 0x48, 0x93, 0x94, 0x81, 0xa6, 0xb0,
+ 0x9d, 0xc7, 0xb5, 0xa2, 0x6b, 0xdf, 0x97, 0xf9, 0xdb, 0x92, 0x8e, 0x3e, 0x5b, 0x71, 0x74, 0x72,
+ 0xed, 0xfb, 0x79, 0x22, 0x7b, 0x6c, 0x89, 0x8f, 0x0e, 0x41, 0xf9, 0x17, 0x4e, 0x84, 0x92, 0x8e,
+ 0xca, 0x05, 0x65, 0x92, 0x20, 0xe4, 0x44, 0xba, 0xcb, 0xdd, 0xb4, 0x59, 0x81, 0x46, 0xc3, 0x74,
+ 0x57, 0x71, 0x52, 0x72, 0xfa, 0xb6, 0xf4, 0xf1, 0xe9, 0xbd, 0x3e, 0xb2, 0xaa, 0xec, 0xb0, 0x22,
+ 0x43, 0xe4, 0xc6, 0x27, 0xd8, 0x51, 0xc5, 0x2b, 0x4b, 0x74, 0xa7, 0x9c, 0x9b, 0x77, 0x99, 0x34,
+ 0x2f, 0xd4, 0x4e, 0x6e, 0x22, 0xca, 0xf5, 0x1b, 0xe8, 0x44, 0x84, 0xc4, 0x96, 0xe7, 0x10, 0xca,
+ 0x3d, 0x7e, 0xa7, 0x3f, 0x29, 0x5f, 0xc3, 0x13, 0x42, 0xe2, 0x49, 0x22, 0x13, 0xdb, 0x88, 0x0a,
+ 0xb4, 0xb8, 0xec, 0xd8, 0xbe, 0xd4, 0x9f, 0x4a, 0x93, 0x67, 0xd9, 0xcd, 0xb5, 0x2f, 0x69, 0xf8,
+ 0xbd, 0x4f, 0x1c, 0x97, 0x04, 0x84, 0x8a, 0xcd, 0x0b, 0x2d, 0xf4, 0x17, 0x80, 0x28, 0xf6, 0x6e,
+ 0x54, 0x16, 0xf4, 0x67, 0xe5, 0xe4, 0xab, 0xfd, 0x9e, 0xdc, 0xf0, 0x72, 0x15, 0x17, 0x2c, 0xd0,
+ 0xdb, 0x82, 0x3d, 0xd3, 0x75, 0x69, 0xff, 0xb3, 0x07, 0xec, 0xb3, 0x8c, 0x15, 0x4c, 0xd0, 0x5b,
+ 0x68, 0x27, 0x94, 0x25, 0x0a, 0x5d, 0xff, 0xa4, 0x7c, 0x6c, 0x27, 0x4a, 0x56, 0xbe, 0xd6, 0xad,
+ 0x28, 0xe7, 0x1a, 0x16, 0x6c, 0x9c, 0x61, 0x17, 0x75, 0xa0, 0xf9, 0x61, 0x36, 0x1c, 0x7d, 0x3b,
+ 0x99, 0x8d, 0x86, 0xbd, 0x35, 0xd4, 0x84, 0xea, 0x68, 0x7a, 0x72, 0x76, 0xde, 0xd3, 0x50, 0x1b,
+ 0x1a, 0xef, 0xcd, 0x63, 0xeb, 0xfd, 0xec, 0xdd, 0x79, 0x6f, 0x5d, 0xe8, 0x0d, 0xc6, 0x87, 0x33,
+ 0x45, 0x6e, 0xa0, 0x1e, 0xb4, 0x25, 0x79, 0x38, 0x1b, 0x5a, 0xef, 0xcd, 0xe3, 0x5e, 0x05, 0x6d,
+ 0x42, 0x4b, 0x29, 0x98, 0x92, 0x51, 0x2d, 0x22, 0xf1, 0xff, 0x34, 0x68, 0x66, 0x15, 0x89, 0xfa,
+ 0xd0, 0xe4, 0x5e, 0x40, 0x18, 0xc7, 0x41, 0x24, 0x11, 0xb7, 0x75, 0xd0, 0x2b, 0x9e, 0xd0, 0x99,
+ 0x17, 0x10, 0x33, 0x57, 0x41, 0x4f, 0xa0, 0x16, 0x5d, 0x7a, 0x96, 0xe7, 0x48, 0x20, 0x6e, 0x9b,
+ 0xd5, 0xe8, 0xd2, 0x9b, 0x38, 0xe8, 0x0b, 0x68, 0x25, 0x38, 0x6d, 0x4d, 0x0f, 0x07, 0x7a, 0x45,
+ 0xca, 0x20, 0x61, 0x4d, 0x0f, 0x07, 0xe2, 0x86, 0x46, 0x71, 0x18, 0x91, 0x98, 0x7b, 0x84, 0x25,
+ 0x88, 0x8c, 0xf2, 0x04, 0xa5, 0x12, 0xb3, 0xa0, 0x65, 0xfc, 0xa0, 0x01, 0xe4, 0x22, 0xf4, 0x73,
+ 0xe8, 0xc8, 0xa3, 0x8f, 0xad, 0x05, 0xf1, 0xdc, 0x05, 0x4f, 0x1a, 0x47, 0x5b, 0x31, 0xc7, 0x92,
+ 0x87, 0xbe, 0x84, 0xb6, 0x4f, 0xe6, 0xdc, 0x2a, 0x36, 0x91, 0x86, 0xd9, 0x12, 0xbc, 0x41, 0xd2,
+ 0x48, 0x7e, 0x03, 0x62, 0x61, 0x1e, 0xb5, 0x43, 0x87, 0x30, 0x7d, 0x63, 0x6f, 0xa3, 0x08, 0x16,
+ 0x83, 0x54, 0x62, 0x16, 0x94, 0x8c, 0x43, 0xd8, 0x5a, 0x41, 0x03, 0xf4, 0x0a, 0x1a, 0xc4, 0x97,
+ 0x85, 0xc8, 0x74, 0x4d, 0x7a, 0xc9, 0x32, 0x97, 0xf5, 0xe4, 0x4c, 0xc3, 0xf8, 0x03, 0xec, 0xdc,
+ 0x87, 0x03, 0xcb, 0x99, 0xd3, 0x96, 0x33, 0x67, 0xcc, 0xa1, 0x53, 0x02, 0xbd, 0xc2, 0x11, 0x68,
+ 0xc5, 0x23, 0xd8, 0x85, 0x46, 0x76, 0xd5, 0x54, 0xeb, 0xcc, 0x68, 0x64, 0x40, 0x87, 0xfb, 0xcc,
+ 0xb2, 0x49, 0xcc, 0xad, 0x05, 0x66, 0x8b, 0xe4, 0xf0, 0x5a, 0xdc, 0x67, 0x03, 0x12, 0xf3, 0x31,
+ 0x66, 0x0b, 0xe3, 0x03, 0xb4, 0x8b, 0x57, 0xf2, 0xa1, 0x30, 0x08, 0x2a, 0xc2, 0x4d, 0x12, 0x42,
+ 0x7e, 0x8b, 0xd0, 0x01, 0xe1, 0x58, 0xd6, 0xbe, 0xf2, 0x9c, 0xd1, 0x46, 0x00, 0xad, 0xc2, 0xcd,
+ 0x7b, 0xb8, 0xeb, 0x3b, 0xb2, 0x23, 0x31, 0x7d, 0x7d, 0x6f, 0x43, 0x74, 0xfd, 0x84, 0x44, 0x7d,
+ 0x68, 0x04, 0xcc, 0xb5, 0xf8, 0x5d, 0x32, 0xfe, 0x74, 0xf3, 0xb6, 0x24, 0xb2, 0x38, 0x65, 0xee,
+ 0xd9, 0x5d, 0x44, 0xcc, 0x7a, 0xa0, 0x3e, 0x8c, 0x10, 0x5a, 0x85, 0x7e, 0xf8, 0x40, 0xb8, 0xe2,
+ 0x7a, 0xd7, 0xcb, 0xeb, 0xfd, 0xe8, 0x80, 0xb7, 0x00, 0x79, 0xab, 0x7b, 0x20, 0xde, 0x2f, 0xa0,
+ 0x92, 0xc4, 0xba, 0xbf, 0x4a, 0x2a, 0x3f, 0x2a, 0xb2, 0xaf, 0x22, 0xab, 0x56, 0xfe, 0x93, 0x27,
+ 0xf6, 0x8f, 0xea, 0x1c, 0xd3, 0xe9, 0xed, 0x57, 0xe5, 0x51, 0xb2, 0x75, 0xb0, 0x99, 0x59, 0x2b,
+ 0x76, 0x36, 0x5b, 0x1a, 0xdf, 0x02, 0x5a, 0x45, 0x40, 0xf4, 0x66, 0xd9, 0xc1, 0xd3, 0x25, 0xb8,
+ 0x5c, 0xf1, 0x73, 0x0e, 0xf5, 0x84, 0x87, 0x9e, 0x41, 0x9d, 0x91, 0x2b, 0x8b, 0x5e, 0x07, 0xc9,
+ 0x76, 0x6b, 0x8c, 0x5c, 0xcd, 0xae, 0x03, 0x51, 0x9d, 0x85, 0x53, 0x55, 0x79, 0xfd, 0x72, 0x09,
+ 0x9d, 0x37, 0x64, 0x22, 0x4a, 0xf8, 0xfb, 0x9f, 0x75, 0xe8, 0x96, 0xc3, 0xa2, 0xaf, 0x60, 0x33,
+ 0x9f, 0xeb, 0x2d, 0x8a, 0x03, 0x95, 0xd9, 0xa6, 0xd9, 0xcd, 0xd9, 0x33, 0x1c, 0x10, 0x31, 0x3a,
+ 0x0b, 0x29, 0x8b, 0xb0, 0xad, 0x46, 0xe7, 0xa6, 0x99, 0x33, 0xd0, 0x36, 0x54, 0xf9, 0x6d, 0x0a,
+ 0x97, 0x4d, 0xb3, 0xc2, 0x6f, 0x27, 0x8e, 0x40, 0xb2, 0x74, 0x45, 0xf1, 0xf7, 0x8c, 0xf0, 0x04,
+ 0x2f, 0xd3, 0x65, 0x9a, 0x82, 0x87, 0x5e, 0x01, 0x4a, 0x95, 0x98, 0x17, 0xa4, 0x98, 0x57, 0x95,
+ 0xdb, 0xed, 0x25, 0x92, 0x53, 0x2f, 0x48, 0x70, 0x6f, 0x06, 0xa8, 0xb0, 0x5c, 0x3b, 0xa4, 0x73,
+ 0xcf, 0x65, 0xc9, 0x18, 0xfb, 0x45, 0x5f, 0x3d, 0x54, 0xfa, 0x83, 0x4c, 0x63, 0x20, 0x15, 0x4e,
+ 0xb0, 0x7d, 0x89, 0x5d, 0x62, 0x6e, 0xd9, 0x4b, 0x02, 0x66, 0xfc, 0x5b, 0x83, 0x76, 0x71, 0x50,
+ 0x46, 0x7d, 0x80, 0x20, 0x9b, 0x67, 0x93, 0x23, 0xeb, 0x96, 0x27, 0x5d, 0xb3, 0xa0, 0xf1, 0xd1,
+ 0x8d, 0xa5, 0x08, 0x5f, 0x95, 0x32, 0x7c, 0x19, 0xff, 0xd4, 0x60, 0x6b, 0x65, 0xe2, 0x78, 0x08,
+ 0xa0, 0x3e, 0x36, 0xf0, 0x73, 0xe8, 0x7a, 0xcc, 0x72, 0x88, 0xed, 0xe3, 0x18, 0x8b, 0x14, 0xc8,
+ 0xa3, 0x6a, 0x98, 0x1d, 0x8f, 0x0d, 0x73, 0xa6, 0xf1, 0x27, 0x68, 0xa4, 0xd6, 0xa2, 0xfc, 0x3c,
+ 0x6a, 0x17, 0xcb, 0xcf, 0xa3, 0xb6, 0x28, 0xbf, 0x42, 0x5d, 0xae, 0x17, 0xeb, 0xd2, 0x98, 0xc3,
+ 0xd6, 0xca, 0x1b, 0x02, 0x7d, 0x03, 0x3d, 0x46, 0xfc, 0xb9, 0x1c, 0x1e, 0xe3, 0x40, 0xc5, 0xd6,
+ 0xca, 0x0b, 0xce, 0x20, 0x62, 0x53, 0x68, 0x4e, 0x72, 0x45, 0x71, 0xdf, 0xc5, 0x30, 0x44, 0x93,
+ 0x7b, 0xad, 0x08, 0xe3, 0x02, 0xd0, 0xea, 0xab, 0x03, 0xfd, 0x12, 0xaa, 0xf2, 0x91, 0xf3, 0x60,
+ 0x9b, 0x52, 0x62, 0x89, 0x53, 0x04, 0x3b, 0x8f, 0xe0, 0x14, 0xc1, 0x8e, 0xf1, 0x37, 0xa8, 0xa9,
+ 0x18, 0xe2, 0xcc, 0x48, 0xe9, 0x15, 0x68, 0x66, 0xf4, 0xa3, 0x18, 0x7b, 0xff, 0x10, 0x61, 0xd4,
+ 0xa1, 0x2a, 0x1f, 0x01, 0xc6, 0xdf, 0x01, 0xad, 0x8e, 0xba, 0xa2, 0x89, 0x31, 0x8e, 0x63, 0x6e,
+ 0x95, 0xaf, 0x7e, 0x4b, 0x32, 0x4f, 0xd5, 0xfd, 0xff, 0x1c, 0x5a, 0x84, 0x3a, 0x56, 0xf9, 0x10,
+ 0x9a, 0x84, 0x3a, 0x4a, 0x6e, 0x1c, 0xc1, 0xf6, 0x3d, 0x03, 0x30, 0x7a, 0x09, 0x8d, 0x04, 0x65,
+ 0xd2, 0x56, 0xbe, 0x02, 0x67, 0x99, 0x82, 0x71, 0x0c, 0x3b, 0xf7, 0x0d, 0x95, 0x68, 0x3f, 0xc7,
+ 0x5a, 0xe5, 0x23, 0x7b, 0xb4, 0x24, 0x8a, 0x0a, 0xa9, 0x33, 0x08, 0x36, 0xfe, 0xab, 0x41, 0xa7,
+ 0x24, 0xca, 0xd1, 0x42, 0x2b, 0xa0, 0xc5, 0xe3, 0x00, 0xf3, 0x39, 0x40, 0x7e, 0x7b, 0x13, 0x94,
+ 0x29, 0x70, 0xd0, 0xa7, 0xd0, 0xbc, 0xf0, 0x43, 0xfb, 0x52, 0xe4, 0x44, 0x5e, 0xac, 0x8a, 0xd9,
+ 0x90, 0x8c, 0x53, 0x72, 0x85, 0xf6, 0xa0, 0x2d, 0x52, 0xe5, 0x51, 0x4b, 0xb2, 0x12, 0x74, 0x01,
+ 0x46, 0xae, 0x26, 0xf4, 0x48, 0x70, 0x8c, 0xef, 0xe0, 0xc9, 0xbd, 0x13, 0x30, 0x3a, 0x58, 0x99,
+ 0x7e, 0x9e, 0x2e, 0x6d, 0x77, 0xa4, 0xc4, 0x85, 0x19, 0xe8, 0x1c, 0xba, 0x65, 0x19, 0x7a, 0x0d,
+ 0x35, 0x95, 0x8d, 0xa4, 0xf0, 0x1f, 0x48, 0x59, 0xa2, 0x54, 0xfc, 0x81, 0x91, 0xb4, 0xb3, 0xb4,
+ 0x39, 0xfc, 0x35, 0x73, 0x9d, 0x02, 0xf8, 0x73, 0xd8, 0xe4, 0xb7, 0x56, 0x69, 0x7b, 0xc9, 0xc0,
+ 0xc8, 0x6f, 0x4f, 0xb3, 0x0d, 0x96, 0x5d, 0x16, 0xff, 0x89, 0x18, 0x5f, 0xc1, 0xe6, 0xd2, 0x83,
+ 0x43, 0x5c, 0x3a, 0x12, 0xc7, 0x61, 0x9c, 0x9c, 0x8f, 0x22, 0x8c, 0x0f, 0xd0, 0xcc, 0xc6, 0x46,
+ 0xd1, 0x81, 0x0a, 0xcd, 0x42, 0x7e, 0x8b, 0x18, 0x37, 0x24, 0x66, 0xe2, 0x80, 0xd4, 0xf9, 0xa5,
+ 0xe4, 0x63, 0x93, 0xd3, 0xaf, 0xff, 0x0c, 0xad, 0x42, 0x27, 0x5e, 0x7e, 0x1c, 0x74, 0xa0, 0x79,
+ 0xf4, 0xee, 0xfd, 0xe0, 0x3b, 0x6b, 0x7a, 0x7a, 0xdc, 0xd3, 0xc4, 0x1b, 0x60, 0x32, 0x1c, 0xcd,
+ 0xce, 0x26, 0x67, 0xe7, 0x92, 0xb3, 0x7e, 0x30, 0x87, 0x9a, 0x9a, 0x84, 0xd0, 0xef, 0xa1, 0xad,
+ 0xbe, 0x4e, 0x79, 0x4c, 0x70, 0x80, 0x56, 0x2e, 0xf6, 0xee, 0x0a, 0xe7, 0x85, 0xf6, 0x46, 0x13,
+ 0x70, 0x70, 0xe2, 0x51, 0x17, 0x95, 0x9f, 0xe8, 0xbb, 0x65, 0xf2, 0xe8, 0xcd, 0x3f, 0xfa, 0xae,
+ 0xc7, 0x17, 0xd7, 0x17, 0xa2, 0xcb, 0xec, 0x2f, 0xee, 0x22, 0x12, 0xab, 0x89, 0x7c, 0x7f, 0x8e,
+ 0x2f, 0x62, 0xcf, 0x7e, 0x2d, 0xff, 0x89, 0xb1, 0xd7, 0x6e, 0xb8, 0xaf, 0xec, 0x2e, 0x6a, 0x92,
+ 0xf3, 0xf5, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x97, 0x91, 0x6a, 0xdb, 0x5e, 0x13, 0x00, 0x00,
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// GossipClient is the client API for Gossip service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type GossipClient interface {
+ // GossipStream is the gRPC stream used for sending and receiving messages
+ GossipStream(ctx context.Context, opts ...grpc.CallOption) (Gossip_GossipStreamClient, error)
+ // Ping is used to probe a remote peer's aliveness
+ Ping(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error)
+}
+
+type gossipClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewGossipClient(cc *grpc.ClientConn) GossipClient {
+ return &gossipClient{cc}
+}
+
+func (c *gossipClient) GossipStream(ctx context.Context, opts ...grpc.CallOption) (Gossip_GossipStreamClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_Gossip_serviceDesc.Streams[0], "/gossip.Gossip/GossipStream", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &gossipGossipStreamClient{stream}
+ return x, nil
+}
+
+type Gossip_GossipStreamClient interface {
+ Send(*Envelope) error
+ Recv() (*Envelope, error)
+ grpc.ClientStream
+}
+
+type gossipGossipStreamClient struct {
+ grpc.ClientStream
+}
+
+func (x *gossipGossipStreamClient) Send(m *Envelope) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *gossipGossipStreamClient) Recv() (*Envelope, error) {
+ m := new(Envelope)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *gossipClient) Ping(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) {
+ out := new(Empty)
+ err := c.cc.Invoke(ctx, "/gossip.Gossip/Ping", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// GossipServer is the server API for Gossip service.
+type GossipServer interface {
+ // GossipStream is the gRPC stream used for sending and receiving messages
+ GossipStream(Gossip_GossipStreamServer) error
+ // Ping is used to probe a remote peer's aliveness
+ Ping(context.Context, *Empty) (*Empty, error)
+}
+
+// UnimplementedGossipServer can be embedded to have forward compatible implementations.
+type UnimplementedGossipServer struct {
+}
+
+func (*UnimplementedGossipServer) GossipStream(srv Gossip_GossipStreamServer) error {
+ return status.Errorf(codes.Unimplemented, "method GossipStream not implemented")
+}
+func (*UnimplementedGossipServer) Ping(ctx context.Context, req *Empty) (*Empty, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented")
+}
+
+func RegisterGossipServer(s *grpc.Server, srv GossipServer) {
+ s.RegisterService(&_Gossip_serviceDesc, srv)
+}
+
+func _Gossip_GossipStream_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(GossipServer).GossipStream(&gossipGossipStreamServer{stream})
+}
+
+type Gossip_GossipStreamServer interface {
+ Send(*Envelope) error
+ Recv() (*Envelope, error)
+ grpc.ServerStream
+}
+
+type gossipGossipStreamServer struct {
+ grpc.ServerStream
+}
+
+func (x *gossipGossipStreamServer) Send(m *Envelope) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *gossipGossipStreamServer) Recv() (*Envelope, error) {
+ m := new(Envelope)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func _Gossip_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(Empty)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(GossipServer).Ping(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/gossip.Gossip/Ping",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(GossipServer).Ping(ctx, req.(*Empty))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _Gossip_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gossip.Gossip",
+ HandlerType: (*GossipServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "Ping",
+ Handler: _Gossip_Ping_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "GossipStream",
+ Handler: _Gossip_GossipStream_Handler,
+ ServerStreams: true,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "gossip/message.proto",
+}
diff --git a/ledger/queryresult/kv_query_result.pb.go b/ledger/queryresult/kv_query_result.pb.go
new file mode 100644
index 0000000..12540bb
--- /dev/null
+++ b/ledger/queryresult/kv_query_result.pb.go
@@ -0,0 +1,175 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: ledger/queryresult/kv_query_result.proto
+
+package queryresult
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ timestamp "github.com/golang/protobuf/ptypes/timestamp"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// KV -- QueryResult for range/execute query. Holds a key and corresponding value.
+type KV struct {
+ Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
+ Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
+ Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KV) Reset() { *m = KV{} }
+func (m *KV) String() string { return proto.CompactTextString(m) }
+func (*KV) ProtoMessage() {}
+func (*KV) Descriptor() ([]byte, []int) {
+ return fileDescriptor_f8ee2fe66594a8f2, []int{0}
+}
+
+func (m *KV) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KV.Unmarshal(m, b)
+}
+func (m *KV) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KV.Marshal(b, m, deterministic)
+}
+func (m *KV) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KV.Merge(m, src)
+}
+func (m *KV) XXX_Size() int {
+ return xxx_messageInfo_KV.Size(m)
+}
+func (m *KV) XXX_DiscardUnknown() {
+ xxx_messageInfo_KV.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KV proto.InternalMessageInfo
+
+func (m *KV) GetNamespace() string {
+ if m != nil {
+ return m.Namespace
+ }
+ return ""
+}
+
+func (m *KV) GetKey() string {
+ if m != nil {
+ return m.Key
+ }
+ return ""
+}
+
+func (m *KV) GetValue() []byte {
+ if m != nil {
+ return m.Value
+ }
+ return nil
+}
+
+// KeyModification -- QueryResult for history query. Holds a transaction ID, value,
+// timestamp, and delete marker which resulted from a history query.
+type KeyModification struct {
+ TxId string `protobuf:"bytes,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
+ Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+ Timestamp *timestamp.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+ IsDelete bool `protobuf:"varint,4,opt,name=is_delete,json=isDelete,proto3" json:"is_delete,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KeyModification) Reset() { *m = KeyModification{} }
+func (m *KeyModification) String() string { return proto.CompactTextString(m) }
+func (*KeyModification) ProtoMessage() {}
+func (*KeyModification) Descriptor() ([]byte, []int) {
+ return fileDescriptor_f8ee2fe66594a8f2, []int{1}
+}
+
+func (m *KeyModification) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KeyModification.Unmarshal(m, b)
+}
+func (m *KeyModification) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KeyModification.Marshal(b, m, deterministic)
+}
+func (m *KeyModification) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KeyModification.Merge(m, src)
+}
+func (m *KeyModification) XXX_Size() int {
+ return xxx_messageInfo_KeyModification.Size(m)
+}
+func (m *KeyModification) XXX_DiscardUnknown() {
+ xxx_messageInfo_KeyModification.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KeyModification proto.InternalMessageInfo
+
+func (m *KeyModification) GetTxId() string {
+ if m != nil {
+ return m.TxId
+ }
+ return ""
+}
+
+func (m *KeyModification) GetValue() []byte {
+ if m != nil {
+ return m.Value
+ }
+ return nil
+}
+
+func (m *KeyModification) GetTimestamp() *timestamp.Timestamp {
+ if m != nil {
+ return m.Timestamp
+ }
+ return nil
+}
+
+func (m *KeyModification) GetIsDelete() bool {
+ if m != nil {
+ return m.IsDelete
+ }
+ return false
+}
+
+func init() {
+ proto.RegisterType((*KV)(nil), "queryresult.KV")
+ proto.RegisterType((*KeyModification)(nil), "queryresult.KeyModification")
+}
+
+func init() {
+ proto.RegisterFile("ledger/queryresult/kv_query_result.proto", fileDescriptor_f8ee2fe66594a8f2)
+}
+
+var fileDescriptor_f8ee2fe66594a8f2 = []byte{
+ // 290 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x91, 0x4f, 0x4b, 0xc3, 0x30,
+ 0x18, 0xc6, 0xe9, 0xfe, 0xc8, 0x9a, 0x09, 0x4a, 0xf4, 0x50, 0xa6, 0x60, 0xd9, 0xa9, 0x97, 0x25,
+ 0xa2, 0x17, 0xf1, 0x28, 0x5e, 0x74, 0x78, 0x29, 0xe2, 0xc1, 0x4b, 0x49, 0xdb, 0xb7, 0x59, 0x58,
+ 0xdb, 0xd4, 0x24, 0x1d, 0xeb, 0xe7, 0xf0, 0x0b, 0x8b, 0xc9, 0x66, 0x0b, 0xde, 0xf2, 0xbc, 0xef,
+ 0xf3, 0x7b, 0x78, 0x78, 0x83, 0xa2, 0x12, 0x72, 0x0e, 0x8a, 0x7e, 0xb5, 0xa0, 0x3a, 0x05, 0xba,
+ 0x2d, 0x0d, 0xdd, 0xee, 0x12, 0x2b, 0x13, 0xa7, 0x49, 0xa3, 0xa4, 0x91, 0x78, 0x3e, 0xb0, 0x2c,
+ 0x6e, 0xb8, 0x94, 0xbc, 0x04, 0x6a, 0x57, 0x69, 0x5b, 0x50, 0x23, 0x2a, 0xd0, 0x86, 0x55, 0x8d,
+ 0x73, 0x2f, 0x5f, 0xd1, 0x68, 0xfd, 0x81, 0xaf, 0x91, 0x5f, 0xb3, 0x0a, 0x74, 0xc3, 0x32, 0x08,
+ 0xbc, 0xd0, 0x8b, 0xfc, 0xb8, 0x1f, 0xe0, 0x73, 0x34, 0xde, 0x42, 0x17, 0x8c, 0xec, 0xfc, 0xf7,
+ 0x89, 0x2f, 0xd1, 0x74, 0xc7, 0xca, 0x16, 0x82, 0x71, 0xe8, 0x45, 0xa7, 0xb1, 0x13, 0xcb, 0x6f,
+ 0x0f, 0x9d, 0xad, 0xa1, 0x7b, 0x93, 0xb9, 0x28, 0x44, 0xc6, 0x8c, 0x90, 0x35, 0xbe, 0x40, 0x53,
+ 0xb3, 0x4f, 0x44, 0x7e, 0x48, 0x9d, 0x98, 0xfd, 0x4b, 0xde, 0xe3, 0xa3, 0x01, 0x8e, 0x1f, 0x90,
+ 0xff, 0xd7, 0xce, 0x06, 0xcf, 0xef, 0x16, 0xc4, 0xf5, 0x27, 0xc7, 0xfe, 0xe4, 0xfd, 0xe8, 0x88,
+ 0x7b, 0x33, 0xbe, 0x42, 0xbe, 0xd0, 0x49, 0x0e, 0x25, 0x18, 0x08, 0x26, 0xa1, 0x17, 0xcd, 0xe2,
+ 0x99, 0xd0, 0xcf, 0x56, 0x3f, 0xd5, 0xe8, 0x56, 0x2a, 0x4e, 0x36, 0x5d, 0x03, 0xca, 0x1d, 0x91,
+ 0x14, 0x2c, 0x55, 0x22, 0x73, 0xa1, 0x9a, 0x1c, 0x86, 0x83, 0xb3, 0x7d, 0x3e, 0x72, 0x61, 0x36,
+ 0x6d, 0x4a, 0x32, 0x59, 0xd1, 0x01, 0x48, 0x1d, 0xb8, 0x72, 0xe0, 0x8a, 0x4b, 0xfa, 0xff, 0x57,
+ 0xd2, 0x13, 0xbb, 0xbd, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x07, 0x6d, 0xd7, 0x47, 0xb2, 0x01,
+ 0x00, 0x00,
+}
diff --git a/ledger/rwset/kvrwset/kv_rwset.pb.go b/ledger/rwset/kvrwset/kv_rwset.pb.go
new file mode 100644
index 0000000..cb03cd7
--- /dev/null
+++ b/ledger/rwset/kvrwset/kv_rwset.pb.go
@@ -0,0 +1,829 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: ledger/rwset/kvrwset/kv_rwset.proto
+
+package kvrwset
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// KVRWSet encapsulates the read-write set for a chaincode that operates upon a KV or Document data model
+// This structure is used for both the public data and the private data
+type KVRWSet struct {
+ Reads []*KVRead `protobuf:"bytes,1,rep,name=reads,proto3" json:"reads,omitempty"`
+ RangeQueriesInfo []*RangeQueryInfo `protobuf:"bytes,2,rep,name=range_queries_info,json=rangeQueriesInfo,proto3" json:"range_queries_info,omitempty"`
+ Writes []*KVWrite `protobuf:"bytes,3,rep,name=writes,proto3" json:"writes,omitempty"`
+ MetadataWrites []*KVMetadataWrite `protobuf:"bytes,4,rep,name=metadata_writes,json=metadataWrites,proto3" json:"metadata_writes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KVRWSet) Reset() { *m = KVRWSet{} }
+func (m *KVRWSet) String() string { return proto.CompactTextString(m) }
+func (*KVRWSet) ProtoMessage() {}
+func (*KVRWSet) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ee5d686eab23a142, []int{0}
+}
+
+func (m *KVRWSet) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KVRWSet.Unmarshal(m, b)
+}
+func (m *KVRWSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KVRWSet.Marshal(b, m, deterministic)
+}
+func (m *KVRWSet) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KVRWSet.Merge(m, src)
+}
+func (m *KVRWSet) XXX_Size() int {
+ return xxx_messageInfo_KVRWSet.Size(m)
+}
+func (m *KVRWSet) XXX_DiscardUnknown() {
+ xxx_messageInfo_KVRWSet.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KVRWSet proto.InternalMessageInfo
+
+func (m *KVRWSet) GetReads() []*KVRead {
+ if m != nil {
+ return m.Reads
+ }
+ return nil
+}
+
+func (m *KVRWSet) GetRangeQueriesInfo() []*RangeQueryInfo {
+ if m != nil {
+ return m.RangeQueriesInfo
+ }
+ return nil
+}
+
+func (m *KVRWSet) GetWrites() []*KVWrite {
+ if m != nil {
+ return m.Writes
+ }
+ return nil
+}
+
+func (m *KVRWSet) GetMetadataWrites() []*KVMetadataWrite {
+ if m != nil {
+ return m.MetadataWrites
+ }
+ return nil
+}
+
+// HashedRWSet encapsulates hashed representation of a private read-write set for KV or Document data model
+type HashedRWSet struct {
+ HashedReads []*KVReadHash `protobuf:"bytes,1,rep,name=hashed_reads,json=hashedReads,proto3" json:"hashed_reads,omitempty"`
+ HashedWrites []*KVWriteHash `protobuf:"bytes,2,rep,name=hashed_writes,json=hashedWrites,proto3" json:"hashed_writes,omitempty"`
+ MetadataWrites []*KVMetadataWriteHash `protobuf:"bytes,3,rep,name=metadata_writes,json=metadataWrites,proto3" json:"metadata_writes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *HashedRWSet) Reset() { *m = HashedRWSet{} }
+func (m *HashedRWSet) String() string { return proto.CompactTextString(m) }
+func (*HashedRWSet) ProtoMessage() {}
+func (*HashedRWSet) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ee5d686eab23a142, []int{1}
+}
+
+func (m *HashedRWSet) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_HashedRWSet.Unmarshal(m, b)
+}
+func (m *HashedRWSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_HashedRWSet.Marshal(b, m, deterministic)
+}
+func (m *HashedRWSet) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_HashedRWSet.Merge(m, src)
+}
+func (m *HashedRWSet) XXX_Size() int {
+ return xxx_messageInfo_HashedRWSet.Size(m)
+}
+func (m *HashedRWSet) XXX_DiscardUnknown() {
+ xxx_messageInfo_HashedRWSet.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_HashedRWSet proto.InternalMessageInfo
+
+func (m *HashedRWSet) GetHashedReads() []*KVReadHash {
+ if m != nil {
+ return m.HashedReads
+ }
+ return nil
+}
+
+func (m *HashedRWSet) GetHashedWrites() []*KVWriteHash {
+ if m != nil {
+ return m.HashedWrites
+ }
+ return nil
+}
+
+func (m *HashedRWSet) GetMetadataWrites() []*KVMetadataWriteHash {
+ if m != nil {
+ return m.MetadataWrites
+ }
+ return nil
+}
+
+// KVRead captures a read operation performed during transaction simulation
+// A 'nil' version indicates a non-existing key read by the transaction
+type KVRead struct {
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ Version *Version `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KVRead) Reset() { *m = KVRead{} }
+func (m *KVRead) String() string { return proto.CompactTextString(m) }
+func (*KVRead) ProtoMessage() {}
+func (*KVRead) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ee5d686eab23a142, []int{2}
+}
+
+func (m *KVRead) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KVRead.Unmarshal(m, b)
+}
+func (m *KVRead) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KVRead.Marshal(b, m, deterministic)
+}
+func (m *KVRead) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KVRead.Merge(m, src)
+}
+func (m *KVRead) XXX_Size() int {
+ return xxx_messageInfo_KVRead.Size(m)
+}
+func (m *KVRead) XXX_DiscardUnknown() {
+ xxx_messageInfo_KVRead.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KVRead proto.InternalMessageInfo
+
+func (m *KVRead) GetKey() string {
+ if m != nil {
+ return m.Key
+ }
+ return ""
+}
+
+func (m *KVRead) GetVersion() *Version {
+ if m != nil {
+ return m.Version
+ }
+ return nil
+}
+
+// KVWrite captures a write (update/delete) operation performed during transaction simulation
+type KVWrite struct {
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ IsDelete bool `protobuf:"varint,2,opt,name=is_delete,json=isDelete,proto3" json:"is_delete,omitempty"`
+ Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KVWrite) Reset() { *m = KVWrite{} }
+func (m *KVWrite) String() string { return proto.CompactTextString(m) }
+func (*KVWrite) ProtoMessage() {}
+func (*KVWrite) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ee5d686eab23a142, []int{3}
+}
+
+func (m *KVWrite) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KVWrite.Unmarshal(m, b)
+}
+func (m *KVWrite) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KVWrite.Marshal(b, m, deterministic)
+}
+func (m *KVWrite) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KVWrite.Merge(m, src)
+}
+func (m *KVWrite) XXX_Size() int {
+ return xxx_messageInfo_KVWrite.Size(m)
+}
+func (m *KVWrite) XXX_DiscardUnknown() {
+ xxx_messageInfo_KVWrite.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KVWrite proto.InternalMessageInfo
+
+func (m *KVWrite) GetKey() string {
+ if m != nil {
+ return m.Key
+ }
+ return ""
+}
+
+func (m *KVWrite) GetIsDelete() bool {
+ if m != nil {
+ return m.IsDelete
+ }
+ return false
+}
+
+func (m *KVWrite) GetValue() []byte {
+ if m != nil {
+ return m.Value
+ }
+ return nil
+}
+
+// KVMetadataWrite captures all the entries in the metadata associated with a key
+type KVMetadataWrite struct {
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ Entries []*KVMetadataEntry `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KVMetadataWrite) Reset() { *m = KVMetadataWrite{} }
+func (m *KVMetadataWrite) String() string { return proto.CompactTextString(m) }
+func (*KVMetadataWrite) ProtoMessage() {}
+func (*KVMetadataWrite) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ee5d686eab23a142, []int{4}
+}
+
+func (m *KVMetadataWrite) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KVMetadataWrite.Unmarshal(m, b)
+}
+func (m *KVMetadataWrite) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KVMetadataWrite.Marshal(b, m, deterministic)
+}
+func (m *KVMetadataWrite) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KVMetadataWrite.Merge(m, src)
+}
+func (m *KVMetadataWrite) XXX_Size() int {
+ return xxx_messageInfo_KVMetadataWrite.Size(m)
+}
+func (m *KVMetadataWrite) XXX_DiscardUnknown() {
+ xxx_messageInfo_KVMetadataWrite.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KVMetadataWrite proto.InternalMessageInfo
+
+func (m *KVMetadataWrite) GetKey() string {
+ if m != nil {
+ return m.Key
+ }
+ return ""
+}
+
+func (m *KVMetadataWrite) GetEntries() []*KVMetadataEntry {
+ if m != nil {
+ return m.Entries
+ }
+ return nil
+}
+
+// KVReadHash is similar to the KVRead in spirit. However, it captures the hash of the key instead of the key itself
+// version is kept as is for now. However, if the version also needs to be privacy-protected, it would need to be the
+// hash of the version and hence of 'bytes' type
+type KVReadHash struct {
+ KeyHash []byte `protobuf:"bytes,1,opt,name=key_hash,json=keyHash,proto3" json:"key_hash,omitempty"`
+ Version *Version `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KVReadHash) Reset() { *m = KVReadHash{} }
+func (m *KVReadHash) String() string { return proto.CompactTextString(m) }
+func (*KVReadHash) ProtoMessage() {}
+func (*KVReadHash) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ee5d686eab23a142, []int{5}
+}
+
+func (m *KVReadHash) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KVReadHash.Unmarshal(m, b)
+}
+func (m *KVReadHash) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KVReadHash.Marshal(b, m, deterministic)
+}
+func (m *KVReadHash) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KVReadHash.Merge(m, src)
+}
+func (m *KVReadHash) XXX_Size() int {
+ return xxx_messageInfo_KVReadHash.Size(m)
+}
+func (m *KVReadHash) XXX_DiscardUnknown() {
+ xxx_messageInfo_KVReadHash.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KVReadHash proto.InternalMessageInfo
+
+func (m *KVReadHash) GetKeyHash() []byte {
+ if m != nil {
+ return m.KeyHash
+ }
+ return nil
+}
+
+func (m *KVReadHash) GetVersion() *Version {
+ if m != nil {
+ return m.Version
+ }
+ return nil
+}
+
+// KVWriteHash is similar to the KVWrite. It captures a write (update/delete) operation performed during transaction simulation
+type KVWriteHash struct {
+ KeyHash []byte `protobuf:"bytes,1,opt,name=key_hash,json=keyHash,proto3" json:"key_hash,omitempty"`
+ IsDelete bool `protobuf:"varint,2,opt,name=is_delete,json=isDelete,proto3" json:"is_delete,omitempty"`
+ ValueHash []byte `protobuf:"bytes,3,opt,name=value_hash,json=valueHash,proto3" json:"value_hash,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KVWriteHash) Reset() { *m = KVWriteHash{} }
+func (m *KVWriteHash) String() string { return proto.CompactTextString(m) }
+func (*KVWriteHash) ProtoMessage() {}
+func (*KVWriteHash) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ee5d686eab23a142, []int{6}
+}
+
+func (m *KVWriteHash) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KVWriteHash.Unmarshal(m, b)
+}
+func (m *KVWriteHash) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KVWriteHash.Marshal(b, m, deterministic)
+}
+func (m *KVWriteHash) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KVWriteHash.Merge(m, src)
+}
+func (m *KVWriteHash) XXX_Size() int {
+ return xxx_messageInfo_KVWriteHash.Size(m)
+}
+func (m *KVWriteHash) XXX_DiscardUnknown() {
+ xxx_messageInfo_KVWriteHash.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KVWriteHash proto.InternalMessageInfo
+
+func (m *KVWriteHash) GetKeyHash() []byte {
+ if m != nil {
+ return m.KeyHash
+ }
+ return nil
+}
+
+func (m *KVWriteHash) GetIsDelete() bool {
+ if m != nil {
+ return m.IsDelete
+ }
+ return false
+}
+
+func (m *KVWriteHash) GetValueHash() []byte {
+ if m != nil {
+ return m.ValueHash
+ }
+ return nil
+}
+
+// KVMetadataWriteHash captures all the upserts to the metadata associated with a key hash
+type KVMetadataWriteHash struct {
+ KeyHash []byte `protobuf:"bytes,1,opt,name=key_hash,json=keyHash,proto3" json:"key_hash,omitempty"`
+ Entries []*KVMetadataEntry `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KVMetadataWriteHash) Reset() { *m = KVMetadataWriteHash{} }
+func (m *KVMetadataWriteHash) String() string { return proto.CompactTextString(m) }
+func (*KVMetadataWriteHash) ProtoMessage() {}
+func (*KVMetadataWriteHash) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ee5d686eab23a142, []int{7}
+}
+
+func (m *KVMetadataWriteHash) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KVMetadataWriteHash.Unmarshal(m, b)
+}
+func (m *KVMetadataWriteHash) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KVMetadataWriteHash.Marshal(b, m, deterministic)
+}
+func (m *KVMetadataWriteHash) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KVMetadataWriteHash.Merge(m, src)
+}
+func (m *KVMetadataWriteHash) XXX_Size() int {
+ return xxx_messageInfo_KVMetadataWriteHash.Size(m)
+}
+func (m *KVMetadataWriteHash) XXX_DiscardUnknown() {
+ xxx_messageInfo_KVMetadataWriteHash.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KVMetadataWriteHash proto.InternalMessageInfo
+
+func (m *KVMetadataWriteHash) GetKeyHash() []byte {
+ if m != nil {
+ return m.KeyHash
+ }
+ return nil
+}
+
+func (m *KVMetadataWriteHash) GetEntries() []*KVMetadataEntry {
+ if m != nil {
+ return m.Entries
+ }
+ return nil
+}
+
+// KVMetadataEntry captures a 'name'ed entry in the metadata of a key/key-hash.
+type KVMetadataEntry struct {
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KVMetadataEntry) Reset() { *m = KVMetadataEntry{} }
+func (m *KVMetadataEntry) String() string { return proto.CompactTextString(m) }
+func (*KVMetadataEntry) ProtoMessage() {}
+func (*KVMetadataEntry) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ee5d686eab23a142, []int{8}
+}
+
+func (m *KVMetadataEntry) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KVMetadataEntry.Unmarshal(m, b)
+}
+func (m *KVMetadataEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KVMetadataEntry.Marshal(b, m, deterministic)
+}
+func (m *KVMetadataEntry) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KVMetadataEntry.Merge(m, src)
+}
+func (m *KVMetadataEntry) XXX_Size() int {
+ return xxx_messageInfo_KVMetadataEntry.Size(m)
+}
+func (m *KVMetadataEntry) XXX_DiscardUnknown() {
+ xxx_messageInfo_KVMetadataEntry.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KVMetadataEntry proto.InternalMessageInfo
+
+func (m *KVMetadataEntry) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *KVMetadataEntry) GetValue() []byte {
+ if m != nil {
+ return m.Value
+ }
+ return nil
+}
+
+// Version encapsulates the version of a Key
+// A version of a committed key is maintained as the height of the transaction that committed the key.
+// The height is represenetd as a tuple where the txNum is the position of the transaction
+// (starting with 0) within block
+type Version struct {
+ BlockNum uint64 `protobuf:"varint,1,opt,name=block_num,json=blockNum,proto3" json:"block_num,omitempty"`
+ TxNum uint64 `protobuf:"varint,2,opt,name=tx_num,json=txNum,proto3" json:"tx_num,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Version) Reset() { *m = Version{} }
+func (m *Version) String() string { return proto.CompactTextString(m) }
+func (*Version) ProtoMessage() {}
+func (*Version) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ee5d686eab23a142, []int{9}
+}
+
+func (m *Version) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Version.Unmarshal(m, b)
+}
+func (m *Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Version.Marshal(b, m, deterministic)
+}
+func (m *Version) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Version.Merge(m, src)
+}
+func (m *Version) XXX_Size() int {
+ return xxx_messageInfo_Version.Size(m)
+}
+func (m *Version) XXX_DiscardUnknown() {
+ xxx_messageInfo_Version.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Version proto.InternalMessageInfo
+
+func (m *Version) GetBlockNum() uint64 {
+ if m != nil {
+ return m.BlockNum
+ }
+ return 0
+}
+
+func (m *Version) GetTxNum() uint64 {
+ if m != nil {
+ return m.TxNum
+ }
+ return 0
+}
+
+// RangeQueryInfo encapsulates the details of a range query performed by a transaction during simulation.
+// This helps protect transactions from phantom reads by varifying during validation whether any new items
+// got committed within the given range between transaction simuation and validation
+// (in addition to regular checks for updates/deletes of the existing items).
+// readInfo field contains either the KVReads (for the items read by the range query) or a merkle-tree hash
+// if the KVReads exceeds a pre-configured numbers
+type RangeQueryInfo struct {
+ StartKey string `protobuf:"bytes,1,opt,name=start_key,json=startKey,proto3" json:"start_key,omitempty"`
+ EndKey string `protobuf:"bytes,2,opt,name=end_key,json=endKey,proto3" json:"end_key,omitempty"`
+ ItrExhausted bool `protobuf:"varint,3,opt,name=itr_exhausted,json=itrExhausted,proto3" json:"itr_exhausted,omitempty"`
+ // Types that are valid to be assigned to ReadsInfo:
+ // *RangeQueryInfo_RawReads
+ // *RangeQueryInfo_ReadsMerkleHashes
+ ReadsInfo isRangeQueryInfo_ReadsInfo `protobuf_oneof:"reads_info"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *RangeQueryInfo) Reset() { *m = RangeQueryInfo{} }
+func (m *RangeQueryInfo) String() string { return proto.CompactTextString(m) }
+func (*RangeQueryInfo) ProtoMessage() {}
+func (*RangeQueryInfo) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ee5d686eab23a142, []int{10}
+}
+
+func (m *RangeQueryInfo) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_RangeQueryInfo.Unmarshal(m, b)
+}
+func (m *RangeQueryInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_RangeQueryInfo.Marshal(b, m, deterministic)
+}
+func (m *RangeQueryInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RangeQueryInfo.Merge(m, src)
+}
+func (m *RangeQueryInfo) XXX_Size() int {
+ return xxx_messageInfo_RangeQueryInfo.Size(m)
+}
+func (m *RangeQueryInfo) XXX_DiscardUnknown() {
+ xxx_messageInfo_RangeQueryInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RangeQueryInfo proto.InternalMessageInfo
+
+func (m *RangeQueryInfo) GetStartKey() string {
+ if m != nil {
+ return m.StartKey
+ }
+ return ""
+}
+
+func (m *RangeQueryInfo) GetEndKey() string {
+ if m != nil {
+ return m.EndKey
+ }
+ return ""
+}
+
+func (m *RangeQueryInfo) GetItrExhausted() bool {
+ if m != nil {
+ return m.ItrExhausted
+ }
+ return false
+}
+
+type isRangeQueryInfo_ReadsInfo interface {
+ isRangeQueryInfo_ReadsInfo()
+}
+
+type RangeQueryInfo_RawReads struct {
+ RawReads *QueryReads `protobuf:"bytes,4,opt,name=raw_reads,json=rawReads,proto3,oneof"`
+}
+
+type RangeQueryInfo_ReadsMerkleHashes struct {
+ ReadsMerkleHashes *QueryReadsMerkleSummary `protobuf:"bytes,5,opt,name=reads_merkle_hashes,json=readsMerkleHashes,proto3,oneof"`
+}
+
+func (*RangeQueryInfo_RawReads) isRangeQueryInfo_ReadsInfo() {}
+
+func (*RangeQueryInfo_ReadsMerkleHashes) isRangeQueryInfo_ReadsInfo() {}
+
+func (m *RangeQueryInfo) GetReadsInfo() isRangeQueryInfo_ReadsInfo {
+ if m != nil {
+ return m.ReadsInfo
+ }
+ return nil
+}
+
+func (m *RangeQueryInfo) GetRawReads() *QueryReads {
+ if x, ok := m.GetReadsInfo().(*RangeQueryInfo_RawReads); ok {
+ return x.RawReads
+ }
+ return nil
+}
+
+func (m *RangeQueryInfo) GetReadsMerkleHashes() *QueryReadsMerkleSummary {
+ if x, ok := m.GetReadsInfo().(*RangeQueryInfo_ReadsMerkleHashes); ok {
+ return x.ReadsMerkleHashes
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*RangeQueryInfo) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*RangeQueryInfo_RawReads)(nil),
+ (*RangeQueryInfo_ReadsMerkleHashes)(nil),
+ }
+}
+
+// QueryReads encapsulates the KVReads for the items read by a transaction as a result of a query execution
+type QueryReads struct {
+ KvReads []*KVRead `protobuf:"bytes,1,rep,name=kv_reads,json=kvReads,proto3" json:"kv_reads,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryReads) Reset() { *m = QueryReads{} }
+func (m *QueryReads) String() string { return proto.CompactTextString(m) }
+func (*QueryReads) ProtoMessage() {}
+func (*QueryReads) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ee5d686eab23a142, []int{11}
+}
+
+func (m *QueryReads) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryReads.Unmarshal(m, b)
+}
+func (m *QueryReads) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryReads.Marshal(b, m, deterministic)
+}
+func (m *QueryReads) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryReads.Merge(m, src)
+}
+func (m *QueryReads) XXX_Size() int {
+ return xxx_messageInfo_QueryReads.Size(m)
+}
+func (m *QueryReads) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryReads.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryReads proto.InternalMessageInfo
+
+func (m *QueryReads) GetKvReads() []*KVRead {
+ if m != nil {
+ return m.KvReads
+ }
+ return nil
+}
+
+// QueryReadsMerkleSummary encapsulates the Merkle-tree hashes for the QueryReads
+// This allows to reduce the size of RWSet in the presence of query results
+// by storing certain hashes instead of actual results.
+// maxDegree field refers to the maximum number of children in the tree at any level
+// maxLevel field contains the lowest level which has lesser nodes than maxDegree (starting from leaf level)
+type QueryReadsMerkleSummary struct {
+ MaxDegree uint32 `protobuf:"varint,1,opt,name=max_degree,json=maxDegree,proto3" json:"max_degree,omitempty"`
+ MaxLevel uint32 `protobuf:"varint,2,opt,name=max_level,json=maxLevel,proto3" json:"max_level,omitempty"`
+ MaxLevelHashes [][]byte `protobuf:"bytes,3,rep,name=max_level_hashes,json=maxLevelHashes,proto3" json:"max_level_hashes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryReadsMerkleSummary) Reset() { *m = QueryReadsMerkleSummary{} }
+func (m *QueryReadsMerkleSummary) String() string { return proto.CompactTextString(m) }
+func (*QueryReadsMerkleSummary) ProtoMessage() {}
+func (*QueryReadsMerkleSummary) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ee5d686eab23a142, []int{12}
+}
+
+func (m *QueryReadsMerkleSummary) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryReadsMerkleSummary.Unmarshal(m, b)
+}
+func (m *QueryReadsMerkleSummary) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryReadsMerkleSummary.Marshal(b, m, deterministic)
+}
+func (m *QueryReadsMerkleSummary) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryReadsMerkleSummary.Merge(m, src)
+}
+func (m *QueryReadsMerkleSummary) XXX_Size() int {
+ return xxx_messageInfo_QueryReadsMerkleSummary.Size(m)
+}
+func (m *QueryReadsMerkleSummary) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryReadsMerkleSummary.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryReadsMerkleSummary proto.InternalMessageInfo
+
+func (m *QueryReadsMerkleSummary) GetMaxDegree() uint32 {
+ if m != nil {
+ return m.MaxDegree
+ }
+ return 0
+}
+
+func (m *QueryReadsMerkleSummary) GetMaxLevel() uint32 {
+ if m != nil {
+ return m.MaxLevel
+ }
+ return 0
+}
+
+func (m *QueryReadsMerkleSummary) GetMaxLevelHashes() [][]byte {
+ if m != nil {
+ return m.MaxLevelHashes
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*KVRWSet)(nil), "kvrwset.KVRWSet")
+ proto.RegisterType((*HashedRWSet)(nil), "kvrwset.HashedRWSet")
+ proto.RegisterType((*KVRead)(nil), "kvrwset.KVRead")
+ proto.RegisterType((*KVWrite)(nil), "kvrwset.KVWrite")
+ proto.RegisterType((*KVMetadataWrite)(nil), "kvrwset.KVMetadataWrite")
+ proto.RegisterType((*KVReadHash)(nil), "kvrwset.KVReadHash")
+ proto.RegisterType((*KVWriteHash)(nil), "kvrwset.KVWriteHash")
+ proto.RegisterType((*KVMetadataWriteHash)(nil), "kvrwset.KVMetadataWriteHash")
+ proto.RegisterType((*KVMetadataEntry)(nil), "kvrwset.KVMetadataEntry")
+ proto.RegisterType((*Version)(nil), "kvrwset.Version")
+ proto.RegisterType((*RangeQueryInfo)(nil), "kvrwset.RangeQueryInfo")
+ proto.RegisterType((*QueryReads)(nil), "kvrwset.QueryReads")
+ proto.RegisterType((*QueryReadsMerkleSummary)(nil), "kvrwset.QueryReadsMerkleSummary")
+}
+
+func init() {
+ proto.RegisterFile("ledger/rwset/kvrwset/kv_rwset.proto", fileDescriptor_ee5d686eab23a142)
+}
+
+var fileDescriptor_ee5d686eab23a142 = []byte{
+ // 744 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xdf, 0x6b, 0xe3, 0x46,
+ 0x10, 0x8e, 0x7f, 0xcb, 0x63, 0x3b, 0x71, 0x37, 0x29, 0x51, 0x69, 0x0b, 0x46, 0xa1, 0x60, 0x02,
+ 0xb1, 0xc1, 0x85, 0xd2, 0xd2, 0xf6, 0xa1, 0x25, 0x3e, 0x72, 0xe4, 0x12, 0xb8, 0x0d, 0x24, 0x70,
+ 0x2f, 0x62, 0x1d, 0x4d, 0x6c, 0x61, 0x4b, 0xca, 0xad, 0x56, 0xb6, 0xf5, 0x74, 0xdc, 0x5f, 0x77,
+ 0xff, 0xc8, 0xfd, 0x21, 0xc7, 0xce, 0xca, 0xb1, 0xe2, 0x73, 0x0c, 0x77, 0x4f, 0xd6, 0xce, 0x37,
+ 0xdf, 0xec, 0x7c, 0xdf, 0x78, 0x77, 0xe1, 0x64, 0x86, 0xde, 0x18, 0x65, 0x5f, 0x2e, 0x62, 0x54,
+ 0xfd, 0xe9, 0x7c, 0xf5, 0xeb, 0xd2, 0x47, 0xef, 0x51, 0x46, 0x2a, 0x62, 0xb5, 0x2c, 0xee, 0x7c,
+ 0x2e, 0x40, 0xed, 0xf2, 0x96, 0xdf, 0xdd, 0xa0, 0x62, 0xbf, 0x41, 0x45, 0xa2, 0xf0, 0x62, 0xbb,
+ 0xd0, 0x29, 0x75, 0x1b, 0x83, 0x83, 0x5e, 0x96, 0xd4, 0xbb, 0xbc, 0xe5, 0x28, 0x3c, 0x6e, 0x50,
+ 0x36, 0x04, 0x26, 0x45, 0x38, 0x46, 0xf7, 0x7d, 0x82, 0xd2, 0xc7, 0xd8, 0xf5, 0xc3, 0x87, 0xc8,
+ 0x2e, 0x12, 0xe7, 0xf8, 0x89, 0xc3, 0x75, 0xca, 0xdb, 0x04, 0x65, 0xfa, 0x3a, 0x7c, 0x88, 0x78,
+ 0x5b, 0xae, 0xd6, 0x3e, 0xc6, 0x3a, 0xc2, 0xba, 0x50, 0x5d, 0x48, 0x5f, 0x61, 0x6c, 0x97, 0x88,
+ 0xda, 0xce, 0x6d, 0x77, 0xa7, 0x01, 0x9e, 0xe1, 0xec, 0x3f, 0x38, 0x08, 0x50, 0x09, 0x4f, 0x28,
+ 0xe1, 0x66, 0x94, 0x32, 0x51, 0xec, 0x1c, 0xe5, 0x2a, 0xcb, 0x30, 0xd4, 0xfd, 0x20, 0xbf, 0x8c,
+ 0x9d, 0x4f, 0x05, 0x68, 0x5c, 0x88, 0x78, 0x82, 0x9e, 0x91, 0xfa, 0x07, 0x34, 0x27, 0xb4, 0x74,
+ 0xf3, 0x8a, 0x0f, 0x37, 0x14, 0x6b, 0x06, 0x6f, 0x98, 0x44, 0x4e, 0xda, 0xff, 0x82, 0x56, 0xc6,
+ 0xcb, 0x1a, 0x31, 0xb2, 0x8f, 0x36, 0x7b, 0x27, 0x66, 0xb6, 0x85, 0x69, 0x81, 0x0d, 0xbf, 0x56,
+ 0x61, 0x84, 0xff, 0xf2, 0x92, 0x0a, 0x2a, 0xb2, 0xa9, 0xe4, 0x15, 0x54, 0x4d, 0x73, 0xac, 0x0d,
+ 0xa5, 0x29, 0xa6, 0x76, 0xa1, 0x53, 0xe8, 0xd6, 0xb9, 0xfe, 0x64, 0xa7, 0x50, 0x9b, 0xa3, 0x8c,
+ 0xfd, 0x28, 0xb4, 0x8b, 0x9d, 0xc2, 0x33, 0x4f, 0x6f, 0x4d, 0x9c, 0xaf, 0x12, 0x9c, 0x6b, 0x3d,
+ 0x77, 0xaa, 0xb9, 0xa5, 0xd0, 0xcf, 0x50, 0xf7, 0x63, 0xd7, 0xc3, 0x19, 0x2a, 0xa4, 0x52, 0x16,
+ 0xb7, 0xfc, 0xf8, 0x9c, 0xd6, 0xec, 0x08, 0x2a, 0x73, 0x31, 0x4b, 0xd0, 0x2e, 0x75, 0x0a, 0xdd,
+ 0x26, 0x37, 0x0b, 0xe7, 0x0e, 0x0e, 0x36, 0xda, 0xdf, 0x52, 0x77, 0x00, 0x35, 0x0c, 0x95, 0xfe,
+ 0x0b, 0x64, 0xc6, 0x6d, 0x9b, 0xe0, 0x30, 0x54, 0x32, 0xe5, 0xab, 0x44, 0xe7, 0x06, 0x60, 0x3d,
+ 0x0d, 0xf6, 0x13, 0x58, 0x53, 0x4c, 0x5d, 0xed, 0x2c, 0x15, 0x6e, 0xf2, 0xda, 0x14, 0x53, 0x82,
+ 0xbe, 0x45, 0xbd, 0x07, 0x8d, 0xdc, 0xa4, 0x76, 0x55, 0xdd, 0x69, 0xc5, 0xaf, 0x00, 0xa4, 0xde,
+ 0x30, 0x8d, 0x1f, 0x75, 0x8a, 0x68, 0xae, 0xe3, 0xc1, 0xe1, 0x96, 0x91, 0xee, 0xda, 0xed, 0x7b,
+ 0x0c, 0xfa, 0x3b, 0xef, 0x3c, 0x61, 0x8c, 0x41, 0x39, 0x14, 0x01, 0x66, 0xd6, 0xd3, 0xf7, 0x7a,
+ 0x6c, 0xc5, 0xfc, 0xd8, 0xfe, 0x85, 0x5a, 0x66, 0x8e, 0x56, 0x3a, 0x9a, 0x45, 0xf7, 0x53, 0x37,
+ 0x4c, 0x02, 0x62, 0x96, 0xb9, 0x45, 0x81, 0xeb, 0x24, 0x60, 0x3f, 0x42, 0x55, 0x2d, 0x09, 0x29,
+ 0x12, 0x52, 0x51, 0xcb, 0xeb, 0x24, 0x70, 0x3e, 0x16, 0x61, 0xff, 0xf9, 0x49, 0xd7, 0x65, 0x62,
+ 0x25, 0xa4, 0x72, 0xd7, 0xb3, 0xb7, 0x28, 0x70, 0x89, 0x29, 0x3b, 0xd6, 0xfa, 0x3c, 0x82, 0x8a,
+ 0x04, 0x55, 0x31, 0xf4, 0x34, 0x70, 0x02, 0x2d, 0x5f, 0x49, 0x17, 0x97, 0x13, 0x91, 0xc4, 0x0a,
+ 0x3d, 0x32, 0xd3, 0xe2, 0x4d, 0x5f, 0xc9, 0xe1, 0x2a, 0xc6, 0x06, 0x50, 0x97, 0x62, 0x91, 0x1d,
+ 0xd9, 0x32, 0xcd, 0x78, 0x7d, 0x64, 0xa9, 0x03, 0x3a, 0xa5, 0x17, 0x7b, 0xdc, 0x92, 0x62, 0x61,
+ 0x4e, 0x2c, 0x87, 0x43, 0xca, 0x77, 0x03, 0x94, 0xd3, 0x99, 0x99, 0x14, 0xc6, 0x76, 0x85, 0xd8,
+ 0x9d, 0x2d, 0xec, 0x2b, 0xca, 0xbb, 0x49, 0x82, 0x40, 0xc8, 0xf4, 0x62, 0x8f, 0xff, 0x20, 0xd7,
+ 0x51, 0xba, 0x42, 0xe2, 0xff, 0x9b, 0x00, 0xa6, 0xa6, 0xbe, 0xf9, 0x9c, 0x3f, 0x01, 0xd6, 0x6c,
+ 0x76, 0x0a, 0x96, 0xbe, 0x6b, 0x77, 0xdd, 0xa3, 0xb5, 0xe9, 0x9c, 0x72, 0x9d, 0x0f, 0x70, 0xfc,
+ 0xc2, 0xbe, 0xfa, 0x9f, 0x15, 0x88, 0xa5, 0xeb, 0xe1, 0x58, 0xa2, 0x99, 0x63, 0x8b, 0xd7, 0x03,
+ 0xb1, 0x3c, 0xa7, 0x80, 0x36, 0x59, 0xc3, 0x33, 0x9c, 0xe3, 0x8c, 0x9c, 0x6c, 0x71, 0x2b, 0x10,
+ 0xcb, 0x37, 0x7a, 0xcd, 0xba, 0xd0, 0x7e, 0x02, 0x57, 0x7a, 0xf5, 0x55, 0xd3, 0xe4, 0xfb, 0xab,
+ 0x9c, 0x4c, 0x88, 0x84, 0x41, 0x24, 0xc7, 0xbd, 0x49, 0xfa, 0x88, 0xd2, 0x3c, 0x1b, 0xbd, 0x07,
+ 0x31, 0x92, 0xfe, 0xbd, 0x79, 0x26, 0xe2, 0x5e, 0x16, 0x34, 0xed, 0x67, 0x32, 0xde, 0xfd, 0x33,
+ 0xf6, 0xd5, 0x24, 0x19, 0xf5, 0xee, 0xa3, 0xa0, 0x9f, 0xa3, 0xf6, 0x0d, 0xf5, 0xcc, 0x50, 0xcf,
+ 0xc6, 0x51, 0x7f, 0xdb, 0x4b, 0x34, 0xaa, 0x12, 0xfe, 0xfb, 0x97, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x0f, 0x2b, 0xb7, 0xc9, 0xa8, 0x06, 0x00, 0x00,
+}
diff --git a/ledger/rwset/rwset.pb.go b/ledger/rwset/rwset.pb.go
new file mode 100644
index 0000000..5bacfdc
--- /dev/null
+++ b/ledger/rwset/rwset.pb.go
@@ -0,0 +1,392 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: ledger/rwset/rwset.proto
+
+package rwset
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type TxReadWriteSet_DataModel int32
+
+const (
+ TxReadWriteSet_KV TxReadWriteSet_DataModel = 0
+)
+
+var TxReadWriteSet_DataModel_name = map[int32]string{
+ 0: "KV",
+}
+
+var TxReadWriteSet_DataModel_value = map[string]int32{
+ "KV": 0,
+}
+
+func (x TxReadWriteSet_DataModel) String() string {
+ return proto.EnumName(TxReadWriteSet_DataModel_name, int32(x))
+}
+
+func (TxReadWriteSet_DataModel) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_794d00b812408f20, []int{0, 0}
+}
+
+// TxReadWriteSet encapsulates a read-write set for a transaction
+// DataModel specifies the enum value of the data model
+// ns_rwset field specifies a list of chaincode specific read-write set (one for each chaincode)
+type TxReadWriteSet struct {
+ DataModel TxReadWriteSet_DataModel `protobuf:"varint,1,opt,name=data_model,json=dataModel,proto3,enum=rwset.TxReadWriteSet_DataModel" json:"data_model,omitempty"`
+ NsRwset []*NsReadWriteSet `protobuf:"bytes,2,rep,name=ns_rwset,json=nsRwset,proto3" json:"ns_rwset,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *TxReadWriteSet) Reset() { *m = TxReadWriteSet{} }
+func (m *TxReadWriteSet) String() string { return proto.CompactTextString(m) }
+func (*TxReadWriteSet) ProtoMessage() {}
+func (*TxReadWriteSet) Descriptor() ([]byte, []int) {
+ return fileDescriptor_794d00b812408f20, []int{0}
+}
+
+func (m *TxReadWriteSet) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_TxReadWriteSet.Unmarshal(m, b)
+}
+func (m *TxReadWriteSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_TxReadWriteSet.Marshal(b, m, deterministic)
+}
+func (m *TxReadWriteSet) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TxReadWriteSet.Merge(m, src)
+}
+func (m *TxReadWriteSet) XXX_Size() int {
+ return xxx_messageInfo_TxReadWriteSet.Size(m)
+}
+func (m *TxReadWriteSet) XXX_DiscardUnknown() {
+ xxx_messageInfo_TxReadWriteSet.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_TxReadWriteSet proto.InternalMessageInfo
+
+func (m *TxReadWriteSet) GetDataModel() TxReadWriteSet_DataModel {
+ if m != nil {
+ return m.DataModel
+ }
+ return TxReadWriteSet_KV
+}
+
+func (m *TxReadWriteSet) GetNsRwset() []*NsReadWriteSet {
+ if m != nil {
+ return m.NsRwset
+ }
+ return nil
+}
+
+// NsReadWriteSet encapsulates the read-write set for a chaincode
+type NsReadWriteSet struct {
+ Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
+ Rwset []byte `protobuf:"bytes,2,opt,name=rwset,proto3" json:"rwset,omitempty"`
+ CollectionHashedRwset []*CollectionHashedReadWriteSet `protobuf:"bytes,3,rep,name=collection_hashed_rwset,json=collectionHashedRwset,proto3" json:"collection_hashed_rwset,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *NsReadWriteSet) Reset() { *m = NsReadWriteSet{} }
+func (m *NsReadWriteSet) String() string { return proto.CompactTextString(m) }
+func (*NsReadWriteSet) ProtoMessage() {}
+func (*NsReadWriteSet) Descriptor() ([]byte, []int) {
+ return fileDescriptor_794d00b812408f20, []int{1}
+}
+
+func (m *NsReadWriteSet) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_NsReadWriteSet.Unmarshal(m, b)
+}
+func (m *NsReadWriteSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_NsReadWriteSet.Marshal(b, m, deterministic)
+}
+func (m *NsReadWriteSet) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NsReadWriteSet.Merge(m, src)
+}
+func (m *NsReadWriteSet) XXX_Size() int {
+ return xxx_messageInfo_NsReadWriteSet.Size(m)
+}
+func (m *NsReadWriteSet) XXX_DiscardUnknown() {
+ xxx_messageInfo_NsReadWriteSet.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_NsReadWriteSet proto.InternalMessageInfo
+
+func (m *NsReadWriteSet) GetNamespace() string {
+ if m != nil {
+ return m.Namespace
+ }
+ return ""
+}
+
+func (m *NsReadWriteSet) GetRwset() []byte {
+ if m != nil {
+ return m.Rwset
+ }
+ return nil
+}
+
+func (m *NsReadWriteSet) GetCollectionHashedRwset() []*CollectionHashedReadWriteSet {
+ if m != nil {
+ return m.CollectionHashedRwset
+ }
+ return nil
+}
+
+// CollectionHashedReadWriteSet encapsulate the hashed representation for the private read-write set for a collection
+type CollectionHashedReadWriteSet struct {
+ CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"`
+ HashedRwset []byte `protobuf:"bytes,2,opt,name=hashed_rwset,json=hashedRwset,proto3" json:"hashed_rwset,omitempty"`
+ PvtRwsetHash []byte `protobuf:"bytes,3,opt,name=pvt_rwset_hash,json=pvtRwsetHash,proto3" json:"pvt_rwset_hash,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CollectionHashedReadWriteSet) Reset() { *m = CollectionHashedReadWriteSet{} }
+func (m *CollectionHashedReadWriteSet) String() string { return proto.CompactTextString(m) }
+func (*CollectionHashedReadWriteSet) ProtoMessage() {}
+func (*CollectionHashedReadWriteSet) Descriptor() ([]byte, []int) {
+ return fileDescriptor_794d00b812408f20, []int{2}
+}
+
+func (m *CollectionHashedReadWriteSet) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CollectionHashedReadWriteSet.Unmarshal(m, b)
+}
+func (m *CollectionHashedReadWriteSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CollectionHashedReadWriteSet.Marshal(b, m, deterministic)
+}
+func (m *CollectionHashedReadWriteSet) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CollectionHashedReadWriteSet.Merge(m, src)
+}
+func (m *CollectionHashedReadWriteSet) XXX_Size() int {
+ return xxx_messageInfo_CollectionHashedReadWriteSet.Size(m)
+}
+func (m *CollectionHashedReadWriteSet) XXX_DiscardUnknown() {
+ xxx_messageInfo_CollectionHashedReadWriteSet.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CollectionHashedReadWriteSet proto.InternalMessageInfo
+
+func (m *CollectionHashedReadWriteSet) GetCollectionName() string {
+ if m != nil {
+ return m.CollectionName
+ }
+ return ""
+}
+
+func (m *CollectionHashedReadWriteSet) GetHashedRwset() []byte {
+ if m != nil {
+ return m.HashedRwset
+ }
+ return nil
+}
+
+func (m *CollectionHashedReadWriteSet) GetPvtRwsetHash() []byte {
+ if m != nil {
+ return m.PvtRwsetHash
+ }
+ return nil
+}
+
+// TxPvtReadWriteSet encapsulate the private read-write set for a transaction
+type TxPvtReadWriteSet struct {
+ DataModel TxReadWriteSet_DataModel `protobuf:"varint,1,opt,name=data_model,json=dataModel,proto3,enum=rwset.TxReadWriteSet_DataModel" json:"data_model,omitempty"`
+ NsPvtRwset []*NsPvtReadWriteSet `protobuf:"bytes,2,rep,name=ns_pvt_rwset,json=nsPvtRwset,proto3" json:"ns_pvt_rwset,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *TxPvtReadWriteSet) Reset() { *m = TxPvtReadWriteSet{} }
+func (m *TxPvtReadWriteSet) String() string { return proto.CompactTextString(m) }
+func (*TxPvtReadWriteSet) ProtoMessage() {}
+func (*TxPvtReadWriteSet) Descriptor() ([]byte, []int) {
+ return fileDescriptor_794d00b812408f20, []int{3}
+}
+
+func (m *TxPvtReadWriteSet) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_TxPvtReadWriteSet.Unmarshal(m, b)
+}
+func (m *TxPvtReadWriteSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_TxPvtReadWriteSet.Marshal(b, m, deterministic)
+}
+func (m *TxPvtReadWriteSet) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TxPvtReadWriteSet.Merge(m, src)
+}
+func (m *TxPvtReadWriteSet) XXX_Size() int {
+ return xxx_messageInfo_TxPvtReadWriteSet.Size(m)
+}
+func (m *TxPvtReadWriteSet) XXX_DiscardUnknown() {
+ xxx_messageInfo_TxPvtReadWriteSet.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_TxPvtReadWriteSet proto.InternalMessageInfo
+
+func (m *TxPvtReadWriteSet) GetDataModel() TxReadWriteSet_DataModel {
+ if m != nil {
+ return m.DataModel
+ }
+ return TxReadWriteSet_KV
+}
+
+func (m *TxPvtReadWriteSet) GetNsPvtRwset() []*NsPvtReadWriteSet {
+ if m != nil {
+ return m.NsPvtRwset
+ }
+ return nil
+}
+
+// NsPvtReadWriteSet encapsulates the private read-write set for a chaincode
+type NsPvtReadWriteSet struct {
+ Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
+ CollectionPvtRwset []*CollectionPvtReadWriteSet `protobuf:"bytes,2,rep,name=collection_pvt_rwset,json=collectionPvtRwset,proto3" json:"collection_pvt_rwset,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *NsPvtReadWriteSet) Reset() { *m = NsPvtReadWriteSet{} }
+func (m *NsPvtReadWriteSet) String() string { return proto.CompactTextString(m) }
+func (*NsPvtReadWriteSet) ProtoMessage() {}
+func (*NsPvtReadWriteSet) Descriptor() ([]byte, []int) {
+ return fileDescriptor_794d00b812408f20, []int{4}
+}
+
+func (m *NsPvtReadWriteSet) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_NsPvtReadWriteSet.Unmarshal(m, b)
+}
+func (m *NsPvtReadWriteSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_NsPvtReadWriteSet.Marshal(b, m, deterministic)
+}
+func (m *NsPvtReadWriteSet) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NsPvtReadWriteSet.Merge(m, src)
+}
+func (m *NsPvtReadWriteSet) XXX_Size() int {
+ return xxx_messageInfo_NsPvtReadWriteSet.Size(m)
+}
+func (m *NsPvtReadWriteSet) XXX_DiscardUnknown() {
+ xxx_messageInfo_NsPvtReadWriteSet.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_NsPvtReadWriteSet proto.InternalMessageInfo
+
+func (m *NsPvtReadWriteSet) GetNamespace() string {
+ if m != nil {
+ return m.Namespace
+ }
+ return ""
+}
+
+func (m *NsPvtReadWriteSet) GetCollectionPvtRwset() []*CollectionPvtReadWriteSet {
+ if m != nil {
+ return m.CollectionPvtRwset
+ }
+ return nil
+}
+
+// CollectionPvtReadWriteSet encapsulates the private read-write set for a collection
+type CollectionPvtReadWriteSet struct {
+ CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"`
+ Rwset []byte `protobuf:"bytes,2,opt,name=rwset,proto3" json:"rwset,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CollectionPvtReadWriteSet) Reset() { *m = CollectionPvtReadWriteSet{} }
+func (m *CollectionPvtReadWriteSet) String() string { return proto.CompactTextString(m) }
+func (*CollectionPvtReadWriteSet) ProtoMessage() {}
+func (*CollectionPvtReadWriteSet) Descriptor() ([]byte, []int) {
+ return fileDescriptor_794d00b812408f20, []int{5}
+}
+
+func (m *CollectionPvtReadWriteSet) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CollectionPvtReadWriteSet.Unmarshal(m, b)
+}
+func (m *CollectionPvtReadWriteSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CollectionPvtReadWriteSet.Marshal(b, m, deterministic)
+}
+func (m *CollectionPvtReadWriteSet) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CollectionPvtReadWriteSet.Merge(m, src)
+}
+func (m *CollectionPvtReadWriteSet) XXX_Size() int {
+ return xxx_messageInfo_CollectionPvtReadWriteSet.Size(m)
+}
+func (m *CollectionPvtReadWriteSet) XXX_DiscardUnknown() {
+ xxx_messageInfo_CollectionPvtReadWriteSet.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CollectionPvtReadWriteSet proto.InternalMessageInfo
+
+func (m *CollectionPvtReadWriteSet) GetCollectionName() string {
+ if m != nil {
+ return m.CollectionName
+ }
+ return ""
+}
+
+func (m *CollectionPvtReadWriteSet) GetRwset() []byte {
+ if m != nil {
+ return m.Rwset
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterEnum("rwset.TxReadWriteSet_DataModel", TxReadWriteSet_DataModel_name, TxReadWriteSet_DataModel_value)
+ proto.RegisterType((*TxReadWriteSet)(nil), "rwset.TxReadWriteSet")
+ proto.RegisterType((*NsReadWriteSet)(nil), "rwset.NsReadWriteSet")
+ proto.RegisterType((*CollectionHashedReadWriteSet)(nil), "rwset.CollectionHashedReadWriteSet")
+ proto.RegisterType((*TxPvtReadWriteSet)(nil), "rwset.TxPvtReadWriteSet")
+ proto.RegisterType((*NsPvtReadWriteSet)(nil), "rwset.NsPvtReadWriteSet")
+ proto.RegisterType((*CollectionPvtReadWriteSet)(nil), "rwset.CollectionPvtReadWriteSet")
+}
+
+func init() { proto.RegisterFile("ledger/rwset/rwset.proto", fileDescriptor_794d00b812408f20) }
+
+var fileDescriptor_794d00b812408f20 = []byte{
+ // 421 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0xcf, 0xef, 0x93, 0x30,
+ 0x18, 0xc6, 0xed, 0x77, 0xd9, 0x94, 0x77, 0x04, 0x5d, 0xdd, 0x22, 0x26, 0x4b, 0x9c, 0xd3, 0xc4,
+ 0xc5, 0x64, 0x60, 0xa6, 0x27, 0x0f, 0x1e, 0xd4, 0x83, 0x89, 0x71, 0x31, 0x75, 0xd1, 0x64, 0x1e,
+ 0x48, 0x81, 0x0a, 0x24, 0x40, 0x09, 0xad, 0x73, 0xfe, 0x01, 0x9e, 0xf5, 0xe6, 0xd9, 0xff, 0xd4,
+ 0xac, 0x65, 0x0c, 0x98, 0xbf, 0x0e, 0x5e, 0x08, 0x7d, 0xfb, 0x3c, 0x3c, 0x9f, 0xf6, 0xe5, 0x05,
+ 0x3b, 0x65, 0x61, 0xc4, 0x4a, 0xb7, 0xfc, 0x24, 0x98, 0xd4, 0x4f, 0xa7, 0x28, 0xb9, 0xe4, 0xb8,
+ 0xaf, 0x16, 0xf3, 0xef, 0x08, 0xac, 0xcd, 0x9e, 0x30, 0x1a, 0xbe, 0x2b, 0x13, 0xc9, 0xde, 0x30,
+ 0x89, 0x9f, 0x00, 0x84, 0x54, 0x52, 0x2f, 0xe3, 0x21, 0x4b, 0x6d, 0x34, 0x43, 0x0b, 0x6b, 0x75,
+ 0xcb, 0xd1, 0xde, 0xb6, 0xd4, 0x79, 0x4e, 0x25, 0x7d, 0x75, 0x90, 0x11, 0x23, 0x3c, 0xbe, 0xe2,
+ 0x07, 0x70, 0x25, 0x17, 0x9e, 0xd2, 0xdb, 0x17, 0xb3, 0xde, 0x62, 0xb8, 0x9a, 0x54, 0xee, 0xb5,
+ 0x68, 0xba, 0xc9, 0xe5, 0x5c, 0x10, 0x05, 0x71, 0x1d, 0x8c, 0xfa, 0x4b, 0x78, 0x00, 0x17, 0x2f,
+ 0xdf, 0x5e, 0xbb, 0x34, 0xff, 0x81, 0xc0, 0x6a, 0x1b, 0xf0, 0x14, 0x8c, 0x9c, 0x66, 0x4c, 0x14,
+ 0x34, 0x60, 0x0a, 0xcc, 0x20, 0xa7, 0x02, 0x1e, 0x43, 0xff, 0x18, 0x8a, 0x16, 0x26, 0xd1, 0x0b,
+ 0xfc, 0x1e, 0x6e, 0x04, 0x3c, 0x4d, 0x59, 0x20, 0x13, 0x9e, 0x7b, 0x31, 0x15, 0x31, 0x0b, 0x2b,
+ 0xb8, 0x9e, 0x82, 0xbb, 0x53, 0xc1, 0x3d, 0xab, 0x55, 0x2f, 0x94, 0xa8, 0x85, 0x3a, 0x09, 0xba,
+ 0xbb, 0x0a, 0xfc, 0x1b, 0x82, 0xe9, 0x9f, 0x7c, 0xf8, 0x1e, 0x5c, 0x6d, 0xa4, 0x1f, 0x58, 0x2b,
+ 0x6e, 0xeb, 0x54, 0x5e, 0xd3, 0x8c, 0xe1, 0xdb, 0x60, 0xb6, 0xd8, 0xf4, 0x19, 0x86, 0xf1, 0x29,
+ 0x0c, 0xdf, 0x05, 0xab, 0xd8, 0x49, 0xbd, 0xaf, 0x0e, 0x62, 0xf7, 0x94, 0xc8, 0x2c, 0x76, 0x52,
+ 0x29, 0x0e, 0xf9, 0xf3, 0xaf, 0x08, 0x46, 0x9b, 0xfd, 0xeb, 0x9d, 0xfc, 0xaf, 0x3d, 0x7d, 0x0c,
+ 0x66, 0x2e, 0xbc, 0x3a, 0xbe, 0xea, 0xab, 0x5d, 0xf7, 0xb5, 0x93, 0x47, 0x20, 0x57, 0x25, 0x75,
+ 0x49, 0x5f, 0x10, 0x8c, 0xce, 0x14, 0x7f, 0xe9, 0x25, 0x81, 0x71, 0xe3, 0xde, 0xba, 0xb9, 0xb3,
+ 0xb3, 0x96, 0x75, 0xf3, 0x71, 0xd0, 0xda, 0x52, 0x1c, 0x5b, 0xb8, 0xf9, 0x5b, 0xc3, 0xbf, 0x37,
+ 0xea, 0x97, 0x7f, 0xd9, 0x53, 0x1f, 0xee, 0xf3, 0x32, 0x72, 0xe2, 0xcf, 0x05, 0x2b, 0xf5, 0xc8,
+ 0x39, 0x1f, 0xa8, 0x5f, 0x26, 0x81, 0x9e, 0x36, 0xe1, 0x54, 0x45, 0xa5, 0xde, 0x3e, 0x8a, 0x12,
+ 0x19, 0x7f, 0xf4, 0x9d, 0x80, 0x67, 0x6e, 0xc3, 0xe2, 0x6a, 0xcb, 0x52, 0x5b, 0x96, 0x11, 0x77,
+ 0x9b, 0xd3, 0xeb, 0x0f, 0x54, 0xfd, 0xe1, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x47, 0x32, 0x8f,
+ 0x91, 0xd4, 0x03, 0x00, 0x00,
+}
diff --git a/msp/identities.pb.go b/msp/identities.pb.go
new file mode 100644
index 0000000..65bcfb2
--- /dev/null
+++ b/msp/identities.pb.go
@@ -0,0 +1,184 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: msp/identities.proto
+
+package msp
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// This struct represents an Identity
+// (with its MSP identifier) to be used
+// to serialize it and deserialize it
+type SerializedIdentity struct {
+ // The identifier of the associated membership service provider
+ Mspid string `protobuf:"bytes,1,opt,name=mspid,proto3" json:"mspid,omitempty"`
+ // the Identity, serialized according to the rules of its MPS
+ IdBytes []byte `protobuf:"bytes,2,opt,name=id_bytes,json=idBytes,proto3" json:"id_bytes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SerializedIdentity) Reset() { *m = SerializedIdentity{} }
+func (m *SerializedIdentity) String() string { return proto.CompactTextString(m) }
+func (*SerializedIdentity) ProtoMessage() {}
+func (*SerializedIdentity) Descriptor() ([]byte, []int) {
+ return fileDescriptor_872f7fc14bf2c238, []int{0}
+}
+
+func (m *SerializedIdentity) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SerializedIdentity.Unmarshal(m, b)
+}
+func (m *SerializedIdentity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SerializedIdentity.Marshal(b, m, deterministic)
+}
+func (m *SerializedIdentity) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SerializedIdentity.Merge(m, src)
+}
+func (m *SerializedIdentity) XXX_Size() int {
+ return xxx_messageInfo_SerializedIdentity.Size(m)
+}
+func (m *SerializedIdentity) XXX_DiscardUnknown() {
+ xxx_messageInfo_SerializedIdentity.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SerializedIdentity proto.InternalMessageInfo
+
+func (m *SerializedIdentity) GetMspid() string {
+ if m != nil {
+ return m.Mspid
+ }
+ return ""
+}
+
+func (m *SerializedIdentity) GetIdBytes() []byte {
+ if m != nil {
+ return m.IdBytes
+ }
+ return nil
+}
+
+// This struct represents an Idemix Identity
+// to be used to serialize it and deserialize it.
+// The IdemixMSP will first serialize an idemix identity to bytes using
+// this proto, and then uses these bytes as id_bytes in SerializedIdentity
+type SerializedIdemixIdentity struct {
+ // nym_x is the X-component of the pseudonym elliptic curve point.
+ // It is a []byte representation of an amcl.BIG
+ // The pseudonym can be seen as a public key of the identity, it is used to verify signatures.
+ NymX []byte `protobuf:"bytes,1,opt,name=nym_x,json=nymX,proto3" json:"nym_x,omitempty"`
+ // nym_y is the Y-component of the pseudonym elliptic curve point.
+ // It is a []byte representation of an amcl.BIG
+ // The pseudonym can be seen as a public key of the identity, it is used to verify signatures.
+ NymY []byte `protobuf:"bytes,2,opt,name=nym_y,json=nymY,proto3" json:"nym_y,omitempty"`
+ // ou contains the organizational unit of the idemix identity
+ Ou []byte `protobuf:"bytes,3,opt,name=ou,proto3" json:"ou,omitempty"`
+ // role contains the role of this identity (e.g., ADMIN or MEMBER)
+ Role []byte `protobuf:"bytes,4,opt,name=role,proto3" json:"role,omitempty"`
+ // proof contains the cryptographic evidence that this identity is valid
+ Proof []byte `protobuf:"bytes,5,opt,name=proof,proto3" json:"proof,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SerializedIdemixIdentity) Reset() { *m = SerializedIdemixIdentity{} }
+func (m *SerializedIdemixIdentity) String() string { return proto.CompactTextString(m) }
+func (*SerializedIdemixIdentity) ProtoMessage() {}
+func (*SerializedIdemixIdentity) Descriptor() ([]byte, []int) {
+ return fileDescriptor_872f7fc14bf2c238, []int{1}
+}
+
+func (m *SerializedIdemixIdentity) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SerializedIdemixIdentity.Unmarshal(m, b)
+}
+func (m *SerializedIdemixIdentity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SerializedIdemixIdentity.Marshal(b, m, deterministic)
+}
+func (m *SerializedIdemixIdentity) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SerializedIdemixIdentity.Merge(m, src)
+}
+func (m *SerializedIdemixIdentity) XXX_Size() int {
+ return xxx_messageInfo_SerializedIdemixIdentity.Size(m)
+}
+func (m *SerializedIdemixIdentity) XXX_DiscardUnknown() {
+ xxx_messageInfo_SerializedIdemixIdentity.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SerializedIdemixIdentity proto.InternalMessageInfo
+
+func (m *SerializedIdemixIdentity) GetNymX() []byte {
+ if m != nil {
+ return m.NymX
+ }
+ return nil
+}
+
+func (m *SerializedIdemixIdentity) GetNymY() []byte {
+ if m != nil {
+ return m.NymY
+ }
+ return nil
+}
+
+func (m *SerializedIdemixIdentity) GetOu() []byte {
+ if m != nil {
+ return m.Ou
+ }
+ return nil
+}
+
+func (m *SerializedIdemixIdentity) GetRole() []byte {
+ if m != nil {
+ return m.Role
+ }
+ return nil
+}
+
+func (m *SerializedIdemixIdentity) GetProof() []byte {
+ if m != nil {
+ return m.Proof
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*SerializedIdentity)(nil), "msp.SerializedIdentity")
+ proto.RegisterType((*SerializedIdemixIdentity)(nil), "msp.SerializedIdemixIdentity")
+}
+
+func init() { proto.RegisterFile("msp/identities.proto", fileDescriptor_872f7fc14bf2c238) }
+
+var fileDescriptor_872f7fc14bf2c238 = []byte{
+ // 243 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x8f, 0x31, 0x4f, 0xfb, 0x30,
+ 0x10, 0x47, 0x95, 0x34, 0xf9, 0xff, 0xc1, 0xaa, 0x18, 0x4c, 0x07, 0xb3, 0x95, 0x4e, 0x95, 0x50,
+ 0x9d, 0x81, 0x6f, 0x50, 0x89, 0x81, 0x0d, 0x85, 0x05, 0x58, 0xaa, 0xa6, 0xbe, 0xa6, 0x27, 0xe5,
+ 0x72, 0x96, 0xed, 0x48, 0x35, 0x03, 0x9f, 0x1d, 0x25, 0x06, 0x04, 0x9b, 0x7f, 0x4f, 0x4f, 0x4f,
+ 0x3e, 0xb1, 0x20, 0x6f, 0x2b, 0x34, 0xd0, 0x07, 0x0c, 0x08, 0x5e, 0x5b, 0xc7, 0x81, 0xe5, 0x8c,
+ 0xbc, 0x5d, 0x3d, 0x08, 0xf9, 0x0c, 0x0e, 0xf7, 0x1d, 0xbe, 0x83, 0x79, 0x4c, 0x4a, 0x94, 0x0b,
+ 0x51, 0x92, 0xb7, 0x68, 0x54, 0xb6, 0xcc, 0xd6, 0x97, 0x75, 0x1a, 0xf2, 0x46, 0x5c, 0xa0, 0xd9,
+ 0x35, 0x31, 0x80, 0x57, 0xf9, 0x32, 0x5b, 0xcf, 0xeb, 0xff, 0x68, 0xb6, 0xe3, 0x5c, 0x7d, 0x08,
+ 0xf5, 0x27, 0x43, 0x78, 0xfe, 0x89, 0x5d, 0x8b, 0xb2, 0x8f, 0xb4, 0x3b, 0x4f, 0xb1, 0x79, 0x5d,
+ 0xf4, 0x91, 0x5e, 0xbe, 0x61, 0xfc, 0x0a, 0x8d, 0xf0, 0x55, 0x5e, 0x89, 0x9c, 0x07, 0x35, 0x9b,
+ 0x48, 0xce, 0x83, 0x94, 0xa2, 0x70, 0xdc, 0x81, 0x2a, 0x92, 0x33, 0xbe, 0xc7, 0xaf, 0x59, 0xc7,
+ 0x7c, 0x54, 0xe5, 0x04, 0xd3, 0xd8, 0x3e, 0x89, 0x5b, 0x76, 0xad, 0x3e, 0x45, 0x0b, 0xae, 0x03,
+ 0xd3, 0x82, 0xd3, 0xc7, 0x7d, 0xe3, 0xf0, 0x90, 0x6e, 0xf5, 0x9a, 0xbc, 0x7d, 0xbb, 0x6b, 0x31,
+ 0x9c, 0x86, 0x46, 0x1f, 0x98, 0xaa, 0x5f, 0x66, 0x95, 0xcc, 0x4d, 0x32, 0x37, 0x2d, 0x57, 0xe4,
+ 0x6d, 0xf3, 0x6f, 0x9a, 0xf7, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x2d, 0xf7, 0x41, 0xf7, 0x3c,
+ 0x01, 0x00, 0x00,
+}
diff --git a/msp/msp_config.pb.go b/msp/msp_config.pb.go
new file mode 100644
index 0000000..005663c
--- /dev/null
+++ b/msp/msp_config.pb.go
@@ -0,0 +1,775 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: msp/msp_config.proto
+
+package msp
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// MSPConfig collects all the configuration information for
+// an MSP. The Config field should be unmarshalled in a way
+// that depends on the Type
+type MSPConfig struct {
+ // Type holds the type of the MSP; the default one would
+ // be of type FABRIC implementing an X.509 based provider
+ Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
+ // Config is MSP dependent configuration info
+ Config []byte `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MSPConfig) Reset() { *m = MSPConfig{} }
+func (m *MSPConfig) String() string { return proto.CompactTextString(m) }
+func (*MSPConfig) ProtoMessage() {}
+func (*MSPConfig) Descriptor() ([]byte, []int) {
+ return fileDescriptor_9c34771f529d9d1a, []int{0}
+}
+
+func (m *MSPConfig) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MSPConfig.Unmarshal(m, b)
+}
+func (m *MSPConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MSPConfig.Marshal(b, m, deterministic)
+}
+func (m *MSPConfig) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MSPConfig.Merge(m, src)
+}
+func (m *MSPConfig) XXX_Size() int {
+ return xxx_messageInfo_MSPConfig.Size(m)
+}
+func (m *MSPConfig) XXX_DiscardUnknown() {
+ xxx_messageInfo_MSPConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MSPConfig proto.InternalMessageInfo
+
+func (m *MSPConfig) GetType() int32 {
+ if m != nil {
+ return m.Type
+ }
+ return 0
+}
+
+func (m *MSPConfig) GetConfig() []byte {
+ if m != nil {
+ return m.Config
+ }
+ return nil
+}
+
+// FabricMSPConfig collects all the configuration information for
+// a Fabric MSP.
+// Here we assume a default certificate validation policy, where
+// any certificate signed by any of the listed rootCA certs would
+// be considered as valid under this MSP.
+// This MSP may or may not come with a signing identity. If it does,
+// it can also issue signing identities. If it does not, it can only
+// be used to validate and verify certificates.
+type FabricMSPConfig struct {
+ // Name holds the identifier of the MSP; MSP identifier
+ // is chosen by the application that governs this MSP.
+ // For example, and assuming the default implementation of MSP,
+ // that is X.509-based and considers a single Issuer,
+ // this can refer to the Subject OU field or the Issuer OU field.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // List of root certificates trusted by this MSP
+ // they are used upon certificate validation (see
+ // comment for IntermediateCerts below)
+ RootCerts [][]byte `protobuf:"bytes,2,rep,name=root_certs,json=rootCerts,proto3" json:"root_certs,omitempty"`
+ // List of intermediate certificates trusted by this MSP;
+ // they are used upon certificate validation as follows:
+ // validation attempts to build a path from the certificate
+ // to be validated (which is at one end of the path) and
+ // one of the certs in the RootCerts field (which is at
+ // the other end of the path). If the path is longer than
+ // 2, certificates in the middle are searched within the
+ // IntermediateCerts pool
+ IntermediateCerts [][]byte `protobuf:"bytes,3,rep,name=intermediate_certs,json=intermediateCerts,proto3" json:"intermediate_certs,omitempty"`
+ // Identity denoting the administrator of this MSP
+ Admins [][]byte `protobuf:"bytes,4,rep,name=admins,proto3" json:"admins,omitempty"`
+ // Identity revocation list
+ RevocationList [][]byte `protobuf:"bytes,5,rep,name=revocation_list,json=revocationList,proto3" json:"revocation_list,omitempty"`
+ // SigningIdentity holds information on the signing identity
+ // this peer is to use, and which is to be imported by the
+ // MSP defined before
+ SigningIdentity *SigningIdentityInfo `protobuf:"bytes,6,opt,name=signing_identity,json=signingIdentity,proto3" json:"signing_identity,omitempty"`
+ // OrganizationalUnitIdentifiers holds one or more
+ // fabric organizational unit identifiers that belong to
+ // this MSP configuration
+ OrganizationalUnitIdentifiers []*FabricOUIdentifier `protobuf:"bytes,7,rep,name=organizational_unit_identifiers,json=organizationalUnitIdentifiers,proto3" json:"organizational_unit_identifiers,omitempty"`
+ // FabricCryptoConfig contains the configuration parameters
+ // for the cryptographic algorithms used by this MSP
+ CryptoConfig *FabricCryptoConfig `protobuf:"bytes,8,opt,name=crypto_config,json=cryptoConfig,proto3" json:"crypto_config,omitempty"`
+ // List of TLS root certificates trusted by this MSP.
+ // They are returned by GetTLSRootCerts.
+ TlsRootCerts [][]byte `protobuf:"bytes,9,rep,name=tls_root_certs,json=tlsRootCerts,proto3" json:"tls_root_certs,omitempty"`
+ // List of TLS intermediate certificates trusted by this MSP;
+ // They are returned by GetTLSIntermediateCerts.
+ TlsIntermediateCerts [][]byte `protobuf:"bytes,10,rep,name=tls_intermediate_certs,json=tlsIntermediateCerts,proto3" json:"tls_intermediate_certs,omitempty"`
+ // fabric_node_ous contains the configuration to distinguish clients from peers from orderers
+ // based on the OUs.
+ FabricNodeOus *FabricNodeOUs `protobuf:"bytes,11,opt,name=fabric_node_ous,json=fabricNodeOus,proto3" json:"fabric_node_ous,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *FabricMSPConfig) Reset() { *m = FabricMSPConfig{} }
+func (m *FabricMSPConfig) String() string { return proto.CompactTextString(m) }
+func (*FabricMSPConfig) ProtoMessage() {}
+func (*FabricMSPConfig) Descriptor() ([]byte, []int) {
+ return fileDescriptor_9c34771f529d9d1a, []int{1}
+}
+
+func (m *FabricMSPConfig) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_FabricMSPConfig.Unmarshal(m, b)
+}
+func (m *FabricMSPConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_FabricMSPConfig.Marshal(b, m, deterministic)
+}
+func (m *FabricMSPConfig) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FabricMSPConfig.Merge(m, src)
+}
+func (m *FabricMSPConfig) XXX_Size() int {
+ return xxx_messageInfo_FabricMSPConfig.Size(m)
+}
+func (m *FabricMSPConfig) XXX_DiscardUnknown() {
+ xxx_messageInfo_FabricMSPConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_FabricMSPConfig proto.InternalMessageInfo
+
+func (m *FabricMSPConfig) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *FabricMSPConfig) GetRootCerts() [][]byte {
+ if m != nil {
+ return m.RootCerts
+ }
+ return nil
+}
+
+func (m *FabricMSPConfig) GetIntermediateCerts() [][]byte {
+ if m != nil {
+ return m.IntermediateCerts
+ }
+ return nil
+}
+
+func (m *FabricMSPConfig) GetAdmins() [][]byte {
+ if m != nil {
+ return m.Admins
+ }
+ return nil
+}
+
+func (m *FabricMSPConfig) GetRevocationList() [][]byte {
+ if m != nil {
+ return m.RevocationList
+ }
+ return nil
+}
+
+func (m *FabricMSPConfig) GetSigningIdentity() *SigningIdentityInfo {
+ if m != nil {
+ return m.SigningIdentity
+ }
+ return nil
+}
+
+func (m *FabricMSPConfig) GetOrganizationalUnitIdentifiers() []*FabricOUIdentifier {
+ if m != nil {
+ return m.OrganizationalUnitIdentifiers
+ }
+ return nil
+}
+
+func (m *FabricMSPConfig) GetCryptoConfig() *FabricCryptoConfig {
+ if m != nil {
+ return m.CryptoConfig
+ }
+ return nil
+}
+
+func (m *FabricMSPConfig) GetTlsRootCerts() [][]byte {
+ if m != nil {
+ return m.TlsRootCerts
+ }
+ return nil
+}
+
+func (m *FabricMSPConfig) GetTlsIntermediateCerts() [][]byte {
+ if m != nil {
+ return m.TlsIntermediateCerts
+ }
+ return nil
+}
+
+func (m *FabricMSPConfig) GetFabricNodeOus() *FabricNodeOUs {
+ if m != nil {
+ return m.FabricNodeOus
+ }
+ return nil
+}
+
+// FabricCryptoConfig contains configuration parameters
+// for the cryptographic algorithms used by the MSP
+// this configuration refers to
+type FabricCryptoConfig struct {
+ // SignatureHashFamily is a string representing the hash family to be used
+ // during sign and verify operations.
+ // Allowed values are "SHA2" and "SHA3".
+ SignatureHashFamily string `protobuf:"bytes,1,opt,name=signature_hash_family,json=signatureHashFamily,proto3" json:"signature_hash_family,omitempty"`
+ // IdentityIdentifierHashFunction is a string representing the hash function
+ // to be used during the computation of the identity identifier of an MSP identity.
+ // Allowed values are "SHA256", "SHA384" and "SHA3_256", "SHA3_384".
+ IdentityIdentifierHashFunction string `protobuf:"bytes,2,opt,name=identity_identifier_hash_function,json=identityIdentifierHashFunction,proto3" json:"identity_identifier_hash_function,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *FabricCryptoConfig) Reset() { *m = FabricCryptoConfig{} }
+func (m *FabricCryptoConfig) String() string { return proto.CompactTextString(m) }
+func (*FabricCryptoConfig) ProtoMessage() {}
+func (*FabricCryptoConfig) Descriptor() ([]byte, []int) {
+ return fileDescriptor_9c34771f529d9d1a, []int{2}
+}
+
+func (m *FabricCryptoConfig) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_FabricCryptoConfig.Unmarshal(m, b)
+}
+func (m *FabricCryptoConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_FabricCryptoConfig.Marshal(b, m, deterministic)
+}
+func (m *FabricCryptoConfig) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FabricCryptoConfig.Merge(m, src)
+}
+func (m *FabricCryptoConfig) XXX_Size() int {
+ return xxx_messageInfo_FabricCryptoConfig.Size(m)
+}
+func (m *FabricCryptoConfig) XXX_DiscardUnknown() {
+ xxx_messageInfo_FabricCryptoConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_FabricCryptoConfig proto.InternalMessageInfo
+
+func (m *FabricCryptoConfig) GetSignatureHashFamily() string {
+ if m != nil {
+ return m.SignatureHashFamily
+ }
+ return ""
+}
+
+func (m *FabricCryptoConfig) GetIdentityIdentifierHashFunction() string {
+ if m != nil {
+ return m.IdentityIdentifierHashFunction
+ }
+ return ""
+}
+
+// IdemixMSPConfig collects all the configuration information for
+// an Idemix MSP.
+type IdemixMSPConfig struct {
+ // Name holds the identifier of the MSP
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // ipk represents the (serialized) issuer public key
+ Ipk []byte `protobuf:"bytes,2,opt,name=ipk,proto3" json:"ipk,omitempty"`
+ // signer may contain crypto material to configure a default signer
+ Signer *IdemixMSPSignerConfig `protobuf:"bytes,3,opt,name=signer,proto3" json:"signer,omitempty"`
+ // revocation_pk is the public key used for revocation of credentials
+ RevocationPk []byte `protobuf:"bytes,4,opt,name=revocation_pk,json=revocationPk,proto3" json:"revocation_pk,omitempty"`
+ // epoch represents the current epoch (time interval) used for revocation
+ Epoch int64 `protobuf:"varint,5,opt,name=epoch,proto3" json:"epoch,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *IdemixMSPConfig) Reset() { *m = IdemixMSPConfig{} }
+func (m *IdemixMSPConfig) String() string { return proto.CompactTextString(m) }
+func (*IdemixMSPConfig) ProtoMessage() {}
+func (*IdemixMSPConfig) Descriptor() ([]byte, []int) {
+ return fileDescriptor_9c34771f529d9d1a, []int{3}
+}
+
+func (m *IdemixMSPConfig) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_IdemixMSPConfig.Unmarshal(m, b)
+}
+func (m *IdemixMSPConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_IdemixMSPConfig.Marshal(b, m, deterministic)
+}
+func (m *IdemixMSPConfig) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_IdemixMSPConfig.Merge(m, src)
+}
+func (m *IdemixMSPConfig) XXX_Size() int {
+ return xxx_messageInfo_IdemixMSPConfig.Size(m)
+}
+func (m *IdemixMSPConfig) XXX_DiscardUnknown() {
+ xxx_messageInfo_IdemixMSPConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_IdemixMSPConfig proto.InternalMessageInfo
+
+func (m *IdemixMSPConfig) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *IdemixMSPConfig) GetIpk() []byte {
+ if m != nil {
+ return m.Ipk
+ }
+ return nil
+}
+
+func (m *IdemixMSPConfig) GetSigner() *IdemixMSPSignerConfig {
+ if m != nil {
+ return m.Signer
+ }
+ return nil
+}
+
+func (m *IdemixMSPConfig) GetRevocationPk() []byte {
+ if m != nil {
+ return m.RevocationPk
+ }
+ return nil
+}
+
+func (m *IdemixMSPConfig) GetEpoch() int64 {
+ if m != nil {
+ return m.Epoch
+ }
+ return 0
+}
+
+// IdemixMSPSIgnerConfig contains the crypto material to set up an idemix signing identity
+type IdemixMSPSignerConfig struct {
+ // cred represents the serialized idemix credential of the default signer
+ Cred []byte `protobuf:"bytes,1,opt,name=cred,proto3" json:"cred,omitempty"`
+ // sk is the secret key of the default signer, corresponding to credential Cred
+ Sk []byte `protobuf:"bytes,2,opt,name=sk,proto3" json:"sk,omitempty"`
+ // organizational_unit_identifier defines the organizational unit the default signer is in
+ OrganizationalUnitIdentifier string `protobuf:"bytes,3,opt,name=organizational_unit_identifier,json=organizationalUnitIdentifier,proto3" json:"organizational_unit_identifier,omitempty"`
+ // role defines whether the default signer is admin, peer, member or client
+ Role int32 `protobuf:"varint,4,opt,name=role,proto3" json:"role,omitempty"`
+ // enrollment_id contains the enrollment id of this signer
+ EnrollmentId string `protobuf:"bytes,5,opt,name=enrollment_id,json=enrollmentId,proto3" json:"enrollment_id,omitempty"`
+ // credential_revocation_information contains a serialized CredentialRevocationInformation
+ CredentialRevocationInformation []byte `protobuf:"bytes,6,opt,name=credential_revocation_information,json=credentialRevocationInformation,proto3" json:"credential_revocation_information,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *IdemixMSPSignerConfig) Reset() { *m = IdemixMSPSignerConfig{} }
+func (m *IdemixMSPSignerConfig) String() string { return proto.CompactTextString(m) }
+func (*IdemixMSPSignerConfig) ProtoMessage() {}
+func (*IdemixMSPSignerConfig) Descriptor() ([]byte, []int) {
+ return fileDescriptor_9c34771f529d9d1a, []int{4}
+}
+
+func (m *IdemixMSPSignerConfig) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_IdemixMSPSignerConfig.Unmarshal(m, b)
+}
+func (m *IdemixMSPSignerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_IdemixMSPSignerConfig.Marshal(b, m, deterministic)
+}
+func (m *IdemixMSPSignerConfig) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_IdemixMSPSignerConfig.Merge(m, src)
+}
+func (m *IdemixMSPSignerConfig) XXX_Size() int {
+ return xxx_messageInfo_IdemixMSPSignerConfig.Size(m)
+}
+func (m *IdemixMSPSignerConfig) XXX_DiscardUnknown() {
+ xxx_messageInfo_IdemixMSPSignerConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_IdemixMSPSignerConfig proto.InternalMessageInfo
+
+func (m *IdemixMSPSignerConfig) GetCred() []byte {
+ if m != nil {
+ return m.Cred
+ }
+ return nil
+}
+
+func (m *IdemixMSPSignerConfig) GetSk() []byte {
+ if m != nil {
+ return m.Sk
+ }
+ return nil
+}
+
+func (m *IdemixMSPSignerConfig) GetOrganizationalUnitIdentifier() string {
+ if m != nil {
+ return m.OrganizationalUnitIdentifier
+ }
+ return ""
+}
+
+func (m *IdemixMSPSignerConfig) GetRole() int32 {
+ if m != nil {
+ return m.Role
+ }
+ return 0
+}
+
+func (m *IdemixMSPSignerConfig) GetEnrollmentId() string {
+ if m != nil {
+ return m.EnrollmentId
+ }
+ return ""
+}
+
+func (m *IdemixMSPSignerConfig) GetCredentialRevocationInformation() []byte {
+ if m != nil {
+ return m.CredentialRevocationInformation
+ }
+ return nil
+}
+
+// SigningIdentityInfo represents the configuration information
+// related to the signing identity the peer is to use for generating
+// endorsements
+type SigningIdentityInfo struct {
+ // PublicSigner carries the public information of the signing
+ // identity. For an X.509 provider this would be represented by
+ // an X.509 certificate
+ PublicSigner []byte `protobuf:"bytes,1,opt,name=public_signer,json=publicSigner,proto3" json:"public_signer,omitempty"`
+ // PrivateSigner denotes a reference to the private key of the
+ // peer's signing identity
+ PrivateSigner *KeyInfo `protobuf:"bytes,2,opt,name=private_signer,json=privateSigner,proto3" json:"private_signer,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SigningIdentityInfo) Reset() { *m = SigningIdentityInfo{} }
+func (m *SigningIdentityInfo) String() string { return proto.CompactTextString(m) }
+func (*SigningIdentityInfo) ProtoMessage() {}
+func (*SigningIdentityInfo) Descriptor() ([]byte, []int) {
+ return fileDescriptor_9c34771f529d9d1a, []int{5}
+}
+
+func (m *SigningIdentityInfo) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SigningIdentityInfo.Unmarshal(m, b)
+}
+func (m *SigningIdentityInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SigningIdentityInfo.Marshal(b, m, deterministic)
+}
+func (m *SigningIdentityInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SigningIdentityInfo.Merge(m, src)
+}
+func (m *SigningIdentityInfo) XXX_Size() int {
+ return xxx_messageInfo_SigningIdentityInfo.Size(m)
+}
+func (m *SigningIdentityInfo) XXX_DiscardUnknown() {
+ xxx_messageInfo_SigningIdentityInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SigningIdentityInfo proto.InternalMessageInfo
+
+func (m *SigningIdentityInfo) GetPublicSigner() []byte {
+ if m != nil {
+ return m.PublicSigner
+ }
+ return nil
+}
+
+func (m *SigningIdentityInfo) GetPrivateSigner() *KeyInfo {
+ if m != nil {
+ return m.PrivateSigner
+ }
+ return nil
+}
+
+// KeyInfo represents a (secret) key that is either already stored
+// in the bccsp/keystore or key material to be imported to the
+// bccsp key-store. In later versions it may contain also a
+// keystore identifier
+type KeyInfo struct {
+ // Identifier of the key inside the default keystore; this for
+ // the case of Software BCCSP as well as the HSM BCCSP would be
+ // the SKI of the key
+ KeyIdentifier string `protobuf:"bytes,1,opt,name=key_identifier,json=keyIdentifier,proto3" json:"key_identifier,omitempty"`
+ // KeyMaterial (optional) for the key to be imported; this is
+ // properly encoded key bytes, prefixed by the type of the key
+ KeyMaterial []byte `protobuf:"bytes,2,opt,name=key_material,json=keyMaterial,proto3" json:"key_material,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KeyInfo) Reset() { *m = KeyInfo{} }
+func (m *KeyInfo) String() string { return proto.CompactTextString(m) }
+func (*KeyInfo) ProtoMessage() {}
+func (*KeyInfo) Descriptor() ([]byte, []int) {
+ return fileDescriptor_9c34771f529d9d1a, []int{6}
+}
+
+func (m *KeyInfo) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KeyInfo.Unmarshal(m, b)
+}
+func (m *KeyInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KeyInfo.Marshal(b, m, deterministic)
+}
+func (m *KeyInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KeyInfo.Merge(m, src)
+}
+func (m *KeyInfo) XXX_Size() int {
+ return xxx_messageInfo_KeyInfo.Size(m)
+}
+func (m *KeyInfo) XXX_DiscardUnknown() {
+ xxx_messageInfo_KeyInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KeyInfo proto.InternalMessageInfo
+
+func (m *KeyInfo) GetKeyIdentifier() string {
+ if m != nil {
+ return m.KeyIdentifier
+ }
+ return ""
+}
+
+func (m *KeyInfo) GetKeyMaterial() []byte {
+ if m != nil {
+ return m.KeyMaterial
+ }
+ return nil
+}
+
+// FabricOUIdentifier represents an organizational unit and
+// its related chain of trust identifier.
+type FabricOUIdentifier struct {
+ // Certificate represents the second certificate in a certification chain.
+ // (Notice that the first certificate in a certification chain is supposed
+ // to be the certificate of an identity).
+ // It must correspond to the certificate of root or intermediate CA
+ // recognized by the MSP this message belongs to.
+ // Starting from this certificate, a certification chain is computed
+ // and bound to the OrganizationUnitIdentifier specified
+ Certificate []byte `protobuf:"bytes,1,opt,name=certificate,proto3" json:"certificate,omitempty"`
+ // OrganizationUnitIdentifier defines the organizational unit under the
+ // MSP identified with MSPIdentifier
+ OrganizationalUnitIdentifier string `protobuf:"bytes,2,opt,name=organizational_unit_identifier,json=organizationalUnitIdentifier,proto3" json:"organizational_unit_identifier,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *FabricOUIdentifier) Reset() { *m = FabricOUIdentifier{} }
+func (m *FabricOUIdentifier) String() string { return proto.CompactTextString(m) }
+func (*FabricOUIdentifier) ProtoMessage() {}
+func (*FabricOUIdentifier) Descriptor() ([]byte, []int) {
+ return fileDescriptor_9c34771f529d9d1a, []int{7}
+}
+
+func (m *FabricOUIdentifier) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_FabricOUIdentifier.Unmarshal(m, b)
+}
+func (m *FabricOUIdentifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_FabricOUIdentifier.Marshal(b, m, deterministic)
+}
+func (m *FabricOUIdentifier) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FabricOUIdentifier.Merge(m, src)
+}
+func (m *FabricOUIdentifier) XXX_Size() int {
+ return xxx_messageInfo_FabricOUIdentifier.Size(m)
+}
+func (m *FabricOUIdentifier) XXX_DiscardUnknown() {
+ xxx_messageInfo_FabricOUIdentifier.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_FabricOUIdentifier proto.InternalMessageInfo
+
+func (m *FabricOUIdentifier) GetCertificate() []byte {
+ if m != nil {
+ return m.Certificate
+ }
+ return nil
+}
+
+func (m *FabricOUIdentifier) GetOrganizationalUnitIdentifier() string {
+ if m != nil {
+ return m.OrganizationalUnitIdentifier
+ }
+ return ""
+}
+
+// FabricNodeOUs contains configuration to tell apart clients from peers from orderers
+// based on OUs. If NodeOUs recognition is enabled then an msp identity
+// that does not contain any of the specified OU will be considered invalid.
+type FabricNodeOUs struct {
+ // If true then an msp identity that does not contain any of the specified OU will be considered invalid.
+ Enable bool `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"`
+ // OU Identifier of the clients
+ ClientOuIdentifier *FabricOUIdentifier `protobuf:"bytes,2,opt,name=client_ou_identifier,json=clientOuIdentifier,proto3" json:"client_ou_identifier,omitempty"`
+ // OU Identifier of the peers
+ PeerOuIdentifier *FabricOUIdentifier `protobuf:"bytes,3,opt,name=peer_ou_identifier,json=peerOuIdentifier,proto3" json:"peer_ou_identifier,omitempty"`
+ // OU Identifier of the admins
+ AdminOuIdentifier *FabricOUIdentifier `protobuf:"bytes,4,opt,name=admin_ou_identifier,json=adminOuIdentifier,proto3" json:"admin_ou_identifier,omitempty"`
+ // OU Identifier of the orderers
+ OrdererOuIdentifier *FabricOUIdentifier `protobuf:"bytes,5,opt,name=orderer_ou_identifier,json=ordererOuIdentifier,proto3" json:"orderer_ou_identifier,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *FabricNodeOUs) Reset() { *m = FabricNodeOUs{} }
+func (m *FabricNodeOUs) String() string { return proto.CompactTextString(m) }
+func (*FabricNodeOUs) ProtoMessage() {}
+func (*FabricNodeOUs) Descriptor() ([]byte, []int) {
+ return fileDescriptor_9c34771f529d9d1a, []int{8}
+}
+
+func (m *FabricNodeOUs) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_FabricNodeOUs.Unmarshal(m, b)
+}
+func (m *FabricNodeOUs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_FabricNodeOUs.Marshal(b, m, deterministic)
+}
+func (m *FabricNodeOUs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FabricNodeOUs.Merge(m, src)
+}
+func (m *FabricNodeOUs) XXX_Size() int {
+ return xxx_messageInfo_FabricNodeOUs.Size(m)
+}
+func (m *FabricNodeOUs) XXX_DiscardUnknown() {
+ xxx_messageInfo_FabricNodeOUs.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_FabricNodeOUs proto.InternalMessageInfo
+
+func (m *FabricNodeOUs) GetEnable() bool {
+ if m != nil {
+ return m.Enable
+ }
+ return false
+}
+
+func (m *FabricNodeOUs) GetClientOuIdentifier() *FabricOUIdentifier {
+ if m != nil {
+ return m.ClientOuIdentifier
+ }
+ return nil
+}
+
+func (m *FabricNodeOUs) GetPeerOuIdentifier() *FabricOUIdentifier {
+ if m != nil {
+ return m.PeerOuIdentifier
+ }
+ return nil
+}
+
+func (m *FabricNodeOUs) GetAdminOuIdentifier() *FabricOUIdentifier {
+ if m != nil {
+ return m.AdminOuIdentifier
+ }
+ return nil
+}
+
+func (m *FabricNodeOUs) GetOrdererOuIdentifier() *FabricOUIdentifier {
+ if m != nil {
+ return m.OrdererOuIdentifier
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*MSPConfig)(nil), "msp.MSPConfig")
+ proto.RegisterType((*FabricMSPConfig)(nil), "msp.FabricMSPConfig")
+ proto.RegisterType((*FabricCryptoConfig)(nil), "msp.FabricCryptoConfig")
+ proto.RegisterType((*IdemixMSPConfig)(nil), "msp.IdemixMSPConfig")
+ proto.RegisterType((*IdemixMSPSignerConfig)(nil), "msp.IdemixMSPSignerConfig")
+ proto.RegisterType((*SigningIdentityInfo)(nil), "msp.SigningIdentityInfo")
+ proto.RegisterType((*KeyInfo)(nil), "msp.KeyInfo")
+ proto.RegisterType((*FabricOUIdentifier)(nil), "msp.FabricOUIdentifier")
+ proto.RegisterType((*FabricNodeOUs)(nil), "msp.FabricNodeOUs")
+}
+
+func init() { proto.RegisterFile("msp/msp_config.proto", fileDescriptor_9c34771f529d9d1a) }
+
+var fileDescriptor_9c34771f529d9d1a = []byte{
+ // 883 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xdb, 0x6e, 0x23, 0x45,
+ 0x13, 0x96, 0x8f, 0xbb, 0x2e, 0x8f, 0xed, 0x6c, 0xe7, 0xf0, 0x8f, 0x7e, 0xb1, 0xbb, 0x8e, 0x01,
+ 0x61, 0x09, 0xc5, 0x91, 0xb2, 0x48, 0x48, 0x88, 0xab, 0x0d, 0x2c, 0x0c, 0x4b, 0x48, 0xd4, 0x51,
+ 0x6e, 0xb8, 0x19, 0xb5, 0x67, 0xda, 0xe3, 0x96, 0x67, 0xba, 0x47, 0xdd, 0x3d, 0x2b, 0x8c, 0xb8,
+ 0xe6, 0x05, 0x78, 0x07, 0xae, 0x79, 0x13, 0x5e, 0x09, 0xf5, 0x21, 0xf6, 0x38, 0x89, 0x0c, 0x77,
+ 0x5d, 0x55, 0x5f, 0x7d, 0x53, 0xfd, 0x55, 0x55, 0x0f, 0x1c, 0x15, 0xaa, 0x3c, 0x2f, 0x54, 0x19,
+ 0x27, 0x82, 0x2f, 0x58, 0x36, 0x2b, 0xa5, 0xd0, 0x02, 0xb5, 0x0a, 0x55, 0x4e, 0xbe, 0x84, 0xde,
+ 0xd5, 0xed, 0xcd, 0xa5, 0xf5, 0x23, 0x04, 0x6d, 0xbd, 0x2e, 0x69, 0xd8, 0x18, 0x37, 0xa6, 0x1d,
+ 0x6c, 0xcf, 0xe8, 0x04, 0xba, 0x2e, 0x2b, 0x6c, 0x8e, 0x1b, 0xd3, 0x00, 0x7b, 0x6b, 0xf2, 0x57,
+ 0x1b, 0x46, 0xef, 0xc8, 0x5c, 0xb2, 0x64, 0x27, 0x9f, 0x93, 0xc2, 0xe5, 0xf7, 0xb0, 0x3d, 0xa3,
+ 0x97, 0x00, 0x52, 0x08, 0x1d, 0x27, 0x54, 0x6a, 0x15, 0x36, 0xc7, 0xad, 0x69, 0x80, 0x7b, 0xc6,
+ 0x73, 0x69, 0x1c, 0xe8, 0x0c, 0x10, 0xe3, 0x9a, 0xca, 0x82, 0xa6, 0x8c, 0x68, 0xea, 0x61, 0x2d,
+ 0x0b, 0x7b, 0x51, 0x8f, 0x38, 0xf8, 0x09, 0x74, 0x49, 0x5a, 0x30, 0xae, 0xc2, 0xb6, 0x85, 0x78,
+ 0x0b, 0x7d, 0x06, 0x23, 0x49, 0x3f, 0x88, 0x84, 0x68, 0x26, 0x78, 0x9c, 0x33, 0xa5, 0xc3, 0x8e,
+ 0x05, 0x0c, 0xb7, 0xee, 0x1f, 0x99, 0xd2, 0xe8, 0x12, 0x0e, 0x14, 0xcb, 0x38, 0xe3, 0x59, 0xcc,
+ 0x52, 0xca, 0x35, 0xd3, 0xeb, 0xb0, 0x3b, 0x6e, 0x4c, 0xfb, 0x17, 0xe1, 0xac, 0x50, 0xe5, 0xec,
+ 0xd6, 0x05, 0x23, 0x1f, 0x8b, 0xf8, 0x42, 0xe0, 0x91, 0xda, 0x75, 0xa2, 0x18, 0x5e, 0x0b, 0x99,
+ 0x11, 0xce, 0x7e, 0xb5, 0xc4, 0x24, 0x8f, 0x2b, 0xce, 0xb4, 0x27, 0x5c, 0x30, 0x2a, 0x55, 0xf8,
+ 0x6c, 0xdc, 0x9a, 0xf6, 0x2f, 0xfe, 0x67, 0x39, 0x9d, 0x4c, 0xd7, 0x77, 0xd1, 0x26, 0x8e, 0x5f,
+ 0xee, 0xe6, 0xdf, 0x71, 0xa6, 0xb7, 0x51, 0x85, 0xbe, 0x86, 0x41, 0x22, 0xd7, 0xa5, 0x16, 0xbe,
+ 0x63, 0xe1, 0x73, 0x5b, 0x62, 0x9d, 0xee, 0xd2, 0xc6, 0x9d, 0xf0, 0x38, 0x48, 0x6a, 0x16, 0xfa,
+ 0x04, 0x86, 0x3a, 0x57, 0x71, 0x4d, 0xf6, 0x9e, 0xd5, 0x22, 0xd0, 0xb9, 0xc2, 0x1b, 0xe5, 0xbf,
+ 0x80, 0x13, 0x83, 0x7a, 0x42, 0x7d, 0xb0, 0xe8, 0x23, 0x9d, 0xab, 0xe8, 0x51, 0x03, 0xbe, 0x82,
+ 0xd1, 0xc2, 0x7e, 0x3f, 0xe6, 0x22, 0xa5, 0xb1, 0xa8, 0x54, 0xd8, 0xb7, 0xb5, 0xa1, 0x5a, 0x6d,
+ 0x3f, 0x89, 0x94, 0x5e, 0xdf, 0x29, 0x3c, 0x58, 0x6c, 0xcd, 0x4a, 0x4d, 0xfe, 0x68, 0x00, 0x7a,
+ 0x5c, 0x3c, 0xba, 0x80, 0x63, 0x23, 0x30, 0xd1, 0x95, 0xa4, 0xf1, 0x92, 0xa8, 0x65, 0xbc, 0x20,
+ 0x05, 0xcb, 0xd7, 0x7e, 0x8c, 0x0e, 0x37, 0xc1, 0xef, 0x89, 0x5a, 0xbe, 0xb3, 0x21, 0x14, 0xc1,
+ 0xe9, 0x7d, 0xfb, 0x6a, 0xb2, 0xfb, 0xec, 0x8a, 0x27, 0x46, 0x56, 0x3b, 0xb0, 0x3d, 0xfc, 0xea,
+ 0x1e, 0xb8, 0x15, 0xd8, 0x12, 0x79, 0xd4, 0xe4, 0xcf, 0x06, 0x8c, 0xa2, 0x94, 0x16, 0xec, 0x97,
+ 0xfd, 0x83, 0x7c, 0x00, 0x2d, 0x56, 0xae, 0xfc, 0x16, 0x98, 0x23, 0xba, 0x80, 0xae, 0xa9, 0x8d,
+ 0xca, 0xb0, 0x65, 0x25, 0xf8, 0xbf, 0x95, 0x60, 0xc3, 0x75, 0x6b, 0x63, 0xbe, 0x43, 0x1e, 0x89,
+ 0x3e, 0x86, 0x41, 0x6d, 0x50, 0xcb, 0x55, 0xd8, 0xb6, 0x7c, 0xc1, 0xd6, 0x79, 0xb3, 0x42, 0x47,
+ 0xd0, 0xa1, 0xa5, 0x48, 0x96, 0x61, 0x67, 0xdc, 0x98, 0xb6, 0xb0, 0x33, 0x26, 0xbf, 0x37, 0xe1,
+ 0xf8, 0x49, 0x72, 0x53, 0x6e, 0x22, 0x69, 0x6a, 0xcb, 0x0d, 0xb0, 0x3d, 0xa3, 0x21, 0x34, 0xd5,
+ 0x7d, 0xb5, 0x4d, 0xb5, 0x42, 0xdf, 0xc0, 0xab, 0xfd, 0x33, 0x6b, 0x2f, 0xd1, 0xc3, 0x1f, 0xed,
+ 0x9b, 0x4c, 0xf3, 0x25, 0x29, 0x72, 0x6a, 0xab, 0xee, 0x60, 0x7b, 0x36, 0x57, 0xa2, 0x5c, 0x8a,
+ 0x3c, 0x2f, 0x28, 0x37, 0x84, 0xb6, 0xea, 0x1e, 0x0e, 0xb6, 0xce, 0x28, 0x45, 0x3f, 0xc0, 0xa9,
+ 0x29, 0xcb, 0x10, 0x91, 0x3c, 0xae, 0x49, 0xc0, 0xf8, 0x42, 0xc8, 0xc2, 0x9e, 0xed, 0x22, 0x06,
+ 0xf8, 0xf5, 0x16, 0x88, 0x37, 0xb8, 0x68, 0x0b, 0x9b, 0x08, 0x38, 0x7c, 0x62, 0x4d, 0x4d, 0x1d,
+ 0x65, 0x35, 0xcf, 0x59, 0x12, 0xfb, 0xae, 0x38, 0x39, 0x02, 0xe7, 0x74, 0x82, 0xa1, 0x37, 0x30,
+ 0x2c, 0x25, 0xfb, 0x60, 0x86, 0xdd, 0xa3, 0x9a, 0xb6, 0x77, 0x81, 0xed, 0xdd, 0x7b, 0xea, 0x36,
+ 0x7e, 0xe0, 0x31, 0x2e, 0x69, 0x72, 0x0b, 0xcf, 0x7c, 0x04, 0x7d, 0x0a, 0xc3, 0x15, 0xad, 0xcf,
+ 0x9c, 0x9f, 0x91, 0xc1, 0x8a, 0xd6, 0x06, 0x0c, 0x9d, 0x42, 0x60, 0x60, 0x05, 0xd1, 0x54, 0x32,
+ 0x92, 0xfb, 0x3e, 0xf4, 0x57, 0x74, 0x7d, 0xe5, 0x5d, 0x93, 0xdf, 0xee, 0x97, 0xa1, 0xfe, 0x30,
+ 0xa0, 0x31, 0xf4, 0xcd, 0x12, 0xb2, 0x05, 0x4b, 0x88, 0xa6, 0xfe, 0x0a, 0x75, 0xd7, 0x7f, 0x68,
+ 0x64, 0xf3, 0xdf, 0x1b, 0x39, 0xf9, 0xbb, 0x09, 0x83, 0x9d, 0x65, 0x35, 0x4f, 0x2b, 0xe5, 0x64,
+ 0x9e, 0xbb, 0x8f, 0x3e, 0xc7, 0xde, 0x42, 0x11, 0x1c, 0x25, 0x39, 0x33, 0xad, 0x15, 0xd5, 0xc3,
+ 0xaf, 0xec, 0x79, 0xe1, 0x90, 0x4b, 0xba, 0xae, 0x6a, 0x97, 0xfb, 0x16, 0x50, 0x49, 0xa9, 0x7c,
+ 0x40, 0xd4, 0xda, 0x4f, 0x74, 0x60, 0x52, 0x76, 0x68, 0xbe, 0x83, 0x43, 0xfb, 0xec, 0x3f, 0xe0,
+ 0x69, 0xef, 0xe7, 0x79, 0x61, 0x73, 0x76, 0x88, 0xde, 0xc3, 0xb1, 0x90, 0x29, 0x95, 0x8f, 0x4a,
+ 0xea, 0xec, 0xa7, 0x3a, 0xf4, 0x59, 0x75, 0xb2, 0xb7, 0x73, 0x38, 0x15, 0x32, 0x9b, 0x2d, 0xd7,
+ 0x25, 0x95, 0x39, 0x4d, 0x33, 0x2a, 0x67, 0xee, 0xf9, 0x73, 0xbf, 0x5b, 0x65, 0xc8, 0xde, 0x1e,
+ 0x5c, 0xa9, 0xd2, 0x2d, 0xed, 0x0d, 0x49, 0x56, 0x24, 0xa3, 0x3f, 0x7f, 0x9e, 0x31, 0xbd, 0xac,
+ 0xe6, 0xb3, 0x44, 0x14, 0xe7, 0xb5, 0xdc, 0x73, 0x97, 0x7b, 0xe6, 0x72, 0xcf, 0x32, 0x61, 0xfe,
+ 0xdf, 0xf3, 0xae, 0x35, 0xdf, 0xfc, 0x13, 0x00, 0x00, 0xff, 0xff, 0x42, 0x15, 0x49, 0x47, 0xd1,
+ 0x07, 0x00, 0x00,
+}
diff --git a/msp/msp_principal.pb.go b/msp/msp_principal.pb.go
new file mode 100644
index 0000000..028c1a6
--- /dev/null
+++ b/msp/msp_principal.pb.go
@@ -0,0 +1,451 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: msp/msp_principal.proto
+
+package msp
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type MSPPrincipal_Classification int32
+
+const (
+ MSPPrincipal_ROLE MSPPrincipal_Classification = 0
+ // one of a member of MSP network, and the one of an
+ // administrator of an MSP network
+ MSPPrincipal_ORGANIZATION_UNIT MSPPrincipal_Classification = 1
+ // groupping of entities, per MSP affiliation
+ // E.g., this can well be represented by an MSP's
+ // Organization unit
+ MSPPrincipal_IDENTITY MSPPrincipal_Classification = 2
+ // identity
+ MSPPrincipal_ANONYMITY MSPPrincipal_Classification = 3
+ // an identity to be anonymous or nominal.
+ MSPPrincipal_COMBINED MSPPrincipal_Classification = 4
+)
+
+var MSPPrincipal_Classification_name = map[int32]string{
+ 0: "ROLE",
+ 1: "ORGANIZATION_UNIT",
+ 2: "IDENTITY",
+ 3: "ANONYMITY",
+ 4: "COMBINED",
+}
+
+var MSPPrincipal_Classification_value = map[string]int32{
+ "ROLE": 0,
+ "ORGANIZATION_UNIT": 1,
+ "IDENTITY": 2,
+ "ANONYMITY": 3,
+ "COMBINED": 4,
+}
+
+func (x MSPPrincipal_Classification) String() string {
+ return proto.EnumName(MSPPrincipal_Classification_name, int32(x))
+}
+
+func (MSPPrincipal_Classification) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_82e08b7ead29bd48, []int{0, 0}
+}
+
+type MSPRole_MSPRoleType int32
+
+const (
+ MSPRole_MEMBER MSPRole_MSPRoleType = 0
+ MSPRole_ADMIN MSPRole_MSPRoleType = 1
+ MSPRole_CLIENT MSPRole_MSPRoleType = 2
+ MSPRole_PEER MSPRole_MSPRoleType = 3
+ MSPRole_ORDERER MSPRole_MSPRoleType = 4
+)
+
+var MSPRole_MSPRoleType_name = map[int32]string{
+ 0: "MEMBER",
+ 1: "ADMIN",
+ 2: "CLIENT",
+ 3: "PEER",
+ 4: "ORDERER",
+}
+
+var MSPRole_MSPRoleType_value = map[string]int32{
+ "MEMBER": 0,
+ "ADMIN": 1,
+ "CLIENT": 2,
+ "PEER": 3,
+ "ORDERER": 4,
+}
+
+func (x MSPRole_MSPRoleType) String() string {
+ return proto.EnumName(MSPRole_MSPRoleType_name, int32(x))
+}
+
+func (MSPRole_MSPRoleType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_82e08b7ead29bd48, []int{2, 0}
+}
+
+type MSPIdentityAnonymity_MSPIdentityAnonymityType int32
+
+const (
+ MSPIdentityAnonymity_NOMINAL MSPIdentityAnonymity_MSPIdentityAnonymityType = 0
+ MSPIdentityAnonymity_ANONYMOUS MSPIdentityAnonymity_MSPIdentityAnonymityType = 1
+)
+
+var MSPIdentityAnonymity_MSPIdentityAnonymityType_name = map[int32]string{
+ 0: "NOMINAL",
+ 1: "ANONYMOUS",
+}
+
+var MSPIdentityAnonymity_MSPIdentityAnonymityType_value = map[string]int32{
+ "NOMINAL": 0,
+ "ANONYMOUS": 1,
+}
+
+func (x MSPIdentityAnonymity_MSPIdentityAnonymityType) String() string {
+ return proto.EnumName(MSPIdentityAnonymity_MSPIdentityAnonymityType_name, int32(x))
+}
+
+func (MSPIdentityAnonymity_MSPIdentityAnonymityType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_82e08b7ead29bd48, []int{3, 0}
+}
+
+// MSPPrincipal aims to represent an MSP-centric set of identities.
+// In particular, this structure allows for definition of
+// - a group of identities that are member of the same MSP
+// - a group of identities that are member of the same organization unit
+// in the same MSP
+// - a group of identities that are administering a specific MSP
+// - a specific identity
+// Expressing these groups is done given two fields of the fields below
+// - Classification, that defines the type of classification of identities
+// in an MSP this principal would be defined on; Classification can take
+// three values:
+// (i) ByMSPRole: that represents a classification of identities within
+// MSP based on one of the two pre-defined MSP rules, "member" and "admin"
+// (ii) ByOrganizationUnit: that represents a classification of identities
+// within MSP based on the organization unit an identity belongs to
+// (iii)ByIdentity that denotes that MSPPrincipal is mapped to a single
+// identity/certificate; this would mean that the Principal bytes
+// message
+type MSPPrincipal struct {
+ // Classification describes the way that one should process
+ // Principal. An Classification value of "ByOrganizationUnit" reflects
+ // that "Principal" contains the name of an organization this MSP
+ // handles. A Classification value "ByIdentity" means that
+ // "Principal" contains a specific identity. Default value
+ // denotes that Principal contains one of the groups by
+ // default supported by all MSPs ("admin" or "member").
+ PrincipalClassification MSPPrincipal_Classification `protobuf:"varint,1,opt,name=principal_classification,json=principalClassification,proto3,enum=common.MSPPrincipal_Classification" json:"principal_classification,omitempty"`
+ // Principal completes the policy principal definition. For the default
+ // principal types, Principal can be either "Admin" or "Member".
+ // For the ByOrganizationUnit/ByIdentity values of Classification,
+ // PolicyPrincipal acquires its value from an organization unit or
+ // identity, respectively.
+ // For the Combined Classification type, the Principal is a marshalled
+ // CombinedPrincipal.
+ Principal []byte `protobuf:"bytes,2,opt,name=principal,proto3" json:"principal,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MSPPrincipal) Reset() { *m = MSPPrincipal{} }
+func (m *MSPPrincipal) String() string { return proto.CompactTextString(m) }
+func (*MSPPrincipal) ProtoMessage() {}
+func (*MSPPrincipal) Descriptor() ([]byte, []int) {
+ return fileDescriptor_82e08b7ead29bd48, []int{0}
+}
+
+func (m *MSPPrincipal) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MSPPrincipal.Unmarshal(m, b)
+}
+func (m *MSPPrincipal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MSPPrincipal.Marshal(b, m, deterministic)
+}
+func (m *MSPPrincipal) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MSPPrincipal.Merge(m, src)
+}
+func (m *MSPPrincipal) XXX_Size() int {
+ return xxx_messageInfo_MSPPrincipal.Size(m)
+}
+func (m *MSPPrincipal) XXX_DiscardUnknown() {
+ xxx_messageInfo_MSPPrincipal.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MSPPrincipal proto.InternalMessageInfo
+
+func (m *MSPPrincipal) GetPrincipalClassification() MSPPrincipal_Classification {
+ if m != nil {
+ return m.PrincipalClassification
+ }
+ return MSPPrincipal_ROLE
+}
+
+func (m *MSPPrincipal) GetPrincipal() []byte {
+ if m != nil {
+ return m.Principal
+ }
+ return nil
+}
+
+// OrganizationUnit governs the organization of the Principal
+// field of a policy principal when a specific organization unity members
+// are to be defined within a policy principal.
+type OrganizationUnit struct {
+ // MSPIdentifier represents the identifier of the MSP this organization unit
+ // refers to
+ MspIdentifier string `protobuf:"bytes,1,opt,name=msp_identifier,json=mspIdentifier,proto3" json:"msp_identifier,omitempty"`
+ // OrganizationUnitIdentifier defines the organizational unit under the
+ // MSP identified with MSPIdentifier
+ OrganizationalUnitIdentifier string `protobuf:"bytes,2,opt,name=organizational_unit_identifier,json=organizationalUnitIdentifier,proto3" json:"organizational_unit_identifier,omitempty"`
+ // CertifiersIdentifier is the hash of certificates chain of trust
+ // related to this organizational unit
+ CertifiersIdentifier []byte `protobuf:"bytes,3,opt,name=certifiers_identifier,json=certifiersIdentifier,proto3" json:"certifiers_identifier,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *OrganizationUnit) Reset() { *m = OrganizationUnit{} }
+func (m *OrganizationUnit) String() string { return proto.CompactTextString(m) }
+func (*OrganizationUnit) ProtoMessage() {}
+func (*OrganizationUnit) Descriptor() ([]byte, []int) {
+ return fileDescriptor_82e08b7ead29bd48, []int{1}
+}
+
+func (m *OrganizationUnit) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_OrganizationUnit.Unmarshal(m, b)
+}
+func (m *OrganizationUnit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_OrganizationUnit.Marshal(b, m, deterministic)
+}
+func (m *OrganizationUnit) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OrganizationUnit.Merge(m, src)
+}
+func (m *OrganizationUnit) XXX_Size() int {
+ return xxx_messageInfo_OrganizationUnit.Size(m)
+}
+func (m *OrganizationUnit) XXX_DiscardUnknown() {
+ xxx_messageInfo_OrganizationUnit.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_OrganizationUnit proto.InternalMessageInfo
+
+func (m *OrganizationUnit) GetMspIdentifier() string {
+ if m != nil {
+ return m.MspIdentifier
+ }
+ return ""
+}
+
+func (m *OrganizationUnit) GetOrganizationalUnitIdentifier() string {
+ if m != nil {
+ return m.OrganizationalUnitIdentifier
+ }
+ return ""
+}
+
+func (m *OrganizationUnit) GetCertifiersIdentifier() []byte {
+ if m != nil {
+ return m.CertifiersIdentifier
+ }
+ return nil
+}
+
+// MSPRole governs the organization of the Principal
+// field of an MSPPrincipal when it aims to define one of the
+// two dedicated roles within an MSP: Admin and Members.
+type MSPRole struct {
+ // MSPIdentifier represents the identifier of the MSP this principal
+ // refers to
+ MspIdentifier string `protobuf:"bytes,1,opt,name=msp_identifier,json=mspIdentifier,proto3" json:"msp_identifier,omitempty"`
+ // MSPRoleType defines which of the available, pre-defined MSP-roles
+ // an identiy should posess inside the MSP with identifier MSPidentifier
+ Role MSPRole_MSPRoleType `protobuf:"varint,2,opt,name=role,proto3,enum=common.MSPRole_MSPRoleType" json:"role,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MSPRole) Reset() { *m = MSPRole{} }
+func (m *MSPRole) String() string { return proto.CompactTextString(m) }
+func (*MSPRole) ProtoMessage() {}
+func (*MSPRole) Descriptor() ([]byte, []int) {
+ return fileDescriptor_82e08b7ead29bd48, []int{2}
+}
+
+func (m *MSPRole) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MSPRole.Unmarshal(m, b)
+}
+func (m *MSPRole) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MSPRole.Marshal(b, m, deterministic)
+}
+func (m *MSPRole) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MSPRole.Merge(m, src)
+}
+func (m *MSPRole) XXX_Size() int {
+ return xxx_messageInfo_MSPRole.Size(m)
+}
+func (m *MSPRole) XXX_DiscardUnknown() {
+ xxx_messageInfo_MSPRole.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MSPRole proto.InternalMessageInfo
+
+func (m *MSPRole) GetMspIdentifier() string {
+ if m != nil {
+ return m.MspIdentifier
+ }
+ return ""
+}
+
+func (m *MSPRole) GetRole() MSPRole_MSPRoleType {
+ if m != nil {
+ return m.Role
+ }
+ return MSPRole_MEMBER
+}
+
+// MSPIdentityAnonymity can be used to enforce an identity to be anonymous or nominal.
+type MSPIdentityAnonymity struct {
+ AnonymityType MSPIdentityAnonymity_MSPIdentityAnonymityType `protobuf:"varint,1,opt,name=anonymity_type,json=anonymityType,proto3,enum=common.MSPIdentityAnonymity_MSPIdentityAnonymityType" json:"anonymity_type,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MSPIdentityAnonymity) Reset() { *m = MSPIdentityAnonymity{} }
+func (m *MSPIdentityAnonymity) String() string { return proto.CompactTextString(m) }
+func (*MSPIdentityAnonymity) ProtoMessage() {}
+func (*MSPIdentityAnonymity) Descriptor() ([]byte, []int) {
+ return fileDescriptor_82e08b7ead29bd48, []int{3}
+}
+
+func (m *MSPIdentityAnonymity) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MSPIdentityAnonymity.Unmarshal(m, b)
+}
+func (m *MSPIdentityAnonymity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MSPIdentityAnonymity.Marshal(b, m, deterministic)
+}
+func (m *MSPIdentityAnonymity) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MSPIdentityAnonymity.Merge(m, src)
+}
+func (m *MSPIdentityAnonymity) XXX_Size() int {
+ return xxx_messageInfo_MSPIdentityAnonymity.Size(m)
+}
+func (m *MSPIdentityAnonymity) XXX_DiscardUnknown() {
+ xxx_messageInfo_MSPIdentityAnonymity.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MSPIdentityAnonymity proto.InternalMessageInfo
+
+func (m *MSPIdentityAnonymity) GetAnonymityType() MSPIdentityAnonymity_MSPIdentityAnonymityType {
+ if m != nil {
+ return m.AnonymityType
+ }
+ return MSPIdentityAnonymity_NOMINAL
+}
+
+// CombinedPrincipal governs the organization of the Principal
+// field of a policy principal when principal_classification has
+// indicated that a combined form of principals is required
+type CombinedPrincipal struct {
+ // Principals refer to combined principals
+ Principals []*MSPPrincipal `protobuf:"bytes,1,rep,name=principals,proto3" json:"principals,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CombinedPrincipal) Reset() { *m = CombinedPrincipal{} }
+func (m *CombinedPrincipal) String() string { return proto.CompactTextString(m) }
+func (*CombinedPrincipal) ProtoMessage() {}
+func (*CombinedPrincipal) Descriptor() ([]byte, []int) {
+ return fileDescriptor_82e08b7ead29bd48, []int{4}
+}
+
+func (m *CombinedPrincipal) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CombinedPrincipal.Unmarshal(m, b)
+}
+func (m *CombinedPrincipal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CombinedPrincipal.Marshal(b, m, deterministic)
+}
+func (m *CombinedPrincipal) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CombinedPrincipal.Merge(m, src)
+}
+func (m *CombinedPrincipal) XXX_Size() int {
+ return xxx_messageInfo_CombinedPrincipal.Size(m)
+}
+func (m *CombinedPrincipal) XXX_DiscardUnknown() {
+ xxx_messageInfo_CombinedPrincipal.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CombinedPrincipal proto.InternalMessageInfo
+
+func (m *CombinedPrincipal) GetPrincipals() []*MSPPrincipal {
+ if m != nil {
+ return m.Principals
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterEnum("common.MSPPrincipal_Classification", MSPPrincipal_Classification_name, MSPPrincipal_Classification_value)
+ proto.RegisterEnum("common.MSPRole_MSPRoleType", MSPRole_MSPRoleType_name, MSPRole_MSPRoleType_value)
+ proto.RegisterEnum("common.MSPIdentityAnonymity_MSPIdentityAnonymityType", MSPIdentityAnonymity_MSPIdentityAnonymityType_name, MSPIdentityAnonymity_MSPIdentityAnonymityType_value)
+ proto.RegisterType((*MSPPrincipal)(nil), "common.MSPPrincipal")
+ proto.RegisterType((*OrganizationUnit)(nil), "common.OrganizationUnit")
+ proto.RegisterType((*MSPRole)(nil), "common.MSPRole")
+ proto.RegisterType((*MSPIdentityAnonymity)(nil), "common.MSPIdentityAnonymity")
+ proto.RegisterType((*CombinedPrincipal)(nil), "common.CombinedPrincipal")
+}
+
+func init() { proto.RegisterFile("msp/msp_principal.proto", fileDescriptor_82e08b7ead29bd48) }
+
+var fileDescriptor_82e08b7ead29bd48 = []byte{
+ // 528 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x5f, 0x6b, 0xdb, 0x3e,
+ 0x14, 0xad, 0x93, 0xfc, 0xda, 0xe6, 0xe6, 0x0f, 0xaa, 0x48, 0x69, 0xe0, 0x57, 0x46, 0xf0, 0x36,
+ 0x08, 0x8c, 0x3a, 0x90, 0x6e, 0x7b, 0x77, 0x12, 0x53, 0x0c, 0xb1, 0x1c, 0x14, 0xe7, 0xa1, 0xa5,
+ 0x2c, 0x38, 0x8e, 0x92, 0x0a, 0x6c, 0xcb, 0xd8, 0xee, 0x83, 0xf7, 0x91, 0xc6, 0x1e, 0xf7, 0xa9,
+ 0xf6, 0x29, 0x86, 0xed, 0x26, 0x51, 0xb6, 0x0e, 0xf6, 0x64, 0xce, 0xbd, 0xe7, 0x1c, 0x1f, 0x49,
+ 0xf7, 0xc2, 0x55, 0x90, 0x44, 0x83, 0x20, 0x89, 0x96, 0x51, 0xcc, 0x43, 0x8f, 0x47, 0xae, 0xaf,
+ 0x45, 0xb1, 0x48, 0x05, 0x3e, 0xf5, 0x44, 0x10, 0x88, 0x50, 0xfd, 0xa9, 0x40, 0xd3, 0x9a, 0xcf,
+ 0x66, 0xbb, 0x36, 0xfe, 0x02, 0xdd, 0x3d, 0x77, 0xe9, 0xf9, 0x6e, 0x92, 0xf0, 0x0d, 0xf7, 0xdc,
+ 0x94, 0x8b, 0xb0, 0xab, 0xf4, 0x94, 0x7e, 0x7b, 0xf8, 0x56, 0x2b, 0xb5, 0x9a, 0xac, 0xd3, 0xc6,
+ 0x47, 0x54, 0x7a, 0xb5, 0x37, 0x39, 0x6e, 0xe0, 0x6b, 0xa8, 0xef, 0x5b, 0xdd, 0x4a, 0x4f, 0xe9,
+ 0x37, 0xe9, 0xa1, 0xa0, 0x3e, 0x42, 0xfb, 0x37, 0xfe, 0x39, 0xd4, 0xa8, 0x3d, 0x35, 0xd0, 0x09,
+ 0xbe, 0x84, 0x0b, 0x9b, 0xde, 0xe9, 0xc4, 0x7c, 0xd0, 0x1d, 0xd3, 0x26, 0xcb, 0x05, 0x31, 0x1d,
+ 0xa4, 0xe0, 0x26, 0x9c, 0x9b, 0x13, 0x83, 0x38, 0xa6, 0x73, 0x8f, 0x2a, 0xb8, 0x05, 0x75, 0x9d,
+ 0xd8, 0xe4, 0xde, 0xca, 0x61, 0x35, 0x6f, 0x8e, 0x6d, 0x6b, 0x64, 0x12, 0x63, 0x82, 0x6a, 0xea,
+ 0x0f, 0x05, 0x90, 0x1d, 0x6f, 0xdd, 0x90, 0x7f, 0x2d, 0xcc, 0x17, 0x21, 0x4f, 0xf1, 0x7b, 0x68,
+ 0xe7, 0x17, 0xc4, 0xd7, 0x2c, 0x4c, 0xf9, 0x86, 0xb3, 0xb8, 0x38, 0x66, 0x9d, 0xb6, 0x82, 0x24,
+ 0x32, 0xf7, 0x45, 0x3c, 0x81, 0x37, 0x42, 0x92, 0xba, 0xfe, 0xf2, 0x39, 0xe4, 0xa9, 0x2c, 0xab,
+ 0x14, 0xb2, 0xeb, 0x63, 0x56, 0xfe, 0x0b, 0xc9, 0xe5, 0x16, 0x2e, 0x3d, 0x16, 0x97, 0x20, 0x91,
+ 0xc5, 0xd5, 0xe2, 0x26, 0x3a, 0x87, 0xe6, 0x41, 0xa4, 0x7e, 0x53, 0xe0, 0xcc, 0x9a, 0xcf, 0xa8,
+ 0xf0, 0xd9, 0xbf, 0xa6, 0x1d, 0x40, 0x2d, 0x16, 0x3e, 0x2b, 0x32, 0xb5, 0x87, 0xff, 0x4b, 0x2f,
+ 0x96, 0xbb, 0xec, 0xbe, 0x4e, 0x16, 0x31, 0x5a, 0x10, 0xd5, 0x3b, 0x68, 0x48, 0x45, 0x0c, 0x70,
+ 0x6a, 0x19, 0xd6, 0xc8, 0xa0, 0xe8, 0x04, 0xd7, 0xe1, 0x3f, 0x7d, 0x62, 0x99, 0x04, 0x29, 0x79,
+ 0x79, 0x3c, 0x35, 0x0d, 0xe2, 0xa0, 0x4a, 0xfe, 0x30, 0x33, 0xc3, 0xa0, 0xa8, 0x8a, 0x1b, 0x70,
+ 0x66, 0xd3, 0x89, 0x41, 0x0d, 0x8a, 0x6a, 0xea, 0x77, 0x05, 0x3a, 0xd6, 0x7c, 0x56, 0x66, 0x49,
+ 0x33, 0x3d, 0x14, 0x61, 0x16, 0xf0, 0x34, 0xc3, 0x8f, 0xd0, 0x76, 0x77, 0x60, 0x99, 0x66, 0x11,
+ 0x7b, 0x19, 0xa7, 0x4f, 0x52, 0xb8, 0x3f, 0x54, 0xaf, 0x16, 0x8b, 0xd8, 0x2d, 0x57, 0x86, 0xea,
+ 0x67, 0xe8, 0xfe, 0x8d, 0x9a, 0xe7, 0x23, 0xb6, 0x65, 0x12, 0x7d, 0x8a, 0x4e, 0x0e, 0x03, 0x62,
+ 0x2f, 0xe6, 0x48, 0x51, 0x4d, 0xb8, 0x18, 0x8b, 0x60, 0xc5, 0x43, 0xb6, 0x3e, 0xec, 0xc0, 0x47,
+ 0x80, 0xfd, 0x48, 0x26, 0x5d, 0xa5, 0x57, 0xed, 0x37, 0x86, 0x9d, 0xd7, 0xa6, 0x9e, 0x4a, 0xbc,
+ 0xd1, 0x1c, 0xde, 0x89, 0x78, 0xab, 0x3d, 0x65, 0x11, 0x8b, 0x7d, 0xb6, 0xde, 0xb2, 0x58, 0xdb,
+ 0xb8, 0xab, 0x98, 0x7b, 0xe5, 0xca, 0x25, 0x2f, 0x06, 0x0f, 0x1f, 0xb6, 0x3c, 0x7d, 0x7a, 0x5e,
+ 0xe5, 0x70, 0x20, 0x91, 0x07, 0x25, 0xf9, 0xa6, 0x24, 0xdf, 0x6c, 0x45, 0xbe, 0xb7, 0xab, 0xd3,
+ 0x02, 0xde, 0xfe, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x2b, 0x94, 0x15, 0xa2, 0xc9, 0x03, 0x00, 0x00,
+}
diff --git a/orderer/ab.pb.go b/orderer/ab.pb.go
new file mode 100644
index 0000000..94f22fb
--- /dev/null
+++ b/orderer/ab.pb.go
@@ -0,0 +1,718 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: orderer/ab.proto
+
+package orderer
+
+import (
+ context "context"
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ common "github.com/hyperledger/fabric-protos-go/common"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// If BLOCK_UNTIL_READY is specified, the reply will block until the requested blocks are available,
+// if FAIL_IF_NOT_READY is specified, the reply will return an error indicating that the block is not
+// found. To request that all blocks be returned indefinitely as they are created, behavior should be
+// set to BLOCK_UNTIL_READY and the stop should be set to specified with a number of MAX_UINT64
+type SeekInfo_SeekBehavior int32
+
+const (
+ SeekInfo_BLOCK_UNTIL_READY SeekInfo_SeekBehavior = 0
+ SeekInfo_FAIL_IF_NOT_READY SeekInfo_SeekBehavior = 1
+)
+
+var SeekInfo_SeekBehavior_name = map[int32]string{
+ 0: "BLOCK_UNTIL_READY",
+ 1: "FAIL_IF_NOT_READY",
+}
+
+var SeekInfo_SeekBehavior_value = map[string]int32{
+ "BLOCK_UNTIL_READY": 0,
+ "FAIL_IF_NOT_READY": 1,
+}
+
+func (x SeekInfo_SeekBehavior) String() string {
+ return proto.EnumName(SeekInfo_SeekBehavior_name, int32(x))
+}
+
+func (SeekInfo_SeekBehavior) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_79fce58dd8d86d62, []int{5, 0}
+}
+
+// SeekErrorTolerance indicates to the server how block provider errors should be tolerated. By default,
+// if the deliver service detects a problem in the underlying block source (typically, in the orderer,
+// a consenter error), it will begin to reject deliver requests. This is to prevent a client from waiting
+// for blocks from an orderer which is stuck in an errored state. This is almost always the desired behavior
+// and clients should stick with the default STRICT checking behavior. However, in some scenarios, particularly
+// when attempting to recover from a crash or other corruption, it's desirable to force an orderer to respond
+// with blocks on a best effort basis, even if the backing consensus implementation is in an errored state.
+// In this case, set the SeekErrorResponse to BEST_EFFORT to ignore the consenter errors.
+type SeekInfo_SeekErrorResponse int32
+
+const (
+ SeekInfo_STRICT SeekInfo_SeekErrorResponse = 0
+ SeekInfo_BEST_EFFORT SeekInfo_SeekErrorResponse = 1
+)
+
+var SeekInfo_SeekErrorResponse_name = map[int32]string{
+ 0: "STRICT",
+ 1: "BEST_EFFORT",
+}
+
+var SeekInfo_SeekErrorResponse_value = map[string]int32{
+ "STRICT": 0,
+ "BEST_EFFORT": 1,
+}
+
+func (x SeekInfo_SeekErrorResponse) String() string {
+ return proto.EnumName(SeekInfo_SeekErrorResponse_name, int32(x))
+}
+
+func (SeekInfo_SeekErrorResponse) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_79fce58dd8d86d62, []int{5, 1}
+}
+
+type BroadcastResponse struct {
+ // Status code, which may be used to programatically respond to success/failure
+ Status common.Status `protobuf:"varint,1,opt,name=status,proto3,enum=common.Status" json:"status,omitempty"`
+ // Info string which may contain additional information about the status returned
+ Info string `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *BroadcastResponse) Reset() { *m = BroadcastResponse{} }
+func (m *BroadcastResponse) String() string { return proto.CompactTextString(m) }
+func (*BroadcastResponse) ProtoMessage() {}
+func (*BroadcastResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_79fce58dd8d86d62, []int{0}
+}
+
+func (m *BroadcastResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_BroadcastResponse.Unmarshal(m, b)
+}
+func (m *BroadcastResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_BroadcastResponse.Marshal(b, m, deterministic)
+}
+func (m *BroadcastResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BroadcastResponse.Merge(m, src)
+}
+func (m *BroadcastResponse) XXX_Size() int {
+ return xxx_messageInfo_BroadcastResponse.Size(m)
+}
+func (m *BroadcastResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_BroadcastResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_BroadcastResponse proto.InternalMessageInfo
+
+func (m *BroadcastResponse) GetStatus() common.Status {
+ if m != nil {
+ return m.Status
+ }
+ return common.Status_UNKNOWN
+}
+
+func (m *BroadcastResponse) GetInfo() string {
+ if m != nil {
+ return m.Info
+ }
+ return ""
+}
+
+type SeekNewest struct {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SeekNewest) Reset() { *m = SeekNewest{} }
+func (m *SeekNewest) String() string { return proto.CompactTextString(m) }
+func (*SeekNewest) ProtoMessage() {}
+func (*SeekNewest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_79fce58dd8d86d62, []int{1}
+}
+
+func (m *SeekNewest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SeekNewest.Unmarshal(m, b)
+}
+func (m *SeekNewest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SeekNewest.Marshal(b, m, deterministic)
+}
+func (m *SeekNewest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SeekNewest.Merge(m, src)
+}
+func (m *SeekNewest) XXX_Size() int {
+ return xxx_messageInfo_SeekNewest.Size(m)
+}
+func (m *SeekNewest) XXX_DiscardUnknown() {
+ xxx_messageInfo_SeekNewest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SeekNewest proto.InternalMessageInfo
+
+type SeekOldest struct {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SeekOldest) Reset() { *m = SeekOldest{} }
+func (m *SeekOldest) String() string { return proto.CompactTextString(m) }
+func (*SeekOldest) ProtoMessage() {}
+func (*SeekOldest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_79fce58dd8d86d62, []int{2}
+}
+
+func (m *SeekOldest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SeekOldest.Unmarshal(m, b)
+}
+func (m *SeekOldest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SeekOldest.Marshal(b, m, deterministic)
+}
+func (m *SeekOldest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SeekOldest.Merge(m, src)
+}
+func (m *SeekOldest) XXX_Size() int {
+ return xxx_messageInfo_SeekOldest.Size(m)
+}
+func (m *SeekOldest) XXX_DiscardUnknown() {
+ xxx_messageInfo_SeekOldest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SeekOldest proto.InternalMessageInfo
+
+type SeekSpecified struct {
+ Number uint64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SeekSpecified) Reset() { *m = SeekSpecified{} }
+func (m *SeekSpecified) String() string { return proto.CompactTextString(m) }
+func (*SeekSpecified) ProtoMessage() {}
+func (*SeekSpecified) Descriptor() ([]byte, []int) {
+ return fileDescriptor_79fce58dd8d86d62, []int{3}
+}
+
+func (m *SeekSpecified) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SeekSpecified.Unmarshal(m, b)
+}
+func (m *SeekSpecified) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SeekSpecified.Marshal(b, m, deterministic)
+}
+func (m *SeekSpecified) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SeekSpecified.Merge(m, src)
+}
+func (m *SeekSpecified) XXX_Size() int {
+ return xxx_messageInfo_SeekSpecified.Size(m)
+}
+func (m *SeekSpecified) XXX_DiscardUnknown() {
+ xxx_messageInfo_SeekSpecified.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SeekSpecified proto.InternalMessageInfo
+
+func (m *SeekSpecified) GetNumber() uint64 {
+ if m != nil {
+ return m.Number
+ }
+ return 0
+}
+
+type SeekPosition struct {
+ // Types that are valid to be assigned to Type:
+ // *SeekPosition_Newest
+ // *SeekPosition_Oldest
+ // *SeekPosition_Specified
+ Type isSeekPosition_Type `protobuf_oneof:"Type"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SeekPosition) Reset() { *m = SeekPosition{} }
+func (m *SeekPosition) String() string { return proto.CompactTextString(m) }
+func (*SeekPosition) ProtoMessage() {}
+func (*SeekPosition) Descriptor() ([]byte, []int) {
+ return fileDescriptor_79fce58dd8d86d62, []int{4}
+}
+
+func (m *SeekPosition) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SeekPosition.Unmarshal(m, b)
+}
+func (m *SeekPosition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SeekPosition.Marshal(b, m, deterministic)
+}
+func (m *SeekPosition) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SeekPosition.Merge(m, src)
+}
+func (m *SeekPosition) XXX_Size() int {
+ return xxx_messageInfo_SeekPosition.Size(m)
+}
+func (m *SeekPosition) XXX_DiscardUnknown() {
+ xxx_messageInfo_SeekPosition.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SeekPosition proto.InternalMessageInfo
+
+type isSeekPosition_Type interface {
+ isSeekPosition_Type()
+}
+
+type SeekPosition_Newest struct {
+ Newest *SeekNewest `protobuf:"bytes,1,opt,name=newest,proto3,oneof"`
+}
+
+type SeekPosition_Oldest struct {
+ Oldest *SeekOldest `protobuf:"bytes,2,opt,name=oldest,proto3,oneof"`
+}
+
+type SeekPosition_Specified struct {
+ Specified *SeekSpecified `protobuf:"bytes,3,opt,name=specified,proto3,oneof"`
+}
+
+func (*SeekPosition_Newest) isSeekPosition_Type() {}
+
+func (*SeekPosition_Oldest) isSeekPosition_Type() {}
+
+func (*SeekPosition_Specified) isSeekPosition_Type() {}
+
+func (m *SeekPosition) GetType() isSeekPosition_Type {
+ if m != nil {
+ return m.Type
+ }
+ return nil
+}
+
+func (m *SeekPosition) GetNewest() *SeekNewest {
+ if x, ok := m.GetType().(*SeekPosition_Newest); ok {
+ return x.Newest
+ }
+ return nil
+}
+
+func (m *SeekPosition) GetOldest() *SeekOldest {
+ if x, ok := m.GetType().(*SeekPosition_Oldest); ok {
+ return x.Oldest
+ }
+ return nil
+}
+
+func (m *SeekPosition) GetSpecified() *SeekSpecified {
+ if x, ok := m.GetType().(*SeekPosition_Specified); ok {
+ return x.Specified
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*SeekPosition) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*SeekPosition_Newest)(nil),
+ (*SeekPosition_Oldest)(nil),
+ (*SeekPosition_Specified)(nil),
+ }
+}
+
+// SeekInfo specifies the range of requested blocks to return
+// If the start position is not found, an error is immediately returned
+// Otherwise, blocks are returned until a missing block is encountered, then behavior is dictated
+// by the SeekBehavior specified.
+type SeekInfo struct {
+ Start *SeekPosition `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"`
+ Stop *SeekPosition `protobuf:"bytes,2,opt,name=stop,proto3" json:"stop,omitempty"`
+ Behavior SeekInfo_SeekBehavior `protobuf:"varint,3,opt,name=behavior,proto3,enum=orderer.SeekInfo_SeekBehavior" json:"behavior,omitempty"`
+ ErrorResponse SeekInfo_SeekErrorResponse `protobuf:"varint,4,opt,name=error_response,json=errorResponse,proto3,enum=orderer.SeekInfo_SeekErrorResponse" json:"error_response,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SeekInfo) Reset() { *m = SeekInfo{} }
+func (m *SeekInfo) String() string { return proto.CompactTextString(m) }
+func (*SeekInfo) ProtoMessage() {}
+func (*SeekInfo) Descriptor() ([]byte, []int) {
+ return fileDescriptor_79fce58dd8d86d62, []int{5}
+}
+
+func (m *SeekInfo) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SeekInfo.Unmarshal(m, b)
+}
+func (m *SeekInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SeekInfo.Marshal(b, m, deterministic)
+}
+func (m *SeekInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SeekInfo.Merge(m, src)
+}
+func (m *SeekInfo) XXX_Size() int {
+ return xxx_messageInfo_SeekInfo.Size(m)
+}
+func (m *SeekInfo) XXX_DiscardUnknown() {
+ xxx_messageInfo_SeekInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SeekInfo proto.InternalMessageInfo
+
+func (m *SeekInfo) GetStart() *SeekPosition {
+ if m != nil {
+ return m.Start
+ }
+ return nil
+}
+
+func (m *SeekInfo) GetStop() *SeekPosition {
+ if m != nil {
+ return m.Stop
+ }
+ return nil
+}
+
+func (m *SeekInfo) GetBehavior() SeekInfo_SeekBehavior {
+ if m != nil {
+ return m.Behavior
+ }
+ return SeekInfo_BLOCK_UNTIL_READY
+}
+
+func (m *SeekInfo) GetErrorResponse() SeekInfo_SeekErrorResponse {
+ if m != nil {
+ return m.ErrorResponse
+ }
+ return SeekInfo_STRICT
+}
+
+type DeliverResponse struct {
+ // Types that are valid to be assigned to Type:
+ // *DeliverResponse_Status
+ // *DeliverResponse_Block
+ Type isDeliverResponse_Type `protobuf_oneof:"Type"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *DeliverResponse) Reset() { *m = DeliverResponse{} }
+func (m *DeliverResponse) String() string { return proto.CompactTextString(m) }
+func (*DeliverResponse) ProtoMessage() {}
+func (*DeliverResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_79fce58dd8d86d62, []int{6}
+}
+
+func (m *DeliverResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_DeliverResponse.Unmarshal(m, b)
+}
+func (m *DeliverResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_DeliverResponse.Marshal(b, m, deterministic)
+}
+func (m *DeliverResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DeliverResponse.Merge(m, src)
+}
+func (m *DeliverResponse) XXX_Size() int {
+ return xxx_messageInfo_DeliverResponse.Size(m)
+}
+func (m *DeliverResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_DeliverResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DeliverResponse proto.InternalMessageInfo
+
+type isDeliverResponse_Type interface {
+ isDeliverResponse_Type()
+}
+
+type DeliverResponse_Status struct {
+ Status common.Status `protobuf:"varint,1,opt,name=status,proto3,enum=common.Status,oneof"`
+}
+
+type DeliverResponse_Block struct {
+ Block *common.Block `protobuf:"bytes,2,opt,name=block,proto3,oneof"`
+}
+
+func (*DeliverResponse_Status) isDeliverResponse_Type() {}
+
+func (*DeliverResponse_Block) isDeliverResponse_Type() {}
+
+func (m *DeliverResponse) GetType() isDeliverResponse_Type {
+ if m != nil {
+ return m.Type
+ }
+ return nil
+}
+
+func (m *DeliverResponse) GetStatus() common.Status {
+ if x, ok := m.GetType().(*DeliverResponse_Status); ok {
+ return x.Status
+ }
+ return common.Status_UNKNOWN
+}
+
+func (m *DeliverResponse) GetBlock() *common.Block {
+ if x, ok := m.GetType().(*DeliverResponse_Block); ok {
+ return x.Block
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*DeliverResponse) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*DeliverResponse_Status)(nil),
+ (*DeliverResponse_Block)(nil),
+ }
+}
+
+func init() {
+ proto.RegisterEnum("orderer.SeekInfo_SeekBehavior", SeekInfo_SeekBehavior_name, SeekInfo_SeekBehavior_value)
+ proto.RegisterEnum("orderer.SeekInfo_SeekErrorResponse", SeekInfo_SeekErrorResponse_name, SeekInfo_SeekErrorResponse_value)
+ proto.RegisterType((*BroadcastResponse)(nil), "orderer.BroadcastResponse")
+ proto.RegisterType((*SeekNewest)(nil), "orderer.SeekNewest")
+ proto.RegisterType((*SeekOldest)(nil), "orderer.SeekOldest")
+ proto.RegisterType((*SeekSpecified)(nil), "orderer.SeekSpecified")
+ proto.RegisterType((*SeekPosition)(nil), "orderer.SeekPosition")
+ proto.RegisterType((*SeekInfo)(nil), "orderer.SeekInfo")
+ proto.RegisterType((*DeliverResponse)(nil), "orderer.DeliverResponse")
+}
+
+func init() { proto.RegisterFile("orderer/ab.proto", fileDescriptor_79fce58dd8d86d62) }
+
+var fileDescriptor_79fce58dd8d86d62 = []byte{
+ // 561 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x93, 0xdf, 0x6e, 0xda, 0x30,
+ 0x14, 0xc6, 0x49, 0x47, 0xd3, 0x72, 0x5a, 0xfe, 0xb9, 0x6a, 0x85, 0xb8, 0x98, 0xaa, 0x4c, 0xdd,
+ 0x98, 0x26, 0x92, 0x8a, 0x49, 0x93, 0x36, 0x6d, 0x17, 0xa4, 0x05, 0xc1, 0x86, 0x60, 0x32, 0x99,
+ 0xb4, 0xed, 0x26, 0x4a, 0x82, 0x81, 0xac, 0x10, 0x47, 0x76, 0x60, 0xea, 0x33, 0xec, 0x55, 0xf6,
+ 0x44, 0x7b, 0x9a, 0xc9, 0x8e, 0x03, 0xa5, 0xed, 0x76, 0x95, 0x9c, 0xe3, 0xdf, 0x77, 0xce, 0x67,
+ 0x1f, 0x1b, 0x2a, 0x94, 0x4d, 0x08, 0x23, 0xcc, 0xf2, 0x7c, 0x33, 0x66, 0x34, 0xa1, 0xe8, 0x40,
+ 0x65, 0xea, 0x27, 0x01, 0x5d, 0x2e, 0x69, 0x64, 0xa5, 0x9f, 0x74, 0xd5, 0x18, 0x41, 0xd5, 0x66,
+ 0xd4, 0x9b, 0x04, 0x1e, 0x4f, 0x30, 0xe1, 0x31, 0x8d, 0x38, 0x41, 0xcf, 0x41, 0xe7, 0x89, 0x97,
+ 0xac, 0x78, 0x4d, 0x3b, 0xd7, 0x1a, 0xa5, 0x56, 0xc9, 0x54, 0x9a, 0xb1, 0xcc, 0x62, 0xb5, 0x8a,
+ 0x10, 0xe4, 0xc3, 0x68, 0x4a, 0x6b, 0x7b, 0xe7, 0x5a, 0xa3, 0x80, 0xe5, 0xbf, 0x71, 0x0c, 0x30,
+ 0x26, 0xe4, 0x66, 0x48, 0x7e, 0x12, 0x9e, 0x64, 0xd1, 0x68, 0x31, 0x11, 0xd1, 0x0b, 0x28, 0x8a,
+ 0x68, 0x1c, 0x93, 0x20, 0x9c, 0x86, 0x64, 0x82, 0xce, 0x40, 0x8f, 0x56, 0x4b, 0x9f, 0x30, 0xd9,
+ 0x28, 0x8f, 0x55, 0x64, 0xfc, 0xd6, 0xe0, 0x58, 0x90, 0x9f, 0x29, 0x0f, 0x93, 0x90, 0x46, 0xa8,
+ 0x09, 0x7a, 0x24, 0x2b, 0x4a, 0xf0, 0xa8, 0x75, 0x62, 0xaa, 0x5d, 0x99, 0xdb, 0x66, 0xbd, 0x1c,
+ 0x56, 0x90, 0xc0, 0xa9, 0x6c, 0x29, 0xad, 0xdd, 0xc7, 0x53, 0x37, 0x02, 0x4f, 0x21, 0xf4, 0x06,
+ 0x0a, 0x3c, 0xf3, 0x54, 0x7b, 0x22, 0x15, 0x67, 0x3b, 0x8a, 0x8d, 0xe3, 0x5e, 0x0e, 0x6f, 0x51,
+ 0x5b, 0x87, 0xbc, 0x73, 0x1b, 0x13, 0xe3, 0xcf, 0x1e, 0x1c, 0x0a, 0xac, 0x1f, 0x4d, 0x29, 0x7a,
+ 0x05, 0xfb, 0x3c, 0xf1, 0x58, 0xe6, 0xf4, 0x74, 0xa7, 0x50, 0xb6, 0x21, 0x9c, 0x32, 0xe8, 0x25,
+ 0xe4, 0x79, 0x42, 0x63, 0x65, 0xf3, 0x1f, 0xac, 0x44, 0xd0, 0x3b, 0x38, 0xf4, 0xc9, 0xdc, 0x5b,
+ 0x87, 0x94, 0x49, 0x8f, 0xa5, 0xd6, 0xd3, 0x1d, 0x5c, 0x34, 0x97, 0x3f, 0xb6, 0xa2, 0xf0, 0x86,
+ 0x47, 0x1f, 0xa1, 0x44, 0x18, 0xa3, 0xcc, 0x65, 0x6a, 0xc4, 0xb5, 0xbc, 0xac, 0xf0, 0xec, 0xf1,
+ 0x0a, 0x1d, 0xc1, 0x66, 0xb7, 0x01, 0x17, 0xc9, 0xdd, 0xd0, 0x78, 0x9f, 0x8e, 0x26, 0xeb, 0x82,
+ 0x4e, 0xa1, 0x6a, 0x0f, 0x46, 0x57, 0x9f, 0xdc, 0x2f, 0x43, 0xa7, 0x3f, 0x70, 0x71, 0xa7, 0x7d,
+ 0xfd, 0xad, 0x92, 0x13, 0xe9, 0x6e, 0xbb, 0x3f, 0x70, 0xfb, 0x5d, 0x77, 0x38, 0x72, 0x54, 0x5a,
+ 0x33, 0x2e, 0xa1, 0xfa, 0xa0, 0x03, 0x02, 0xd0, 0xc7, 0x0e, 0xee, 0x5f, 0x39, 0x95, 0x1c, 0x2a,
+ 0xc3, 0x91, 0xdd, 0x19, 0x3b, 0x6e, 0xa7, 0xdb, 0x1d, 0x61, 0xa7, 0xa2, 0x19, 0x3f, 0xa0, 0x7c,
+ 0x4d, 0x16, 0xe1, 0x9a, 0x6c, 0xf9, 0xc6, 0xff, 0xef, 0xa7, 0x98, 0xac, 0xba, 0xa1, 0x17, 0xb0,
+ 0xef, 0x2f, 0x68, 0x70, 0xa3, 0x0e, 0xb8, 0x98, 0x81, 0xb6, 0x48, 0xf6, 0x72, 0x38, 0x5d, 0xcd,
+ 0x06, 0xd9, 0xfa, 0xa5, 0x41, 0xb9, 0x9d, 0xd0, 0x65, 0x18, 0x6c, 0x1e, 0x05, 0xfa, 0x00, 0x85,
+ 0x6d, 0x50, 0xc9, 0x0a, 0x74, 0xa2, 0x35, 0x59, 0xd0, 0x98, 0xd4, 0xeb, 0x9b, 0x23, 0x7c, 0xf0,
+ 0x8e, 0x1a, 0xda, 0xa5, 0x86, 0xde, 0xc2, 0x81, 0xb2, 0xff, 0x88, 0xb8, 0xb6, 0x11, 0xdf, 0xdb,
+ 0xa2, 0x90, 0xda, 0x5f, 0xe1, 0x82, 0xb2, 0x99, 0x39, 0xbf, 0x8d, 0x09, 0x5b, 0x90, 0xc9, 0x8c,
+ 0x30, 0x73, 0xea, 0xf9, 0x2c, 0x0c, 0xd2, 0xb7, 0xcb, 0x33, 0xf1, 0x77, 0x6b, 0x16, 0x26, 0xf3,
+ 0x95, 0x2f, 0xca, 0x5b, 0x77, 0x68, 0x2b, 0xa5, 0x9b, 0x29, 0xdd, 0x9c, 0x51, 0x4b, 0x09, 0x7c,
+ 0x5d, 0xa6, 0x5e, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x96, 0x01, 0x9a, 0x68, 0x2e, 0x04, 0x00,
+ 0x00,
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// AtomicBroadcastClient is the client API for AtomicBroadcast service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type AtomicBroadcastClient interface {
+ // broadcast receives a reply of Acknowledgement for each common.Envelope in order, indicating success or type of failure
+ Broadcast(ctx context.Context, opts ...grpc.CallOption) (AtomicBroadcast_BroadcastClient, error)
+ // deliver first requires an Envelope of type DELIVER_SEEK_INFO with Payload data as a mashaled SeekInfo message, then a stream of block replies is received.
+ Deliver(ctx context.Context, opts ...grpc.CallOption) (AtomicBroadcast_DeliverClient, error)
+}
+
+type atomicBroadcastClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewAtomicBroadcastClient(cc *grpc.ClientConn) AtomicBroadcastClient {
+ return &atomicBroadcastClient{cc}
+}
+
+func (c *atomicBroadcastClient) Broadcast(ctx context.Context, opts ...grpc.CallOption) (AtomicBroadcast_BroadcastClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_AtomicBroadcast_serviceDesc.Streams[0], "/orderer.AtomicBroadcast/Broadcast", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &atomicBroadcastBroadcastClient{stream}
+ return x, nil
+}
+
+type AtomicBroadcast_BroadcastClient interface {
+ Send(*common.Envelope) error
+ Recv() (*BroadcastResponse, error)
+ grpc.ClientStream
+}
+
+type atomicBroadcastBroadcastClient struct {
+ grpc.ClientStream
+}
+
+func (x *atomicBroadcastBroadcastClient) Send(m *common.Envelope) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *atomicBroadcastBroadcastClient) Recv() (*BroadcastResponse, error) {
+ m := new(BroadcastResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *atomicBroadcastClient) Deliver(ctx context.Context, opts ...grpc.CallOption) (AtomicBroadcast_DeliverClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_AtomicBroadcast_serviceDesc.Streams[1], "/orderer.AtomicBroadcast/Deliver", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &atomicBroadcastDeliverClient{stream}
+ return x, nil
+}
+
+type AtomicBroadcast_DeliverClient interface {
+ Send(*common.Envelope) error
+ Recv() (*DeliverResponse, error)
+ grpc.ClientStream
+}
+
+type atomicBroadcastDeliverClient struct {
+ grpc.ClientStream
+}
+
+func (x *atomicBroadcastDeliverClient) Send(m *common.Envelope) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *atomicBroadcastDeliverClient) Recv() (*DeliverResponse, error) {
+ m := new(DeliverResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// AtomicBroadcastServer is the server API for AtomicBroadcast service.
+type AtomicBroadcastServer interface {
+ // broadcast receives a reply of Acknowledgement for each common.Envelope in order, indicating success or type of failure
+ Broadcast(AtomicBroadcast_BroadcastServer) error
+ // deliver first requires an Envelope of type DELIVER_SEEK_INFO with Payload data as a mashaled SeekInfo message, then a stream of block replies is received.
+ Deliver(AtomicBroadcast_DeliverServer) error
+}
+
+// UnimplementedAtomicBroadcastServer can be embedded to have forward compatible implementations.
+type UnimplementedAtomicBroadcastServer struct {
+}
+
+func (*UnimplementedAtomicBroadcastServer) Broadcast(srv AtomicBroadcast_BroadcastServer) error {
+ return status.Errorf(codes.Unimplemented, "method Broadcast not implemented")
+}
+func (*UnimplementedAtomicBroadcastServer) Deliver(srv AtomicBroadcast_DeliverServer) error {
+ return status.Errorf(codes.Unimplemented, "method Deliver not implemented")
+}
+
+func RegisterAtomicBroadcastServer(s *grpc.Server, srv AtomicBroadcastServer) {
+ s.RegisterService(&_AtomicBroadcast_serviceDesc, srv)
+}
+
+func _AtomicBroadcast_Broadcast_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(AtomicBroadcastServer).Broadcast(&atomicBroadcastBroadcastServer{stream})
+}
+
+type AtomicBroadcast_BroadcastServer interface {
+ Send(*BroadcastResponse) error
+ Recv() (*common.Envelope, error)
+ grpc.ServerStream
+}
+
+type atomicBroadcastBroadcastServer struct {
+ grpc.ServerStream
+}
+
+func (x *atomicBroadcastBroadcastServer) Send(m *BroadcastResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *atomicBroadcastBroadcastServer) Recv() (*common.Envelope, error) {
+ m := new(common.Envelope)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func _AtomicBroadcast_Deliver_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(AtomicBroadcastServer).Deliver(&atomicBroadcastDeliverServer{stream})
+}
+
+type AtomicBroadcast_DeliverServer interface {
+ Send(*DeliverResponse) error
+ Recv() (*common.Envelope, error)
+ grpc.ServerStream
+}
+
+type atomicBroadcastDeliverServer struct {
+ grpc.ServerStream
+}
+
+func (x *atomicBroadcastDeliverServer) Send(m *DeliverResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *atomicBroadcastDeliverServer) Recv() (*common.Envelope, error) {
+ m := new(common.Envelope)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+var _AtomicBroadcast_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "orderer.AtomicBroadcast",
+ HandlerType: (*AtomicBroadcastServer)(nil),
+ Methods: []grpc.MethodDesc{},
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "Broadcast",
+ Handler: _AtomicBroadcast_Broadcast_Handler,
+ ServerStreams: true,
+ ClientStreams: true,
+ },
+ {
+ StreamName: "Deliver",
+ Handler: _AtomicBroadcast_Deliver_Handler,
+ ServerStreams: true,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "orderer/ab.proto",
+}
diff --git a/orderer/cluster.pb.go b/orderer/cluster.pb.go
new file mode 100644
index 0000000..398c2b6
--- /dev/null
+++ b/orderer/cluster.pb.go
@@ -0,0 +1,504 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: orderer/cluster.proto
+
+package orderer
+
+import (
+ context "context"
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ common "github.com/hyperledger/fabric-protos-go/common"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// StepRequest wraps a message that is sent to a cluster member.
+type StepRequest struct {
+ // Types that are valid to be assigned to Payload:
+ // *StepRequest_ConsensusRequest
+ // *StepRequest_SubmitRequest
+ Payload isStepRequest_Payload `protobuf_oneof:"payload"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StepRequest) Reset() { *m = StepRequest{} }
+func (m *StepRequest) String() string { return proto.CompactTextString(m) }
+func (*StepRequest) ProtoMessage() {}
+func (*StepRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e3b50707fd3a71f2, []int{0}
+}
+
+func (m *StepRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StepRequest.Unmarshal(m, b)
+}
+func (m *StepRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StepRequest.Marshal(b, m, deterministic)
+}
+func (m *StepRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StepRequest.Merge(m, src)
+}
+func (m *StepRequest) XXX_Size() int {
+ return xxx_messageInfo_StepRequest.Size(m)
+}
+func (m *StepRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_StepRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StepRequest proto.InternalMessageInfo
+
+type isStepRequest_Payload interface {
+ isStepRequest_Payload()
+}
+
+type StepRequest_ConsensusRequest struct {
+ ConsensusRequest *ConsensusRequest `protobuf:"bytes,1,opt,name=consensus_request,json=consensusRequest,proto3,oneof"`
+}
+
+type StepRequest_SubmitRequest struct {
+ SubmitRequest *SubmitRequest `protobuf:"bytes,2,opt,name=submit_request,json=submitRequest,proto3,oneof"`
+}
+
+func (*StepRequest_ConsensusRequest) isStepRequest_Payload() {}
+
+func (*StepRequest_SubmitRequest) isStepRequest_Payload() {}
+
+func (m *StepRequest) GetPayload() isStepRequest_Payload {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+func (m *StepRequest) GetConsensusRequest() *ConsensusRequest {
+ if x, ok := m.GetPayload().(*StepRequest_ConsensusRequest); ok {
+ return x.ConsensusRequest
+ }
+ return nil
+}
+
+func (m *StepRequest) GetSubmitRequest() *SubmitRequest {
+ if x, ok := m.GetPayload().(*StepRequest_SubmitRequest); ok {
+ return x.SubmitRequest
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*StepRequest) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*StepRequest_ConsensusRequest)(nil),
+ (*StepRequest_SubmitRequest)(nil),
+ }
+}
+
+// StepResponse is a message received from a cluster member.
+type StepResponse struct {
+ // Types that are valid to be assigned to Payload:
+ // *StepResponse_SubmitRes
+ Payload isStepResponse_Payload `protobuf_oneof:"payload"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StepResponse) Reset() { *m = StepResponse{} }
+func (m *StepResponse) String() string { return proto.CompactTextString(m) }
+func (*StepResponse) ProtoMessage() {}
+func (*StepResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e3b50707fd3a71f2, []int{1}
+}
+
+func (m *StepResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StepResponse.Unmarshal(m, b)
+}
+func (m *StepResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StepResponse.Marshal(b, m, deterministic)
+}
+func (m *StepResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StepResponse.Merge(m, src)
+}
+func (m *StepResponse) XXX_Size() int {
+ return xxx_messageInfo_StepResponse.Size(m)
+}
+func (m *StepResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_StepResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StepResponse proto.InternalMessageInfo
+
+type isStepResponse_Payload interface {
+ isStepResponse_Payload()
+}
+
+type StepResponse_SubmitRes struct {
+ SubmitRes *SubmitResponse `protobuf:"bytes,1,opt,name=submit_res,json=submitRes,proto3,oneof"`
+}
+
+func (*StepResponse_SubmitRes) isStepResponse_Payload() {}
+
+func (m *StepResponse) GetPayload() isStepResponse_Payload {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+func (m *StepResponse) GetSubmitRes() *SubmitResponse {
+ if x, ok := m.GetPayload().(*StepResponse_SubmitRes); ok {
+ return x.SubmitRes
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*StepResponse) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*StepResponse_SubmitRes)(nil),
+ }
+}
+
+// ConsensusRequest is a consensus specific message sent to a cluster member.
+type ConsensusRequest struct {
+ Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
+ Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
+ Metadata []byte `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConsensusRequest) Reset() { *m = ConsensusRequest{} }
+func (m *ConsensusRequest) String() string { return proto.CompactTextString(m) }
+func (*ConsensusRequest) ProtoMessage() {}
+func (*ConsensusRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e3b50707fd3a71f2, []int{2}
+}
+
+func (m *ConsensusRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConsensusRequest.Unmarshal(m, b)
+}
+func (m *ConsensusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConsensusRequest.Marshal(b, m, deterministic)
+}
+func (m *ConsensusRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConsensusRequest.Merge(m, src)
+}
+func (m *ConsensusRequest) XXX_Size() int {
+ return xxx_messageInfo_ConsensusRequest.Size(m)
+}
+func (m *ConsensusRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConsensusRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConsensusRequest proto.InternalMessageInfo
+
+func (m *ConsensusRequest) GetChannel() string {
+ if m != nil {
+ return m.Channel
+ }
+ return ""
+}
+
+func (m *ConsensusRequest) GetPayload() []byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+func (m *ConsensusRequest) GetMetadata() []byte {
+ if m != nil {
+ return m.Metadata
+ }
+ return nil
+}
+
+// SubmitRequest wraps a transaction to be sent for ordering.
+type SubmitRequest struct {
+ Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
+ // last_validation_seq denotes the last
+ // configuration sequence at which the
+ // sender validated this message.
+ LastValidationSeq uint64 `protobuf:"varint,2,opt,name=last_validation_seq,json=lastValidationSeq,proto3" json:"last_validation_seq,omitempty"`
+ // content is the fabric transaction
+ // that is forwarded to the cluster member.
+ Payload *common.Envelope `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SubmitRequest) Reset() { *m = SubmitRequest{} }
+func (m *SubmitRequest) String() string { return proto.CompactTextString(m) }
+func (*SubmitRequest) ProtoMessage() {}
+func (*SubmitRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e3b50707fd3a71f2, []int{3}
+}
+
+func (m *SubmitRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SubmitRequest.Unmarshal(m, b)
+}
+func (m *SubmitRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SubmitRequest.Marshal(b, m, deterministic)
+}
+func (m *SubmitRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SubmitRequest.Merge(m, src)
+}
+func (m *SubmitRequest) XXX_Size() int {
+ return xxx_messageInfo_SubmitRequest.Size(m)
+}
+func (m *SubmitRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_SubmitRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SubmitRequest proto.InternalMessageInfo
+
+func (m *SubmitRequest) GetChannel() string {
+ if m != nil {
+ return m.Channel
+ }
+ return ""
+}
+
+func (m *SubmitRequest) GetLastValidationSeq() uint64 {
+ if m != nil {
+ return m.LastValidationSeq
+ }
+ return 0
+}
+
+func (m *SubmitRequest) GetPayload() *common.Envelope {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+// SubmitResponse returns a success
+// or failure status to the sender.
+type SubmitResponse struct {
+ Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
+ // Status code, which may be used to programatically respond to success/failure.
+ Status common.Status `protobuf:"varint,2,opt,name=status,proto3,enum=common.Status" json:"status,omitempty"`
+ // Info string which may contain additional information about the returned status.
+ Info string `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SubmitResponse) Reset() { *m = SubmitResponse{} }
+func (m *SubmitResponse) String() string { return proto.CompactTextString(m) }
+func (*SubmitResponse) ProtoMessage() {}
+func (*SubmitResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e3b50707fd3a71f2, []int{4}
+}
+
+func (m *SubmitResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SubmitResponse.Unmarshal(m, b)
+}
+func (m *SubmitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SubmitResponse.Marshal(b, m, deterministic)
+}
+func (m *SubmitResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SubmitResponse.Merge(m, src)
+}
+func (m *SubmitResponse) XXX_Size() int {
+ return xxx_messageInfo_SubmitResponse.Size(m)
+}
+func (m *SubmitResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_SubmitResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SubmitResponse proto.InternalMessageInfo
+
+func (m *SubmitResponse) GetChannel() string {
+ if m != nil {
+ return m.Channel
+ }
+ return ""
+}
+
+func (m *SubmitResponse) GetStatus() common.Status {
+ if m != nil {
+ return m.Status
+ }
+ return common.Status_UNKNOWN
+}
+
+func (m *SubmitResponse) GetInfo() string {
+ if m != nil {
+ return m.Info
+ }
+ return ""
+}
+
+func init() {
+ proto.RegisterType((*StepRequest)(nil), "orderer.StepRequest")
+ proto.RegisterType((*StepResponse)(nil), "orderer.StepResponse")
+ proto.RegisterType((*ConsensusRequest)(nil), "orderer.ConsensusRequest")
+ proto.RegisterType((*SubmitRequest)(nil), "orderer.SubmitRequest")
+ proto.RegisterType((*SubmitResponse)(nil), "orderer.SubmitResponse")
+}
+
+func init() { proto.RegisterFile("orderer/cluster.proto", fileDescriptor_e3b50707fd3a71f2) }
+
+var fileDescriptor_e3b50707fd3a71f2 = []byte{
+ // 418 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0xc1, 0x6a, 0xdb, 0x40,
+ 0x10, 0x8d, 0x1a, 0x13, 0x57, 0x93, 0x44, 0x38, 0x9b, 0xa6, 0x75, 0x7d, 0x2a, 0x82, 0x96, 0x50,
+ 0x88, 0x54, 0xdc, 0x43, 0x7b, 0x2b, 0x38, 0x14, 0x7c, 0x5e, 0x41, 0x29, 0xbd, 0x98, 0x95, 0x34,
+ 0x96, 0x05, 0xd2, 0xae, 0xbc, 0xbb, 0x0a, 0xe4, 0x03, 0xfa, 0x25, 0xfd, 0xd1, 0xa2, 0xdd, 0x95,
+ 0xe4, 0x38, 0x90, 0x93, 0x34, 0xef, 0xcd, 0xbc, 0x79, 0xb3, 0x33, 0x70, 0x23, 0x64, 0x8e, 0x12,
+ 0x65, 0x9c, 0x55, 0xad, 0xd2, 0x28, 0xa3, 0x46, 0x0a, 0x2d, 0xc8, 0xd4, 0xc1, 0x8b, 0xeb, 0x4c,
+ 0xd4, 0xb5, 0xe0, 0xb1, 0xfd, 0x58, 0x36, 0xfc, 0xe7, 0xc1, 0x79, 0xa2, 0xb1, 0xa1, 0xb8, 0x6f,
+ 0x51, 0x69, 0xb2, 0x86, 0xab, 0x4c, 0x70, 0x85, 0x5c, 0xb5, 0x6a, 0x23, 0x2d, 0x38, 0xf7, 0x3e,
+ 0x78, 0xb7, 0xe7, 0xcb, 0xf7, 0x91, 0x53, 0x8a, 0xee, 0xfb, 0x0c, 0x57, 0xb5, 0x3e, 0xa1, 0xb3,
+ 0xec, 0x08, 0x23, 0x3f, 0x20, 0x50, 0x6d, 0x5a, 0x97, 0x7a, 0x90, 0x79, 0x65, 0x64, 0xde, 0x0e,
+ 0x32, 0x89, 0xa1, 0x47, 0x8d, 0x4b, 0x75, 0x08, 0xac, 0x7c, 0x98, 0x36, 0xec, 0xb1, 0x12, 0x2c,
+ 0x0f, 0x13, 0xb8, 0xb0, 0x26, 0x55, 0xd3, 0xb5, 0x21, 0xdf, 0x01, 0x06, 0x6d, 0xe5, 0xec, 0xbd,
+ 0x7b, 0xa6, 0x6b, 0x93, 0xd7, 0x27, 0xd4, 0xef, 0x85, 0xd5, 0xa1, 0x68, 0x0a, 0xb3, 0xe3, 0x41,
+ 0xc8, 0x1c, 0xa6, 0xd9, 0x8e, 0x71, 0x8e, 0x95, 0x51, 0xf5, 0x69, 0x1f, 0x76, 0x8c, 0x2b, 0x34,
+ 0x73, 0x5c, 0xd0, 0x3e, 0x24, 0x0b, 0x78, 0x5d, 0xa3, 0x66, 0x39, 0xd3, 0x6c, 0x7e, 0x6a, 0xa8,
+ 0x21, 0x0e, 0xff, 0x7a, 0x70, 0xf9, 0x64, 0xcc, 0x17, 0x3a, 0x44, 0x70, 0x5d, 0x31, 0xa5, 0x37,
+ 0x0f, 0xac, 0x2a, 0x73, 0xa6, 0x4b, 0xc1, 0x37, 0x0a, 0xf7, 0xa6, 0xdb, 0x84, 0x5e, 0x75, 0xd4,
+ 0xaf, 0x81, 0x49, 0x70, 0x4f, 0x3e, 0x8f, 0x8e, 0x4e, 0xcd, 0x0b, 0xcc, 0x22, 0xb7, 0xda, 0x9f,
+ 0xfc, 0x01, 0x2b, 0xd1, 0xe0, 0xe0, 0x31, 0xdc, 0x42, 0xf0, 0xf4, 0x55, 0x5e, 0xf0, 0xf1, 0x09,
+ 0xce, 0x94, 0x66, 0xba, 0x55, 0xa6, 0x75, 0xb0, 0x0c, 0x7a, 0xd9, 0xc4, 0xa0, 0xd4, 0xb1, 0x84,
+ 0xc0, 0xa4, 0xe4, 0x5b, 0x61, 0x9a, 0xfb, 0xd4, 0xfc, 0x2f, 0x57, 0x30, 0xbd, 0xb7, 0xd7, 0x47,
+ 0xbe, 0xc1, 0xa4, 0xdb, 0x19, 0x79, 0x33, 0xee, 0x65, 0xbc, 0xb3, 0xc5, 0xcd, 0x11, 0x6a, 0x5d,
+ 0xdd, 0x7a, 0x5f, 0xbc, 0xd5, 0x6f, 0xf8, 0x28, 0x64, 0x11, 0xed, 0x1e, 0x1b, 0x94, 0x15, 0xe6,
+ 0x05, 0xca, 0x68, 0xcb, 0x52, 0x59, 0x66, 0xf6, 0x64, 0x55, 0x5f, 0xf9, 0x27, 0x2e, 0x4a, 0xbd,
+ 0x6b, 0xd3, 0xce, 0x5e, 0x7c, 0x90, 0x1d, 0xdb, 0xec, 0x3b, 0x9b, 0x7d, 0x57, 0x88, 0xd8, 0x15,
+ 0xa4, 0x67, 0x06, 0xfa, 0xfa, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xe2, 0xed, 0x23, 0xd0, 0x2a, 0x03,
+ 0x00, 0x00,
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// ClusterClient is the client API for Cluster service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type ClusterClient interface {
+ // Step passes an implementation-specific message to another cluster member.
+ Step(ctx context.Context, opts ...grpc.CallOption) (Cluster_StepClient, error)
+}
+
+type clusterClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewClusterClient(cc *grpc.ClientConn) ClusterClient {
+ return &clusterClient{cc}
+}
+
+func (c *clusterClient) Step(ctx context.Context, opts ...grpc.CallOption) (Cluster_StepClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_Cluster_serviceDesc.Streams[0], "/orderer.Cluster/Step", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &clusterStepClient{stream}
+ return x, nil
+}
+
+type Cluster_StepClient interface {
+ Send(*StepRequest) error
+ Recv() (*StepResponse, error)
+ grpc.ClientStream
+}
+
+type clusterStepClient struct {
+ grpc.ClientStream
+}
+
+func (x *clusterStepClient) Send(m *StepRequest) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *clusterStepClient) Recv() (*StepResponse, error) {
+ m := new(StepResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// ClusterServer is the server API for Cluster service.
+type ClusterServer interface {
+ // Step passes an implementation-specific message to another cluster member.
+ Step(Cluster_StepServer) error
+}
+
+// UnimplementedClusterServer can be embedded to have forward compatible implementations.
+type UnimplementedClusterServer struct {
+}
+
+func (*UnimplementedClusterServer) Step(srv Cluster_StepServer) error {
+ return status.Errorf(codes.Unimplemented, "method Step not implemented")
+}
+
+func RegisterClusterServer(s *grpc.Server, srv ClusterServer) {
+ s.RegisterService(&_Cluster_serviceDesc, srv)
+}
+
+func _Cluster_Step_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(ClusterServer).Step(&clusterStepServer{stream})
+}
+
+type Cluster_StepServer interface {
+ Send(*StepResponse) error
+ Recv() (*StepRequest, error)
+ grpc.ServerStream
+}
+
+type clusterStepServer struct {
+ grpc.ServerStream
+}
+
+func (x *clusterStepServer) Send(m *StepResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *clusterStepServer) Recv() (*StepRequest, error) {
+ m := new(StepRequest)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+var _Cluster_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "orderer.Cluster",
+ HandlerType: (*ClusterServer)(nil),
+ Methods: []grpc.MethodDesc{},
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "Step",
+ Handler: _Cluster_Step_Handler,
+ ServerStreams: true,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "orderer/cluster.proto",
+}
diff --git a/orderer/configuration.pb.go b/orderer/configuration.pb.go
new file mode 100644
index 0000000..de5fa94
--- /dev/null
+++ b/orderer/configuration.pb.go
@@ -0,0 +1,333 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: orderer/configuration.proto
+
+package orderer
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// State defines the orderer mode of operation, typically for consensus-type migration.
+// NORMAL is during normal operation, when consensus-type migration is not, and can not, take place.
+// MAINTENANCE is when the consensus-type can be changed.
+type ConsensusType_State int32
+
+const (
+ ConsensusType_STATE_NORMAL ConsensusType_State = 0
+ ConsensusType_STATE_MAINTENANCE ConsensusType_State = 1
+)
+
+var ConsensusType_State_name = map[int32]string{
+ 0: "STATE_NORMAL",
+ 1: "STATE_MAINTENANCE",
+}
+
+var ConsensusType_State_value = map[string]int32{
+ "STATE_NORMAL": 0,
+ "STATE_MAINTENANCE": 1,
+}
+
+func (x ConsensusType_State) String() string {
+ return proto.EnumName(ConsensusType_State_name, int32(x))
+}
+
+func (ConsensusType_State) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_bcce68f21316dd30, []int{0, 0}
+}
+
+type ConsensusType struct {
+ // The consensus type: "solo", "kafka" or "etcdraft".
+ Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
+ // Opaque metadata, dependent on the consensus type.
+ Metadata []byte `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ // The state signals the ordering service to go into maintenance mode, typically for consensus-type migration.
+ State ConsensusType_State `protobuf:"varint,3,opt,name=state,proto3,enum=orderer.ConsensusType_State" json:"state,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConsensusType) Reset() { *m = ConsensusType{} }
+func (m *ConsensusType) String() string { return proto.CompactTextString(m) }
+func (*ConsensusType) ProtoMessage() {}
+func (*ConsensusType) Descriptor() ([]byte, []int) {
+ return fileDescriptor_bcce68f21316dd30, []int{0}
+}
+
+func (m *ConsensusType) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConsensusType.Unmarshal(m, b)
+}
+func (m *ConsensusType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConsensusType.Marshal(b, m, deterministic)
+}
+func (m *ConsensusType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConsensusType.Merge(m, src)
+}
+func (m *ConsensusType) XXX_Size() int {
+ return xxx_messageInfo_ConsensusType.Size(m)
+}
+func (m *ConsensusType) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConsensusType.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConsensusType proto.InternalMessageInfo
+
+func (m *ConsensusType) GetType() string {
+ if m != nil {
+ return m.Type
+ }
+ return ""
+}
+
+func (m *ConsensusType) GetMetadata() []byte {
+ if m != nil {
+ return m.Metadata
+ }
+ return nil
+}
+
+func (m *ConsensusType) GetState() ConsensusType_State {
+ if m != nil {
+ return m.State
+ }
+ return ConsensusType_STATE_NORMAL
+}
+
+type BatchSize struct {
+ // Simply specified as number of messages for now, in the future
+ // we may want to allow this to be specified by size in bytes
+ MaxMessageCount uint32 `protobuf:"varint,1,opt,name=max_message_count,json=maxMessageCount,proto3" json:"max_message_count,omitempty"`
+ // The byte count of the serialized messages in a batch cannot
+ // exceed this value.
+ AbsoluteMaxBytes uint32 `protobuf:"varint,2,opt,name=absolute_max_bytes,json=absoluteMaxBytes,proto3" json:"absolute_max_bytes,omitempty"`
+ // The byte count of the serialized messages in a batch should not
+ // exceed this value.
+ PreferredMaxBytes uint32 `protobuf:"varint,3,opt,name=preferred_max_bytes,json=preferredMaxBytes,proto3" json:"preferred_max_bytes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *BatchSize) Reset() { *m = BatchSize{} }
+func (m *BatchSize) String() string { return proto.CompactTextString(m) }
+func (*BatchSize) ProtoMessage() {}
+func (*BatchSize) Descriptor() ([]byte, []int) {
+ return fileDescriptor_bcce68f21316dd30, []int{1}
+}
+
+func (m *BatchSize) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_BatchSize.Unmarshal(m, b)
+}
+func (m *BatchSize) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_BatchSize.Marshal(b, m, deterministic)
+}
+func (m *BatchSize) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BatchSize.Merge(m, src)
+}
+func (m *BatchSize) XXX_Size() int {
+ return xxx_messageInfo_BatchSize.Size(m)
+}
+func (m *BatchSize) XXX_DiscardUnknown() {
+ xxx_messageInfo_BatchSize.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_BatchSize proto.InternalMessageInfo
+
+func (m *BatchSize) GetMaxMessageCount() uint32 {
+ if m != nil {
+ return m.MaxMessageCount
+ }
+ return 0
+}
+
+func (m *BatchSize) GetAbsoluteMaxBytes() uint32 {
+ if m != nil {
+ return m.AbsoluteMaxBytes
+ }
+ return 0
+}
+
+func (m *BatchSize) GetPreferredMaxBytes() uint32 {
+ if m != nil {
+ return m.PreferredMaxBytes
+ }
+ return 0
+}
+
+type BatchTimeout struct {
+ // Any duration string parseable by ParseDuration():
+ // https://golang.org/pkg/time/#ParseDuration
+ Timeout string `protobuf:"bytes,1,opt,name=timeout,proto3" json:"timeout,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *BatchTimeout) Reset() { *m = BatchTimeout{} }
+func (m *BatchTimeout) String() string { return proto.CompactTextString(m) }
+func (*BatchTimeout) ProtoMessage() {}
+func (*BatchTimeout) Descriptor() ([]byte, []int) {
+ return fileDescriptor_bcce68f21316dd30, []int{2}
+}
+
+func (m *BatchTimeout) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_BatchTimeout.Unmarshal(m, b)
+}
+func (m *BatchTimeout) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_BatchTimeout.Marshal(b, m, deterministic)
+}
+func (m *BatchTimeout) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BatchTimeout.Merge(m, src)
+}
+func (m *BatchTimeout) XXX_Size() int {
+ return xxx_messageInfo_BatchTimeout.Size(m)
+}
+func (m *BatchTimeout) XXX_DiscardUnknown() {
+ xxx_messageInfo_BatchTimeout.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_BatchTimeout proto.InternalMessageInfo
+
+func (m *BatchTimeout) GetTimeout() string {
+ if m != nil {
+ return m.Timeout
+ }
+ return ""
+}
+
+// Carries a list of bootstrap brokers, i.e. this is not the exclusive set of
+// brokers an ordering service
+type KafkaBrokers struct {
+ // Each broker here should be identified using the (IP|host):port notation,
+ // e.g. 127.0.0.1:7050, or localhost:7050 are valid entries
+ Brokers []string `protobuf:"bytes,1,rep,name=brokers,proto3" json:"brokers,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KafkaBrokers) Reset() { *m = KafkaBrokers{} }
+func (m *KafkaBrokers) String() string { return proto.CompactTextString(m) }
+func (*KafkaBrokers) ProtoMessage() {}
+func (*KafkaBrokers) Descriptor() ([]byte, []int) {
+ return fileDescriptor_bcce68f21316dd30, []int{3}
+}
+
+func (m *KafkaBrokers) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KafkaBrokers.Unmarshal(m, b)
+}
+func (m *KafkaBrokers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KafkaBrokers.Marshal(b, m, deterministic)
+}
+func (m *KafkaBrokers) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KafkaBrokers.Merge(m, src)
+}
+func (m *KafkaBrokers) XXX_Size() int {
+ return xxx_messageInfo_KafkaBrokers.Size(m)
+}
+func (m *KafkaBrokers) XXX_DiscardUnknown() {
+ xxx_messageInfo_KafkaBrokers.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KafkaBrokers proto.InternalMessageInfo
+
+func (m *KafkaBrokers) GetBrokers() []string {
+ if m != nil {
+ return m.Brokers
+ }
+ return nil
+}
+
+// ChannelRestrictions is the mssage which conveys restrictions on channel creation for an orderer
+type ChannelRestrictions struct {
+ MaxCount uint64 `protobuf:"varint,1,opt,name=max_count,json=maxCount,proto3" json:"max_count,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChannelRestrictions) Reset() { *m = ChannelRestrictions{} }
+func (m *ChannelRestrictions) String() string { return proto.CompactTextString(m) }
+func (*ChannelRestrictions) ProtoMessage() {}
+func (*ChannelRestrictions) Descriptor() ([]byte, []int) {
+ return fileDescriptor_bcce68f21316dd30, []int{4}
+}
+
+func (m *ChannelRestrictions) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChannelRestrictions.Unmarshal(m, b)
+}
+func (m *ChannelRestrictions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChannelRestrictions.Marshal(b, m, deterministic)
+}
+func (m *ChannelRestrictions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChannelRestrictions.Merge(m, src)
+}
+func (m *ChannelRestrictions) XXX_Size() int {
+ return xxx_messageInfo_ChannelRestrictions.Size(m)
+}
+func (m *ChannelRestrictions) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChannelRestrictions.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChannelRestrictions proto.InternalMessageInfo
+
+func (m *ChannelRestrictions) GetMaxCount() uint64 {
+ if m != nil {
+ return m.MaxCount
+ }
+ return 0
+}
+
+func init() {
+ proto.RegisterEnum("orderer.ConsensusType_State", ConsensusType_State_name, ConsensusType_State_value)
+ proto.RegisterType((*ConsensusType)(nil), "orderer.ConsensusType")
+ proto.RegisterType((*BatchSize)(nil), "orderer.BatchSize")
+ proto.RegisterType((*BatchTimeout)(nil), "orderer.BatchTimeout")
+ proto.RegisterType((*KafkaBrokers)(nil), "orderer.KafkaBrokers")
+ proto.RegisterType((*ChannelRestrictions)(nil), "orderer.ChannelRestrictions")
+}
+
+func init() { proto.RegisterFile("orderer/configuration.proto", fileDescriptor_bcce68f21316dd30) }
+
+var fileDescriptor_bcce68f21316dd30 = []byte{
+ // 406 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x91, 0x51, 0x8b, 0xda, 0x40,
+ 0x10, 0xc7, 0x9b, 0x7a, 0xd7, 0x3b, 0x07, 0x6d, 0x75, 0x8f, 0x42, 0xe8, 0xf5, 0x41, 0x02, 0x05,
+ 0x29, 0xbd, 0x4d, 0xb1, 0x9f, 0x40, 0xc5, 0x87, 0xd2, 0x6a, 0x61, 0xcd, 0x43, 0xe9, 0x8b, 0x4c,
+ 0xe2, 0x18, 0xc3, 0x99, 0x6c, 0xd8, 0xdd, 0x80, 0xf6, 0x7b, 0xf4, 0x23, 0xf4, 0x7b, 0x96, 0xdd,
+ 0x8d, 0x57, 0xef, 0x6d, 0xfe, 0xff, 0xf9, 0xed, 0x30, 0xb3, 0x7f, 0xb8, 0x97, 0x6a, 0x4b, 0x8a,
+ 0x54, 0x9c, 0xc9, 0x6a, 0x57, 0xe4, 0x8d, 0x42, 0x53, 0xc8, 0x8a, 0xd7, 0x4a, 0x1a, 0xc9, 0x6e,
+ 0xda, 0x66, 0xf4, 0x37, 0x80, 0xfe, 0x5c, 0x56, 0x9a, 0x2a, 0xdd, 0xe8, 0xe4, 0x54, 0x13, 0x63,
+ 0x70, 0x65, 0x4e, 0x35, 0x85, 0xc1, 0x28, 0x18, 0x77, 0x85, 0xab, 0xd9, 0x3b, 0xb8, 0x2d, 0xc9,
+ 0xe0, 0x16, 0x0d, 0x86, 0x2f, 0x47, 0xc1, 0xb8, 0x27, 0x9e, 0x34, 0x9b, 0xc0, 0xb5, 0x36, 0x68,
+ 0x28, 0xec, 0x8c, 0x82, 0xf1, 0xeb, 0xc9, 0x7b, 0xde, 0x8e, 0xe6, 0xcf, 0xc6, 0xf2, 0xb5, 0x65,
+ 0x84, 0x47, 0xa3, 0xcf, 0x70, 0xed, 0x34, 0x1b, 0x40, 0x6f, 0x9d, 0x4c, 0x93, 0xc5, 0x66, 0xf5,
+ 0x43, 0x2c, 0xa7, 0xdf, 0x07, 0x2f, 0xd8, 0x5b, 0x18, 0x7a, 0x67, 0x39, 0xfd, 0xba, 0x4a, 0x16,
+ 0xab, 0xe9, 0x6a, 0xbe, 0x18, 0x04, 0xd1, 0x9f, 0x00, 0xba, 0x33, 0x34, 0xd9, 0x7e, 0x5d, 0xfc,
+ 0x26, 0xf6, 0x11, 0x86, 0x25, 0x1e, 0x37, 0x25, 0x69, 0x8d, 0x39, 0x6d, 0x32, 0xd9, 0x54, 0xc6,
+ 0x2d, 0xdc, 0x17, 0x6f, 0x4a, 0x3c, 0x2e, 0xbd, 0x3f, 0xb7, 0x36, 0xfb, 0x04, 0x0c, 0x53, 0x2d,
+ 0x0f, 0x8d, 0xa1, 0x8d, 0x7d, 0x94, 0x9e, 0x0c, 0x69, 0x77, 0x45, 0x5f, 0x0c, 0xce, 0x9d, 0x25,
+ 0x1e, 0x67, 0xd6, 0x67, 0x1c, 0xee, 0x6a, 0x45, 0x3b, 0x52, 0x8a, 0xb6, 0x17, 0x78, 0xc7, 0xe1,
+ 0xc3, 0xa7, 0xd6, 0x99, 0x8f, 0xc6, 0xd0, 0x73, 0x6b, 0x25, 0x45, 0x49, 0xb2, 0x31, 0x2c, 0x84,
+ 0x1b, 0xe3, 0xcb, 0xf6, 0x03, 0xcf, 0xd2, 0x92, 0xdf, 0x70, 0xf7, 0x88, 0x33, 0x25, 0x1f, 0x49,
+ 0x69, 0x4b, 0xa6, 0xbe, 0x0c, 0x83, 0x51, 0xc7, 0x92, 0xad, 0x8c, 0x26, 0x70, 0x37, 0xdf, 0x63,
+ 0x55, 0xd1, 0x41, 0x90, 0x36, 0xaa, 0xc8, 0x6c, 0x70, 0x9a, 0xdd, 0x43, 0xd7, 0x2e, 0xf4, 0xff,
+ 0xd8, 0x2b, 0x71, 0x5b, 0xe2, 0xd1, 0x5d, 0x39, 0xfb, 0x09, 0x1f, 0xa4, 0xca, 0xf9, 0xfe, 0x54,
+ 0x93, 0x3a, 0xd0, 0x36, 0x27, 0xc5, 0x77, 0x98, 0xaa, 0x22, 0xf3, 0x81, 0xeb, 0x73, 0x2a, 0xbf,
+ 0xe2, 0xbc, 0x30, 0xfb, 0x26, 0xe5, 0x99, 0x2c, 0xe3, 0x0b, 0x3a, 0xf6, 0xf4, 0x83, 0xa7, 0x1f,
+ 0x72, 0x19, 0xb7, 0x0f, 0xd2, 0x57, 0xce, 0xfa, 0xf2, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x97, 0x3c,
+ 0x9e, 0x25, 0x50, 0x02, 0x00, 0x00,
+}
diff --git a/orderer/etcdraft/configuration.pb.go b/orderer/etcdraft/configuration.pb.go
new file mode 100644
index 0000000..355c88a
--- /dev/null
+++ b/orderer/etcdraft/configuration.pb.go
@@ -0,0 +1,247 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: orderer/etcdraft/configuration.proto
+
+package etcdraft
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// ConfigMetadata is serialized and set as the value of ConsensusType.Metadata in
+// a channel configuration when the ConsensusType.Type is set "etcdraft".
+type ConfigMetadata struct {
+ Consenters []*Consenter `protobuf:"bytes,1,rep,name=consenters,proto3" json:"consenters,omitempty"`
+ Options *Options `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigMetadata) Reset() { *m = ConfigMetadata{} }
+func (m *ConfigMetadata) String() string { return proto.CompactTextString(m) }
+func (*ConfigMetadata) ProtoMessage() {}
+func (*ConfigMetadata) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6f12d215c949b072, []int{0}
+}
+
+func (m *ConfigMetadata) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigMetadata.Unmarshal(m, b)
+}
+func (m *ConfigMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigMetadata.Marshal(b, m, deterministic)
+}
+func (m *ConfigMetadata) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigMetadata.Merge(m, src)
+}
+func (m *ConfigMetadata) XXX_Size() int {
+ return xxx_messageInfo_ConfigMetadata.Size(m)
+}
+func (m *ConfigMetadata) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigMetadata proto.InternalMessageInfo
+
+func (m *ConfigMetadata) GetConsenters() []*Consenter {
+ if m != nil {
+ return m.Consenters
+ }
+ return nil
+}
+
+func (m *ConfigMetadata) GetOptions() *Options {
+ if m != nil {
+ return m.Options
+ }
+ return nil
+}
+
+// Consenter represents a consenting node (i.e. replica).
+type Consenter struct {
+ Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
+ Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
+ ClientTlsCert []byte `protobuf:"bytes,3,opt,name=client_tls_cert,json=clientTlsCert,proto3" json:"client_tls_cert,omitempty"`
+ ServerTlsCert []byte `protobuf:"bytes,4,opt,name=server_tls_cert,json=serverTlsCert,proto3" json:"server_tls_cert,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Consenter) Reset() { *m = Consenter{} }
+func (m *Consenter) String() string { return proto.CompactTextString(m) }
+func (*Consenter) ProtoMessage() {}
+func (*Consenter) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6f12d215c949b072, []int{1}
+}
+
+func (m *Consenter) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Consenter.Unmarshal(m, b)
+}
+func (m *Consenter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Consenter.Marshal(b, m, deterministic)
+}
+func (m *Consenter) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Consenter.Merge(m, src)
+}
+func (m *Consenter) XXX_Size() int {
+ return xxx_messageInfo_Consenter.Size(m)
+}
+func (m *Consenter) XXX_DiscardUnknown() {
+ xxx_messageInfo_Consenter.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Consenter proto.InternalMessageInfo
+
+func (m *Consenter) GetHost() string {
+ if m != nil {
+ return m.Host
+ }
+ return ""
+}
+
+func (m *Consenter) GetPort() uint32 {
+ if m != nil {
+ return m.Port
+ }
+ return 0
+}
+
+func (m *Consenter) GetClientTlsCert() []byte {
+ if m != nil {
+ return m.ClientTlsCert
+ }
+ return nil
+}
+
+func (m *Consenter) GetServerTlsCert() []byte {
+ if m != nil {
+ return m.ServerTlsCert
+ }
+ return nil
+}
+
+// Options to be specified for all the etcd/raft nodes. These can be modified on a
+// per-channel basis.
+type Options struct {
+ TickInterval string `protobuf:"bytes,1,opt,name=tick_interval,json=tickInterval,proto3" json:"tick_interval,omitempty"`
+ ElectionTick uint32 `protobuf:"varint,2,opt,name=election_tick,json=electionTick,proto3" json:"election_tick,omitempty"`
+ HeartbeatTick uint32 `protobuf:"varint,3,opt,name=heartbeat_tick,json=heartbeatTick,proto3" json:"heartbeat_tick,omitempty"`
+ MaxInflightBlocks uint32 `protobuf:"varint,4,opt,name=max_inflight_blocks,json=maxInflightBlocks,proto3" json:"max_inflight_blocks,omitempty"`
+ // Take snapshot when cumulative data exceeds certain size in bytes.
+ SnapshotIntervalSize uint32 `protobuf:"varint,5,opt,name=snapshot_interval_size,json=snapshotIntervalSize,proto3" json:"snapshot_interval_size,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Options) Reset() { *m = Options{} }
+func (m *Options) String() string { return proto.CompactTextString(m) }
+func (*Options) ProtoMessage() {}
+func (*Options) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6f12d215c949b072, []int{2}
+}
+
+func (m *Options) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Options.Unmarshal(m, b)
+}
+func (m *Options) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Options.Marshal(b, m, deterministic)
+}
+func (m *Options) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Options.Merge(m, src)
+}
+func (m *Options) XXX_Size() int {
+ return xxx_messageInfo_Options.Size(m)
+}
+func (m *Options) XXX_DiscardUnknown() {
+ xxx_messageInfo_Options.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Options proto.InternalMessageInfo
+
+func (m *Options) GetTickInterval() string {
+ if m != nil {
+ return m.TickInterval
+ }
+ return ""
+}
+
+func (m *Options) GetElectionTick() uint32 {
+ if m != nil {
+ return m.ElectionTick
+ }
+ return 0
+}
+
+func (m *Options) GetHeartbeatTick() uint32 {
+ if m != nil {
+ return m.HeartbeatTick
+ }
+ return 0
+}
+
+func (m *Options) GetMaxInflightBlocks() uint32 {
+ if m != nil {
+ return m.MaxInflightBlocks
+ }
+ return 0
+}
+
+func (m *Options) GetSnapshotIntervalSize() uint32 {
+ if m != nil {
+ return m.SnapshotIntervalSize
+ }
+ return 0
+}
+
+func init() {
+ proto.RegisterType((*ConfigMetadata)(nil), "etcdraft.ConfigMetadata")
+ proto.RegisterType((*Consenter)(nil), "etcdraft.Consenter")
+ proto.RegisterType((*Options)(nil), "etcdraft.Options")
+}
+
+func init() {
+ proto.RegisterFile("orderer/etcdraft/configuration.proto", fileDescriptor_6f12d215c949b072)
+}
+
+var fileDescriptor_6f12d215c949b072 = []byte{
+ // 392 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x92, 0x4f, 0x6b, 0xdc, 0x30,
+ 0x10, 0xc5, 0x71, 0x37, 0x6d, 0x1a, 0x65, 0x9d, 0x12, 0xa5, 0x14, 0x1f, 0xcd, 0xf6, 0x0f, 0x86,
+ 0x12, 0x19, 0x92, 0x1e, 0x7a, 0xce, 0x9e, 0x72, 0x28, 0x05, 0x37, 0xa7, 0x5e, 0x8c, 0x2c, 0x8f,
+ 0x6d, 0x75, 0xb5, 0x96, 0x19, 0x4d, 0x42, 0x9a, 0x6b, 0xbf, 0x68, 0x3f, 0x4a, 0xb1, 0x64, 0x3b,
+ 0x4b, 0x6f, 0xc3, 0x7b, 0xbf, 0x37, 0x7a, 0xa0, 0x61, 0x1f, 0x2c, 0xd6, 0x80, 0x80, 0x39, 0x90,
+ 0xaa, 0x51, 0x36, 0x94, 0x2b, 0xdb, 0x37, 0xba, 0xbd, 0x47, 0x49, 0xda, 0xf6, 0x62, 0x40, 0x4b,
+ 0x96, 0xbf, 0x9e, 0xdd, 0x0d, 0xb2, 0xb3, 0xad, 0x07, 0xbe, 0x01, 0xc9, 0x5a, 0x92, 0xe4, 0xd7,
+ 0x8c, 0x29, 0xdb, 0x3b, 0xe8, 0x09, 0xd0, 0x25, 0x51, 0xba, 0xca, 0x4e, 0xaf, 0x2e, 0xc4, 0x1c,
+ 0x10, 0xdb, 0xd9, 0x2b, 0x0e, 0x30, 0xfe, 0x99, 0x1d, 0xdb, 0x61, 0x7c, 0xc0, 0x25, 0x2f, 0xd2,
+ 0x28, 0x3b, 0xbd, 0x3a, 0x7f, 0x4e, 0x7c, 0x0f, 0x46, 0x31, 0x13, 0x9b, 0x3f, 0x11, 0x3b, 0x59,
+ 0xd6, 0x70, 0xce, 0x8e, 0x3a, 0xeb, 0x28, 0x89, 0xd2, 0x28, 0x3b, 0x29, 0xfc, 0x3c, 0x6a, 0x83,
+ 0x45, 0xf2, 0xbb, 0xe2, 0xc2, 0xcf, 0xfc, 0x13, 0x7b, 0xa3, 0x8c, 0x86, 0x9e, 0x4a, 0x32, 0xae,
+ 0x54, 0x80, 0x94, 0xac, 0xd2, 0x28, 0x5b, 0x17, 0x71, 0x90, 0xef, 0x8c, 0xdb, 0x42, 0xe0, 0x1c,
+ 0xe0, 0x03, 0xe0, 0x33, 0x77, 0x14, 0xb8, 0x20, 0x4f, 0xdc, 0xe6, 0x6f, 0xc4, 0x8e, 0xa7, 0x6a,
+ 0xfc, 0x3d, 0x8b, 0x49, 0xab, 0x5d, 0xa9, 0xc7, 0x46, 0x0f, 0xd2, 0x4c, 0x65, 0xd6, 0xa3, 0x78,
+ 0x3b, 0x69, 0x23, 0x04, 0x06, 0xd4, 0x98, 0x28, 0x47, 0x63, 0x6a, 0xb7, 0x9e, 0xc5, 0x3b, 0xad,
+ 0x76, 0xfc, 0x23, 0x3b, 0xeb, 0x40, 0x22, 0x55, 0x20, 0x29, 0x50, 0x2b, 0x4f, 0xc5, 0x8b, 0xea,
+ 0x31, 0xc1, 0x2e, 0xf6, 0xf2, 0xb1, 0xd4, 0x7d, 0x63, 0x74, 0xdb, 0x51, 0x59, 0x19, 0xab, 0x76,
+ 0xce, 0x17, 0x8d, 0x8b, 0xf3, 0xbd, 0x7c, 0xbc, 0x9d, 0x9c, 0x1b, 0x6f, 0xf0, 0x2f, 0xec, 0x9d,
+ 0xeb, 0xe5, 0xe0, 0x3a, 0x4b, 0x4b, 0xc9, 0xd2, 0xe9, 0x27, 0x48, 0x5e, 0xfa, 0xc8, 0xdb, 0xd9,
+ 0x9d, 0xdb, 0xfe, 0xd0, 0x4f, 0x70, 0xf3, 0x8b, 0x09, 0x8b, 0xad, 0xe8, 0x7e, 0x0f, 0x80, 0x06,
+ 0xea, 0x16, 0x50, 0x34, 0xb2, 0x42, 0xad, 0xc2, 0x19, 0x38, 0x31, 0x1d, 0xcb, 0xf2, 0x57, 0x3f,
+ 0xbf, 0xb6, 0x9a, 0xba, 0xfb, 0x4a, 0x28, 0xbb, 0xcf, 0x0f, 0x62, 0x79, 0x88, 0x5d, 0x86, 0xd8,
+ 0x65, 0x6b, 0xf3, 0xff, 0xcf, 0xac, 0x7a, 0xe5, 0xbd, 0xeb, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff,
+ 0x25, 0x12, 0x78, 0xc2, 0x81, 0x02, 0x00, 0x00,
+}
diff --git a/orderer/etcdraft/metadata.pb.go b/orderer/etcdraft/metadata.pb.go
new file mode 100644
index 0000000..9eead96
--- /dev/null
+++ b/orderer/etcdraft/metadata.pb.go
@@ -0,0 +1,152 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: orderer/etcdraft/metadata.proto
+
+package etcdraft
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// BlockMetadata stores data used by the Raft OSNs when
+// coordinating with each other, to be serialized into
+// block meta dta field and used after failres and restarts.
+type BlockMetadata struct {
+ // Maintains a mapping between the cluster's OSNs
+ // and their Raft IDs.
+ ConsenterIds []uint64 `protobuf:"varint,1,rep,packed,name=consenter_ids,json=consenterIds,proto3" json:"consenter_ids,omitempty"`
+ // Carries the Raft ID value that will be assigned
+ // to the next OSN that will join this cluster.
+ NextConsenterId uint64 `protobuf:"varint,2,opt,name=next_consenter_id,json=nextConsenterId,proto3" json:"next_consenter_id,omitempty"`
+ // Index of etcd/raft entry for current block.
+ RaftIndex uint64 `protobuf:"varint,3,opt,name=raft_index,json=raftIndex,proto3" json:"raft_index,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *BlockMetadata) Reset() { *m = BlockMetadata{} }
+func (m *BlockMetadata) String() string { return proto.CompactTextString(m) }
+func (*BlockMetadata) ProtoMessage() {}
+func (*BlockMetadata) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6d0323e5051228ea, []int{0}
+}
+
+func (m *BlockMetadata) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_BlockMetadata.Unmarshal(m, b)
+}
+func (m *BlockMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_BlockMetadata.Marshal(b, m, deterministic)
+}
+func (m *BlockMetadata) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BlockMetadata.Merge(m, src)
+}
+func (m *BlockMetadata) XXX_Size() int {
+ return xxx_messageInfo_BlockMetadata.Size(m)
+}
+func (m *BlockMetadata) XXX_DiscardUnknown() {
+ xxx_messageInfo_BlockMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_BlockMetadata proto.InternalMessageInfo
+
+func (m *BlockMetadata) GetConsenterIds() []uint64 {
+ if m != nil {
+ return m.ConsenterIds
+ }
+ return nil
+}
+
+func (m *BlockMetadata) GetNextConsenterId() uint64 {
+ if m != nil {
+ return m.NextConsenterId
+ }
+ return 0
+}
+
+func (m *BlockMetadata) GetRaftIndex() uint64 {
+ if m != nil {
+ return m.RaftIndex
+ }
+ return 0
+}
+
+// ClusterMetadata encapsulates metadata that is exchanged among cluster nodes
+type ClusterMetadata struct {
+ // Indicates active nodes in cluster that are reacheable by Raft leader
+ ActiveNodes []uint64 `protobuf:"varint,1,rep,packed,name=active_nodes,json=activeNodes,proto3" json:"active_nodes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ClusterMetadata) Reset() { *m = ClusterMetadata{} }
+func (m *ClusterMetadata) String() string { return proto.CompactTextString(m) }
+func (*ClusterMetadata) ProtoMessage() {}
+func (*ClusterMetadata) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6d0323e5051228ea, []int{1}
+}
+
+func (m *ClusterMetadata) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ClusterMetadata.Unmarshal(m, b)
+}
+func (m *ClusterMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ClusterMetadata.Marshal(b, m, deterministic)
+}
+func (m *ClusterMetadata) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ClusterMetadata.Merge(m, src)
+}
+func (m *ClusterMetadata) XXX_Size() int {
+ return xxx_messageInfo_ClusterMetadata.Size(m)
+}
+func (m *ClusterMetadata) XXX_DiscardUnknown() {
+ xxx_messageInfo_ClusterMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ClusterMetadata proto.InternalMessageInfo
+
+func (m *ClusterMetadata) GetActiveNodes() []uint64 {
+ if m != nil {
+ return m.ActiveNodes
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*BlockMetadata)(nil), "etcdraft.BlockMetadata")
+ proto.RegisterType((*ClusterMetadata)(nil), "etcdraft.ClusterMetadata")
+}
+
+func init() { proto.RegisterFile("orderer/etcdraft/metadata.proto", fileDescriptor_6d0323e5051228ea) }
+
+var fileDescriptor_6d0323e5051228ea = []byte{
+ // 244 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x90, 0xbf, 0x4f, 0x32, 0x41,
+ 0x10, 0x86, 0xc3, 0x07, 0xf9, 0xa2, 0x23, 0x84, 0x78, 0xd5, 0x35, 0x46, 0xc4, 0x86, 0x98, 0xb0,
+ 0x5b, 0x68, 0x61, 0x0d, 0x15, 0x85, 0x16, 0x94, 0x36, 0x97, 0xbd, 0xdd, 0xe1, 0x58, 0x3d, 0x76,
+ 0xc8, 0xec, 0x60, 0xb0, 0xf2, 0x5f, 0x37, 0xcb, 0x71, 0x48, 0x6c, 0x9f, 0xf7, 0x79, 0x33, 0x3f,
+ 0xe0, 0x96, 0xd8, 0x21, 0x23, 0x6b, 0x14, 0xeb, 0xd8, 0xac, 0x44, 0x6f, 0x50, 0x8c, 0x33, 0x62,
+ 0xd4, 0x96, 0x49, 0x28, 0xbb, 0x68, 0x83, 0xf1, 0x37, 0x0c, 0x66, 0x35, 0xd9, 0x8f, 0x97, 0xa3,
+ 0x90, 0xdd, 0xc3, 0xc0, 0x52, 0x88, 0x18, 0x04, 0xb9, 0xf0, 0x2e, 0xe6, 0x9d, 0x51, 0x77, 0xd2,
+ 0x5b, 0xf6, 0x4f, 0x70, 0xe1, 0x62, 0xf6, 0x00, 0xd7, 0x01, 0xf7, 0x52, 0x9c, 0x9b, 0xf9, 0xbf,
+ 0x51, 0x67, 0xd2, 0x5b, 0x0e, 0x53, 0x30, 0xff, 0x95, 0xb3, 0x1b, 0x80, 0x34, 0xa9, 0xf0, 0xc1,
+ 0xe1, 0x3e, 0xef, 0x1e, 0xa4, 0xcb, 0x44, 0x16, 0x09, 0x8c, 0x9f, 0x60, 0x38, 0xaf, 0x77, 0x51,
+ 0x90, 0x4f, 0x2b, 0xdc, 0x41, 0xdf, 0x58, 0xf1, 0x9f, 0x58, 0x04, 0x72, 0xd8, 0x6e, 0x70, 0xd5,
+ 0xb0, 0xd7, 0x84, 0x66, 0xef, 0xa0, 0x88, 0x2b, 0xb5, 0xfe, 0xda, 0x22, 0xd7, 0xe8, 0x2a, 0x64,
+ 0xb5, 0x32, 0x25, 0x7b, 0xdb, 0x1c, 0x18, 0xd5, 0xf1, 0x03, 0xaa, 0x3d, 0xf4, 0xed, 0xb9, 0xf2,
+ 0xb2, 0xde, 0x95, 0xca, 0xd2, 0x46, 0x9f, 0xd5, 0x74, 0x53, 0x9b, 0x36, 0xb5, 0x69, 0x45, 0xfa,
+ 0xef, 0xef, 0xca, 0xff, 0x87, 0xec, 0xf1, 0x27, 0x00, 0x00, 0xff, 0xff, 0xcf, 0xbd, 0xfc, 0x44,
+ 0x56, 0x01, 0x00, 0x00,
+}
diff --git a/orderer/kafka.pb.go b/orderer/kafka.pb.go
new file mode 100644
index 0000000..6ab50d2
--- /dev/null
+++ b/orderer/kafka.pb.go
@@ -0,0 +1,410 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: orderer/kafka.proto
+
+package orderer
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type KafkaMessageRegular_Class int32
+
+const (
+ KafkaMessageRegular_UNKNOWN KafkaMessageRegular_Class = 0
+ KafkaMessageRegular_NORMAL KafkaMessageRegular_Class = 1
+ KafkaMessageRegular_CONFIG KafkaMessageRegular_Class = 2
+)
+
+var KafkaMessageRegular_Class_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "NORMAL",
+ 2: "CONFIG",
+}
+
+var KafkaMessageRegular_Class_value = map[string]int32{
+ "UNKNOWN": 0,
+ "NORMAL": 1,
+ "CONFIG": 2,
+}
+
+func (x KafkaMessageRegular_Class) String() string {
+ return proto.EnumName(KafkaMessageRegular_Class_name, int32(x))
+}
+
+func (KafkaMessageRegular_Class) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_44ca1a6a801d36ec, []int{1, 0}
+}
+
+// KafkaMessage is a wrapper type for the messages
+// that the Kafka-based orderer deals with.
+type KafkaMessage struct {
+ // Types that are valid to be assigned to Type:
+ // *KafkaMessage_Regular
+ // *KafkaMessage_TimeToCut
+ // *KafkaMessage_Connect
+ Type isKafkaMessage_Type `protobuf_oneof:"Type"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KafkaMessage) Reset() { *m = KafkaMessage{} }
+func (m *KafkaMessage) String() string { return proto.CompactTextString(m) }
+func (*KafkaMessage) ProtoMessage() {}
+func (*KafkaMessage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_44ca1a6a801d36ec, []int{0}
+}
+
+func (m *KafkaMessage) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KafkaMessage.Unmarshal(m, b)
+}
+func (m *KafkaMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KafkaMessage.Marshal(b, m, deterministic)
+}
+func (m *KafkaMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KafkaMessage.Merge(m, src)
+}
+func (m *KafkaMessage) XXX_Size() int {
+ return xxx_messageInfo_KafkaMessage.Size(m)
+}
+func (m *KafkaMessage) XXX_DiscardUnknown() {
+ xxx_messageInfo_KafkaMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KafkaMessage proto.InternalMessageInfo
+
+type isKafkaMessage_Type interface {
+ isKafkaMessage_Type()
+}
+
+type KafkaMessage_Regular struct {
+ Regular *KafkaMessageRegular `protobuf:"bytes,1,opt,name=regular,proto3,oneof"`
+}
+
+type KafkaMessage_TimeToCut struct {
+ TimeToCut *KafkaMessageTimeToCut `protobuf:"bytes,2,opt,name=time_to_cut,json=timeToCut,proto3,oneof"`
+}
+
+type KafkaMessage_Connect struct {
+ Connect *KafkaMessageConnect `protobuf:"bytes,3,opt,name=connect,proto3,oneof"`
+}
+
+func (*KafkaMessage_Regular) isKafkaMessage_Type() {}
+
+func (*KafkaMessage_TimeToCut) isKafkaMessage_Type() {}
+
+func (*KafkaMessage_Connect) isKafkaMessage_Type() {}
+
+func (m *KafkaMessage) GetType() isKafkaMessage_Type {
+ if m != nil {
+ return m.Type
+ }
+ return nil
+}
+
+func (m *KafkaMessage) GetRegular() *KafkaMessageRegular {
+ if x, ok := m.GetType().(*KafkaMessage_Regular); ok {
+ return x.Regular
+ }
+ return nil
+}
+
+func (m *KafkaMessage) GetTimeToCut() *KafkaMessageTimeToCut {
+ if x, ok := m.GetType().(*KafkaMessage_TimeToCut); ok {
+ return x.TimeToCut
+ }
+ return nil
+}
+
+func (m *KafkaMessage) GetConnect() *KafkaMessageConnect {
+ if x, ok := m.GetType().(*KafkaMessage_Connect); ok {
+ return x.Connect
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*KafkaMessage) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*KafkaMessage_Regular)(nil),
+ (*KafkaMessage_TimeToCut)(nil),
+ (*KafkaMessage_Connect)(nil),
+ }
+}
+
+// KafkaMessageRegular wraps a marshalled envelope.
+type KafkaMessageRegular struct {
+ Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
+ ConfigSeq uint64 `protobuf:"varint,2,opt,name=config_seq,json=configSeq,proto3" json:"config_seq,omitempty"`
+ Class KafkaMessageRegular_Class `protobuf:"varint,3,opt,name=class,proto3,enum=orderer.KafkaMessageRegular_Class" json:"class,omitempty"`
+ OriginalOffset int64 `protobuf:"varint,4,opt,name=original_offset,json=originalOffset,proto3" json:"original_offset,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KafkaMessageRegular) Reset() { *m = KafkaMessageRegular{} }
+func (m *KafkaMessageRegular) String() string { return proto.CompactTextString(m) }
+func (*KafkaMessageRegular) ProtoMessage() {}
+func (*KafkaMessageRegular) Descriptor() ([]byte, []int) {
+ return fileDescriptor_44ca1a6a801d36ec, []int{1}
+}
+
+func (m *KafkaMessageRegular) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KafkaMessageRegular.Unmarshal(m, b)
+}
+func (m *KafkaMessageRegular) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KafkaMessageRegular.Marshal(b, m, deterministic)
+}
+func (m *KafkaMessageRegular) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KafkaMessageRegular.Merge(m, src)
+}
+func (m *KafkaMessageRegular) XXX_Size() int {
+ return xxx_messageInfo_KafkaMessageRegular.Size(m)
+}
+func (m *KafkaMessageRegular) XXX_DiscardUnknown() {
+ xxx_messageInfo_KafkaMessageRegular.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KafkaMessageRegular proto.InternalMessageInfo
+
+func (m *KafkaMessageRegular) GetPayload() []byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+func (m *KafkaMessageRegular) GetConfigSeq() uint64 {
+ if m != nil {
+ return m.ConfigSeq
+ }
+ return 0
+}
+
+func (m *KafkaMessageRegular) GetClass() KafkaMessageRegular_Class {
+ if m != nil {
+ return m.Class
+ }
+ return KafkaMessageRegular_UNKNOWN
+}
+
+func (m *KafkaMessageRegular) GetOriginalOffset() int64 {
+ if m != nil {
+ return m.OriginalOffset
+ }
+ return 0
+}
+
+// KafkaMessageTimeToCut is used to signal to the orderers
+// that it is time to cut block .
+type KafkaMessageTimeToCut struct {
+ BlockNumber uint64 `protobuf:"varint,1,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KafkaMessageTimeToCut) Reset() { *m = KafkaMessageTimeToCut{} }
+func (m *KafkaMessageTimeToCut) String() string { return proto.CompactTextString(m) }
+func (*KafkaMessageTimeToCut) ProtoMessage() {}
+func (*KafkaMessageTimeToCut) Descriptor() ([]byte, []int) {
+ return fileDescriptor_44ca1a6a801d36ec, []int{2}
+}
+
+func (m *KafkaMessageTimeToCut) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KafkaMessageTimeToCut.Unmarshal(m, b)
+}
+func (m *KafkaMessageTimeToCut) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KafkaMessageTimeToCut.Marshal(b, m, deterministic)
+}
+func (m *KafkaMessageTimeToCut) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KafkaMessageTimeToCut.Merge(m, src)
+}
+func (m *KafkaMessageTimeToCut) XXX_Size() int {
+ return xxx_messageInfo_KafkaMessageTimeToCut.Size(m)
+}
+func (m *KafkaMessageTimeToCut) XXX_DiscardUnknown() {
+ xxx_messageInfo_KafkaMessageTimeToCut.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KafkaMessageTimeToCut proto.InternalMessageInfo
+
+func (m *KafkaMessageTimeToCut) GetBlockNumber() uint64 {
+ if m != nil {
+ return m.BlockNumber
+ }
+ return 0
+}
+
+// KafkaMessageConnect is posted by an orderer upon booting up.
+// It is used to prevent the panic that would be caused if we
+// were to consume an empty partition. It is ignored by all
+// orderers when processing the partition.
+type KafkaMessageConnect struct {
+ Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KafkaMessageConnect) Reset() { *m = KafkaMessageConnect{} }
+func (m *KafkaMessageConnect) String() string { return proto.CompactTextString(m) }
+func (*KafkaMessageConnect) ProtoMessage() {}
+func (*KafkaMessageConnect) Descriptor() ([]byte, []int) {
+ return fileDescriptor_44ca1a6a801d36ec, []int{3}
+}
+
+func (m *KafkaMessageConnect) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KafkaMessageConnect.Unmarshal(m, b)
+}
+func (m *KafkaMessageConnect) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KafkaMessageConnect.Marshal(b, m, deterministic)
+}
+func (m *KafkaMessageConnect) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KafkaMessageConnect.Merge(m, src)
+}
+func (m *KafkaMessageConnect) XXX_Size() int {
+ return xxx_messageInfo_KafkaMessageConnect.Size(m)
+}
+func (m *KafkaMessageConnect) XXX_DiscardUnknown() {
+ xxx_messageInfo_KafkaMessageConnect.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KafkaMessageConnect proto.InternalMessageInfo
+
+func (m *KafkaMessageConnect) GetPayload() []byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+// KafkaMetadata is encoded into the ORDERER block to keep track of
+// Kafka-related metadata associated with this block.
+type KafkaMetadata struct {
+ // LastOffsetPersisted is the encoded value for the Metadata message
+ // which is encoded in the ORDERER block metadata index for the case
+ // of the Kafka-based orderer.
+ LastOffsetPersisted int64 `protobuf:"varint,1,opt,name=last_offset_persisted,json=lastOffsetPersisted,proto3" json:"last_offset_persisted,omitempty"`
+ // LastOriginalOffsetProcessed is used to keep track of the newest
+ // offset processed if a message is re-validated and re-ordered.
+ // This value is used to deduplicate re-submitted messages from
+ // multiple orderer so that we don't bother re-processing it again.
+ LastOriginalOffsetProcessed int64 `protobuf:"varint,2,opt,name=last_original_offset_processed,json=lastOriginalOffsetProcessed,proto3" json:"last_original_offset_processed,omitempty"`
+ // LastResubmittedConfigOffset is used to capture the newest offset of
+ // CONFIG kafka message, which is revalidated and resubmitted. By comparing
+ // this with LastOriginalOffsetProcessed, we could detemine whether there
+ // are still CONFIG messages that have been resubmitted but NOT processed
+ // yet. It's used as condition to block ingress messages, so we could reduce
+ // the overhead of repeatedly resubmitting messages as config seq keeps
+ // advancing.
+ LastResubmittedConfigOffset int64 `protobuf:"varint,3,opt,name=last_resubmitted_config_offset,json=lastResubmittedConfigOffset,proto3" json:"last_resubmitted_config_offset,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *KafkaMetadata) Reset() { *m = KafkaMetadata{} }
+func (m *KafkaMetadata) String() string { return proto.CompactTextString(m) }
+func (*KafkaMetadata) ProtoMessage() {}
+func (*KafkaMetadata) Descriptor() ([]byte, []int) {
+ return fileDescriptor_44ca1a6a801d36ec, []int{4}
+}
+
+func (m *KafkaMetadata) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_KafkaMetadata.Unmarshal(m, b)
+}
+func (m *KafkaMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_KafkaMetadata.Marshal(b, m, deterministic)
+}
+func (m *KafkaMetadata) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KafkaMetadata.Merge(m, src)
+}
+func (m *KafkaMetadata) XXX_Size() int {
+ return xxx_messageInfo_KafkaMetadata.Size(m)
+}
+func (m *KafkaMetadata) XXX_DiscardUnknown() {
+ xxx_messageInfo_KafkaMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_KafkaMetadata proto.InternalMessageInfo
+
+func (m *KafkaMetadata) GetLastOffsetPersisted() int64 {
+ if m != nil {
+ return m.LastOffsetPersisted
+ }
+ return 0
+}
+
+func (m *KafkaMetadata) GetLastOriginalOffsetProcessed() int64 {
+ if m != nil {
+ return m.LastOriginalOffsetProcessed
+ }
+ return 0
+}
+
+func (m *KafkaMetadata) GetLastResubmittedConfigOffset() int64 {
+ if m != nil {
+ return m.LastResubmittedConfigOffset
+ }
+ return 0
+}
+
+func init() {
+ proto.RegisterEnum("orderer.KafkaMessageRegular_Class", KafkaMessageRegular_Class_name, KafkaMessageRegular_Class_value)
+ proto.RegisterType((*KafkaMessage)(nil), "orderer.KafkaMessage")
+ proto.RegisterType((*KafkaMessageRegular)(nil), "orderer.KafkaMessageRegular")
+ proto.RegisterType((*KafkaMessageTimeToCut)(nil), "orderer.KafkaMessageTimeToCut")
+ proto.RegisterType((*KafkaMessageConnect)(nil), "orderer.KafkaMessageConnect")
+ proto.RegisterType((*KafkaMetadata)(nil), "orderer.KafkaMetadata")
+}
+
+func init() { proto.RegisterFile("orderer/kafka.proto", fileDescriptor_44ca1a6a801d36ec) }
+
+var fileDescriptor_44ca1a6a801d36ec = []byte{
+ // 479 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x93, 0xd1, 0x6e, 0xd3, 0x30,
+ 0x14, 0x86, 0x9b, 0xb5, 0x6b, 0xb5, 0xd3, 0x32, 0x2a, 0x57, 0x93, 0x2a, 0x01, 0xd3, 0x88, 0x84,
+ 0xd8, 0x05, 0x4b, 0xa4, 0x72, 0x33, 0x71, 0x05, 0x8b, 0x04, 0x43, 0x63, 0xe9, 0x64, 0x8a, 0x40,
+ 0xdc, 0x44, 0x4e, 0x72, 0x92, 0x45, 0x4d, 0xe2, 0xcc, 0x76, 0x2e, 0xfa, 0x8e, 0xf0, 0x0c, 0xbc,
+ 0x0a, 0x8a, 0x9d, 0xb0, 0x55, 0x2a, 0xbb, 0x8b, 0x7f, 0x7f, 0xbf, 0xcf, 0x39, 0xff, 0x51, 0x60,
+ 0xc6, 0x45, 0x8c, 0x02, 0x85, 0xbb, 0x66, 0xc9, 0x9a, 0x39, 0x95, 0xe0, 0x8a, 0x93, 0x51, 0x2b,
+ 0xda, 0xbf, 0x2c, 0x98, 0x5c, 0x35, 0x17, 0xd7, 0x28, 0x25, 0x4b, 0x91, 0x9c, 0xc3, 0x48, 0x60,
+ 0x5a, 0xe7, 0x4c, 0xcc, 0xad, 0x13, 0xeb, 0x74, 0xbc, 0x78, 0xee, 0xb4, 0xac, 0xf3, 0x90, 0xa3,
+ 0x86, 0xb9, 0xec, 0xd1, 0x0e, 0x27, 0xef, 0x61, 0xac, 0xb2, 0x02, 0x03, 0xc5, 0x83, 0xa8, 0x56,
+ 0xf3, 0x3d, 0xed, 0x3e, 0xde, 0xe9, 0x5e, 0x65, 0x05, 0xae, 0xb8, 0x57, 0xab, 0xcb, 0x1e, 0x3d,
+ 0x50, 0xdd, 0xa1, 0xa9, 0x1d, 0xf1, 0xb2, 0xc4, 0x48, 0xcd, 0xfb, 0x8f, 0xd4, 0xf6, 0x0c, 0xd3,
+ 0xd4, 0x6e, 0xf1, 0x8b, 0x21, 0x0c, 0x56, 0x9b, 0x0a, 0xed, 0x3f, 0x16, 0xcc, 0x76, 0xb4, 0x49,
+ 0xe6, 0x30, 0xaa, 0xd8, 0x26, 0xe7, 0x2c, 0xd6, 0x53, 0x4d, 0x68, 0x77, 0x24, 0x2f, 0x00, 0x22,
+ 0x5e, 0x26, 0x59, 0x1a, 0x48, 0xbc, 0xd3, 0x4d, 0x0f, 0xe8, 0x81, 0x51, 0xbe, 0xe2, 0x1d, 0x39,
+ 0x87, 0xfd, 0x28, 0x67, 0x52, 0xea, 0x86, 0x0e, 0x17, 0xf6, 0x63, 0x61, 0x38, 0x5e, 0x43, 0x52,
+ 0x63, 0x20, 0xaf, 0xe1, 0x29, 0x17, 0x59, 0x9a, 0x95, 0x2c, 0x0f, 0x78, 0x92, 0x48, 0x54, 0xf3,
+ 0xc1, 0x89, 0x75, 0xda, 0xa7, 0x87, 0x9d, 0xbc, 0xd4, 0xaa, 0xfd, 0x06, 0xf6, 0xb5, 0x91, 0x8c,
+ 0x61, 0xf4, 0xcd, 0xbf, 0xf2, 0x97, 0xdf, 0xfd, 0x69, 0x8f, 0x00, 0x0c, 0xfd, 0x25, 0xbd, 0xfe,
+ 0xf0, 0x65, 0x6a, 0x35, 0xdf, 0xde, 0xd2, 0xff, 0xf8, 0xf9, 0xd3, 0x74, 0xcf, 0x7e, 0x07, 0x47,
+ 0x3b, 0x93, 0x24, 0x2f, 0x61, 0x12, 0xe6, 0x3c, 0x5a, 0x07, 0x65, 0x5d, 0x84, 0x68, 0xb6, 0x37,
+ 0xa0, 0x63, 0xad, 0xf9, 0x5a, 0xb2, 0xdd, 0xed, 0x70, 0xda, 0x1c, 0xff, 0x1f, 0x8e, 0xfd, 0xdb,
+ 0x82, 0x27, 0xad, 0x43, 0xb1, 0x98, 0x29, 0x46, 0x16, 0x70, 0x94, 0x33, 0xa9, 0xda, 0x89, 0x82,
+ 0x0a, 0x85, 0xcc, 0xa4, 0x42, 0xe3, 0xec, 0xd3, 0x59, 0x73, 0x69, 0xe6, 0xba, 0xe9, 0xae, 0x88,
+ 0x07, 0xc7, 0xc6, 0xb3, 0x1d, 0x47, 0x50, 0x09, 0x1e, 0xa1, 0x94, 0x18, 0xeb, 0xd8, 0xfb, 0xf4,
+ 0x99, 0x36, 0x6f, 0x85, 0x73, 0xd3, 0x21, 0xff, 0x1e, 0x11, 0x28, 0xeb, 0xb0, 0xc8, 0x94, 0xc2,
+ 0x38, 0x68, 0x17, 0xd7, 0xa6, 0xdb, 0xbf, 0x7f, 0x84, 0xde, 0x43, 0x9e, 0x66, 0xcc, 0x6b, 0x17,
+ 0x3f, 0xe0, 0x15, 0x17, 0xa9, 0x73, 0xbb, 0xa9, 0x50, 0xe4, 0x18, 0xa7, 0x28, 0x9c, 0x84, 0x85,
+ 0x22, 0x8b, 0xcc, 0x6f, 0x21, 0xbb, 0xed, 0xfe, 0x74, 0xd3, 0x4c, 0xdd, 0xd6, 0xa1, 0x13, 0xf1,
+ 0xc2, 0x7d, 0x40, 0xbb, 0x86, 0x3e, 0x33, 0xf4, 0x59, 0xca, 0xdd, 0xd6, 0x10, 0x0e, 0xb5, 0xf4,
+ 0xf6, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5a, 0xdf, 0x29, 0x90, 0x6e, 0x03, 0x00, 0x00,
+}
diff --git a/peer/chaincode.pb.go b/peer/chaincode.pb.go
new file mode 100644
index 0000000..dbab642
--- /dev/null
+++ b/peer/chaincode.pb.go
@@ -0,0 +1,429 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/chaincode.proto
+
+package peer
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type ChaincodeSpec_Type int32
+
+const (
+ ChaincodeSpec_UNDEFINED ChaincodeSpec_Type = 0
+ ChaincodeSpec_GOLANG ChaincodeSpec_Type = 1
+ ChaincodeSpec_NODE ChaincodeSpec_Type = 2
+ ChaincodeSpec_CAR ChaincodeSpec_Type = 3
+ ChaincodeSpec_JAVA ChaincodeSpec_Type = 4
+)
+
+var ChaincodeSpec_Type_name = map[int32]string{
+ 0: "UNDEFINED",
+ 1: "GOLANG",
+ 2: "NODE",
+ 3: "CAR",
+ 4: "JAVA",
+}
+
+var ChaincodeSpec_Type_value = map[string]int32{
+ "UNDEFINED": 0,
+ "GOLANG": 1,
+ "NODE": 2,
+ "CAR": 3,
+ "JAVA": 4,
+}
+
+func (x ChaincodeSpec_Type) String() string {
+ return proto.EnumName(ChaincodeSpec_Type_name, int32(x))
+}
+
+func (ChaincodeSpec_Type) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_202814c635ff5fee, []int{2, 0}
+}
+
+//ChaincodeID contains the path as specified by the deploy transaction
+//that created it as well as the hashCode that is generated by the
+//system for the path. From the user level (ie, CLI, REST API and so on)
+//deploy transaction is expected to provide the path and other requests
+//are expected to provide the hashCode. The other value will be ignored.
+//Internally, the structure could contain both values. For instance, the
+//hashCode will be set when first generated using the path
+type ChaincodeID struct {
+ //deploy transaction will use the path
+ Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
+ //all other requests will use the name (really a hashcode) generated by
+ //the deploy transaction
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+ //user friendly version name for the chaincode
+ Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeID) Reset() { *m = ChaincodeID{} }
+func (m *ChaincodeID) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeID) ProtoMessage() {}
+func (*ChaincodeID) Descriptor() ([]byte, []int) {
+ return fileDescriptor_202814c635ff5fee, []int{0}
+}
+
+func (m *ChaincodeID) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeID.Unmarshal(m, b)
+}
+func (m *ChaincodeID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeID.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeID) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeID.Merge(m, src)
+}
+func (m *ChaincodeID) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeID.Size(m)
+}
+func (m *ChaincodeID) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeID.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeID proto.InternalMessageInfo
+
+func (m *ChaincodeID) GetPath() string {
+ if m != nil {
+ return m.Path
+ }
+ return ""
+}
+
+func (m *ChaincodeID) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *ChaincodeID) GetVersion() string {
+ if m != nil {
+ return m.Version
+ }
+ return ""
+}
+
+// Carries the chaincode function and its arguments.
+// UnmarshalJSON in transaction.go converts the string-based REST/JSON input to
+// the []byte-based current ChaincodeInput structure.
+type ChaincodeInput struct {
+ Args [][]byte `protobuf:"bytes,1,rep,name=args,proto3" json:"args,omitempty"`
+ Decorations map[string][]byte `protobuf:"bytes,2,rep,name=decorations,proto3" json:"decorations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // is_init is used for the application to signal that an invocation is to be routed
+ // to the legacy 'Init' function for compatibility with chaincodes which handled
+ // Init in the old way. New applications should manage their initialized state
+ // themselves.
+ IsInit bool `protobuf:"varint,3,opt,name=is_init,json=isInit,proto3" json:"is_init,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeInput) Reset() { *m = ChaincodeInput{} }
+func (m *ChaincodeInput) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeInput) ProtoMessage() {}
+func (*ChaincodeInput) Descriptor() ([]byte, []int) {
+ return fileDescriptor_202814c635ff5fee, []int{1}
+}
+
+func (m *ChaincodeInput) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeInput.Unmarshal(m, b)
+}
+func (m *ChaincodeInput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeInput.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeInput) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeInput.Merge(m, src)
+}
+func (m *ChaincodeInput) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeInput.Size(m)
+}
+func (m *ChaincodeInput) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeInput.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeInput proto.InternalMessageInfo
+
+func (m *ChaincodeInput) GetArgs() [][]byte {
+ if m != nil {
+ return m.Args
+ }
+ return nil
+}
+
+func (m *ChaincodeInput) GetDecorations() map[string][]byte {
+ if m != nil {
+ return m.Decorations
+ }
+ return nil
+}
+
+func (m *ChaincodeInput) GetIsInit() bool {
+ if m != nil {
+ return m.IsInit
+ }
+ return false
+}
+
+// Carries the chaincode specification. This is the actual metadata required for
+// defining a chaincode.
+type ChaincodeSpec struct {
+ Type ChaincodeSpec_Type `protobuf:"varint,1,opt,name=type,proto3,enum=protos.ChaincodeSpec_Type" json:"type,omitempty"`
+ ChaincodeId *ChaincodeID `protobuf:"bytes,2,opt,name=chaincode_id,json=chaincodeId,proto3" json:"chaincode_id,omitempty"`
+ Input *ChaincodeInput `protobuf:"bytes,3,opt,name=input,proto3" json:"input,omitempty"`
+ Timeout int32 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeSpec) Reset() { *m = ChaincodeSpec{} }
+func (m *ChaincodeSpec) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeSpec) ProtoMessage() {}
+func (*ChaincodeSpec) Descriptor() ([]byte, []int) {
+ return fileDescriptor_202814c635ff5fee, []int{2}
+}
+
+func (m *ChaincodeSpec) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeSpec.Unmarshal(m, b)
+}
+func (m *ChaincodeSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeSpec.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeSpec) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeSpec.Merge(m, src)
+}
+func (m *ChaincodeSpec) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeSpec.Size(m)
+}
+func (m *ChaincodeSpec) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeSpec.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeSpec proto.InternalMessageInfo
+
+func (m *ChaincodeSpec) GetType() ChaincodeSpec_Type {
+ if m != nil {
+ return m.Type
+ }
+ return ChaincodeSpec_UNDEFINED
+}
+
+func (m *ChaincodeSpec) GetChaincodeId() *ChaincodeID {
+ if m != nil {
+ return m.ChaincodeId
+ }
+ return nil
+}
+
+func (m *ChaincodeSpec) GetInput() *ChaincodeInput {
+ if m != nil {
+ return m.Input
+ }
+ return nil
+}
+
+func (m *ChaincodeSpec) GetTimeout() int32 {
+ if m != nil {
+ return m.Timeout
+ }
+ return 0
+}
+
+// Specify the deployment of a chaincode.
+// TODO: Define `codePackage`.
+type ChaincodeDeploymentSpec struct {
+ ChaincodeSpec *ChaincodeSpec `protobuf:"bytes,1,opt,name=chaincode_spec,json=chaincodeSpec,proto3" json:"chaincode_spec,omitempty"`
+ CodePackage []byte `protobuf:"bytes,3,opt,name=code_package,json=codePackage,proto3" json:"code_package,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeDeploymentSpec) Reset() { *m = ChaincodeDeploymentSpec{} }
+func (m *ChaincodeDeploymentSpec) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeDeploymentSpec) ProtoMessage() {}
+func (*ChaincodeDeploymentSpec) Descriptor() ([]byte, []int) {
+ return fileDescriptor_202814c635ff5fee, []int{3}
+}
+
+func (m *ChaincodeDeploymentSpec) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeDeploymentSpec.Unmarshal(m, b)
+}
+func (m *ChaincodeDeploymentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeDeploymentSpec.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeDeploymentSpec) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeDeploymentSpec.Merge(m, src)
+}
+func (m *ChaincodeDeploymentSpec) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeDeploymentSpec.Size(m)
+}
+func (m *ChaincodeDeploymentSpec) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeDeploymentSpec.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeDeploymentSpec proto.InternalMessageInfo
+
+func (m *ChaincodeDeploymentSpec) GetChaincodeSpec() *ChaincodeSpec {
+ if m != nil {
+ return m.ChaincodeSpec
+ }
+ return nil
+}
+
+func (m *ChaincodeDeploymentSpec) GetCodePackage() []byte {
+ if m != nil {
+ return m.CodePackage
+ }
+ return nil
+}
+
+// Carries the chaincode function and its arguments.
+type ChaincodeInvocationSpec struct {
+ ChaincodeSpec *ChaincodeSpec `protobuf:"bytes,1,opt,name=chaincode_spec,json=chaincodeSpec,proto3" json:"chaincode_spec,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeInvocationSpec) Reset() { *m = ChaincodeInvocationSpec{} }
+func (m *ChaincodeInvocationSpec) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeInvocationSpec) ProtoMessage() {}
+func (*ChaincodeInvocationSpec) Descriptor() ([]byte, []int) {
+ return fileDescriptor_202814c635ff5fee, []int{4}
+}
+
+func (m *ChaincodeInvocationSpec) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeInvocationSpec.Unmarshal(m, b)
+}
+func (m *ChaincodeInvocationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeInvocationSpec.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeInvocationSpec) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeInvocationSpec.Merge(m, src)
+}
+func (m *ChaincodeInvocationSpec) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeInvocationSpec.Size(m)
+}
+func (m *ChaincodeInvocationSpec) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeInvocationSpec.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeInvocationSpec proto.InternalMessageInfo
+
+func (m *ChaincodeInvocationSpec) GetChaincodeSpec() *ChaincodeSpec {
+ if m != nil {
+ return m.ChaincodeSpec
+ }
+ return nil
+}
+
+// LifecycleEvent is used as the payload of the chaincode event emitted by LSCC
+type LifecycleEvent struct {
+ ChaincodeName string `protobuf:"bytes,1,opt,name=chaincode_name,json=chaincodeName,proto3" json:"chaincode_name,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *LifecycleEvent) Reset() { *m = LifecycleEvent{} }
+func (m *LifecycleEvent) String() string { return proto.CompactTextString(m) }
+func (*LifecycleEvent) ProtoMessage() {}
+func (*LifecycleEvent) Descriptor() ([]byte, []int) {
+ return fileDescriptor_202814c635ff5fee, []int{5}
+}
+
+func (m *LifecycleEvent) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_LifecycleEvent.Unmarshal(m, b)
+}
+func (m *LifecycleEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_LifecycleEvent.Marshal(b, m, deterministic)
+}
+func (m *LifecycleEvent) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_LifecycleEvent.Merge(m, src)
+}
+func (m *LifecycleEvent) XXX_Size() int {
+ return xxx_messageInfo_LifecycleEvent.Size(m)
+}
+func (m *LifecycleEvent) XXX_DiscardUnknown() {
+ xxx_messageInfo_LifecycleEvent.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_LifecycleEvent proto.InternalMessageInfo
+
+func (m *LifecycleEvent) GetChaincodeName() string {
+ if m != nil {
+ return m.ChaincodeName
+ }
+ return ""
+}
+
+func init() {
+ proto.RegisterEnum("protos.ChaincodeSpec_Type", ChaincodeSpec_Type_name, ChaincodeSpec_Type_value)
+ proto.RegisterType((*ChaincodeID)(nil), "protos.ChaincodeID")
+ proto.RegisterType((*ChaincodeInput)(nil), "protos.ChaincodeInput")
+ proto.RegisterMapType((map[string][]byte)(nil), "protos.ChaincodeInput.DecorationsEntry")
+ proto.RegisterType((*ChaincodeSpec)(nil), "protos.ChaincodeSpec")
+ proto.RegisterType((*ChaincodeDeploymentSpec)(nil), "protos.ChaincodeDeploymentSpec")
+ proto.RegisterType((*ChaincodeInvocationSpec)(nil), "protos.ChaincodeInvocationSpec")
+ proto.RegisterType((*LifecycleEvent)(nil), "protos.LifecycleEvent")
+}
+
+func init() { proto.RegisterFile("peer/chaincode.proto", fileDescriptor_202814c635ff5fee) }
+
+var fileDescriptor_202814c635ff5fee = []byte{
+ // 560 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x53, 0x4d, 0x6f, 0xd3, 0x40,
+ 0x10, 0xc5, 0xb1, 0xd3, 0xa6, 0xe3, 0x34, 0x32, 0x4b, 0xa1, 0x56, 0x4f, 0xc1, 0x12, 0x22, 0x87,
+ 0xd6, 0x91, 0x82, 0x04, 0x08, 0xa1, 0x4a, 0xa1, 0x0e, 0x55, 0xaa, 0x2a, 0x45, 0xcb, 0xc7, 0x81,
+ 0x4b, 0xe4, 0xac, 0x27, 0xce, 0xaa, 0xc9, 0xda, 0xb2, 0x37, 0x11, 0xfe, 0x37, 0xfc, 0x1c, 0xfe,
+ 0x15, 0x68, 0x77, 0xc9, 0x47, 0x69, 0x6f, 0x9c, 0x3c, 0x3b, 0x7e, 0x33, 0xf3, 0xde, 0xdb, 0x1d,
+ 0x38, 0xca, 0x11, 0x8b, 0x2e, 0x9b, 0xc5, 0x5c, 0xb0, 0x2c, 0xc1, 0x30, 0x2f, 0x32, 0x99, 0x91,
+ 0x3d, 0xfd, 0x29, 0x83, 0x1b, 0x70, 0x2f, 0xd6, 0xbf, 0x86, 0x11, 0x21, 0xe0, 0xe4, 0xb1, 0x9c,
+ 0xf9, 0x56, 0xdb, 0xea, 0x1c, 0x50, 0x1d, 0xab, 0x9c, 0x88, 0x17, 0xe8, 0xd7, 0x4c, 0x4e, 0xc5,
+ 0xc4, 0x87, 0xfd, 0x15, 0x16, 0x25, 0xcf, 0x84, 0x6f, 0xeb, 0xf4, 0xfa, 0x18, 0xfc, 0xb2, 0xa0,
+ 0xb5, 0xed, 0x28, 0xf2, 0xa5, 0x54, 0x0d, 0xe2, 0x22, 0x2d, 0x7d, 0xab, 0x6d, 0x77, 0x9a, 0x54,
+ 0xc7, 0x64, 0x08, 0x6e, 0x82, 0x2c, 0x2b, 0x62, 0xc9, 0x33, 0x51, 0xfa, 0xb5, 0xb6, 0xdd, 0x71,
+ 0x7b, 0x2f, 0x0d, 0xb9, 0x32, 0xbc, 0xdb, 0x20, 0x8c, 0xb6, 0xc8, 0x81, 0x90, 0x45, 0x45, 0x77,
+ 0x6b, 0xc9, 0x31, 0xec, 0xf3, 0x72, 0xcc, 0x05, 0x97, 0x9a, 0x4b, 0x83, 0xee, 0xf1, 0x72, 0x28,
+ 0xb8, 0x3c, 0x39, 0x07, 0xef, 0xdf, 0x4a, 0xe2, 0x81, 0x7d, 0x8b, 0xd5, 0x5f, 0x7d, 0x2a, 0x24,
+ 0x47, 0x50, 0x5f, 0xc5, 0xf3, 0xa5, 0xd1, 0xd7, 0xa4, 0xe6, 0xf0, 0xae, 0xf6, 0xd6, 0x0a, 0x7e,
+ 0x5b, 0x70, 0xb8, 0x61, 0xf2, 0x39, 0x47, 0x46, 0x42, 0x70, 0x64, 0x95, 0xa3, 0x2e, 0x6f, 0xf5,
+ 0x4e, 0xee, 0xd1, 0x55, 0xa0, 0xf0, 0x4b, 0x95, 0x23, 0xd5, 0x38, 0xf2, 0x1a, 0x9a, 0x1b, 0xe3,
+ 0xc7, 0x3c, 0xd1, 0x23, 0xdc, 0xde, 0x93, 0xfb, 0x32, 0x23, 0xea, 0x6e, 0x80, 0xc3, 0x84, 0x9c,
+ 0x42, 0x9d, 0x2b, 0xe5, 0x5a, 0x90, 0xdb, 0x7b, 0xf6, 0xb0, 0x2f, 0xd4, 0x80, 0xd4, 0x65, 0x48,
+ 0xbe, 0xc0, 0x6c, 0x29, 0x7d, 0xa7, 0x6d, 0x75, 0xea, 0x74, 0x7d, 0x0c, 0xce, 0xc1, 0x51, 0x6c,
+ 0xc8, 0x21, 0x1c, 0x7c, 0x1d, 0x45, 0x83, 0x8f, 0xc3, 0xd1, 0x20, 0xf2, 0x1e, 0x11, 0x80, 0xbd,
+ 0xcb, 0x9b, 0xeb, 0xfe, 0xe8, 0xd2, 0xb3, 0x48, 0x03, 0x9c, 0xd1, 0x4d, 0x34, 0xf0, 0x6a, 0x64,
+ 0x1f, 0xec, 0x8b, 0x3e, 0xf5, 0x6c, 0x95, 0xba, 0xea, 0x7f, 0xeb, 0x7b, 0x4e, 0xf0, 0xd3, 0x82,
+ 0xe3, 0xcd, 0xcc, 0x08, 0xf3, 0x79, 0x56, 0x2d, 0x50, 0x48, 0xed, 0xc5, 0x7b, 0x68, 0x6d, 0xb5,
+ 0x95, 0x39, 0x32, 0xed, 0x8a, 0xdb, 0x7b, 0xfa, 0xa0, 0x2b, 0xf4, 0x90, 0xdd, 0x71, 0xf2, 0x39,
+ 0x34, 0x75, 0x61, 0x1e, 0xb3, 0xdb, 0x38, 0x45, 0x2d, 0xb4, 0x49, 0x5d, 0x95, 0xfb, 0x64, 0x52,
+ 0x57, 0x4e, 0xa3, 0xe6, 0xd9, 0x57, 0x4e, 0xc3, 0xf1, 0xea, 0xb4, 0x85, 0xd3, 0x29, 0x32, 0xc9,
+ 0x57, 0x38, 0x4e, 0x62, 0x89, 0xb4, 0x81, 0x3f, 0x90, 0x8d, 0x51, 0xac, 0x82, 0x7c, 0x87, 0xe1,
+ 0x50, 0xac, 0x32, 0xa6, 0x6f, 0xfb, 0xff, 0x19, 0x9a, 0xf1, 0xf4, 0x31, 0x4f, 0xc6, 0x29, 0x0a,
+ 0x34, 0x8f, 0x68, 0x1c, 0xcf, 0xd3, 0xe0, 0x0d, 0xb4, 0xae, 0xf9, 0x14, 0x59, 0xc5, 0xe6, 0x38,
+ 0x58, 0xa1, 0x90, 0xe4, 0xc5, 0xee, 0x20, 0xbd, 0x2b, 0xe6, 0x7d, 0x6d, 0x3b, 0x8e, 0xe2, 0x05,
+ 0x7e, 0xa0, 0x10, 0x64, 0x45, 0x1a, 0xce, 0xaa, 0x1c, 0x8b, 0x39, 0x26, 0x29, 0x16, 0xe1, 0x34,
+ 0x9e, 0x14, 0x9c, 0xad, 0xf9, 0xa8, 0x4d, 0xfd, 0x7e, 0x9a, 0x72, 0x39, 0x5b, 0x4e, 0x42, 0x96,
+ 0x2d, 0xba, 0x3b, 0xd0, 0xae, 0x81, 0x9e, 0x19, 0xe8, 0x59, 0x9a, 0x75, 0x15, 0x7a, 0x62, 0xf6,
+ 0xf8, 0xd5, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9b, 0xb7, 0x82, 0x88, 0xe6, 0x03, 0x00, 0x00,
+}
diff --git a/peer/chaincode_event.pb.go b/peer/chaincode_event.pb.go
new file mode 100644
index 0000000..8f46696
--- /dev/null
+++ b/peer/chaincode_event.pb.go
@@ -0,0 +1,110 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/chaincode_event.proto
+
+package peer
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+//ChaincodeEvent is used for events and registrations that are specific to chaincode
+//string type - "chaincode"
+type ChaincodeEvent struct {
+ ChaincodeId string `protobuf:"bytes,1,opt,name=chaincode_id,json=chaincodeId,proto3" json:"chaincode_id,omitempty"`
+ TxId string `protobuf:"bytes,2,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
+ EventName string `protobuf:"bytes,3,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"`
+ Payload []byte `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeEvent) Reset() { *m = ChaincodeEvent{} }
+func (m *ChaincodeEvent) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeEvent) ProtoMessage() {}
+func (*ChaincodeEvent) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e11f3d5e149f14fa, []int{0}
+}
+
+func (m *ChaincodeEvent) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeEvent.Unmarshal(m, b)
+}
+func (m *ChaincodeEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeEvent.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeEvent) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeEvent.Merge(m, src)
+}
+func (m *ChaincodeEvent) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeEvent.Size(m)
+}
+func (m *ChaincodeEvent) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeEvent.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeEvent proto.InternalMessageInfo
+
+func (m *ChaincodeEvent) GetChaincodeId() string {
+ if m != nil {
+ return m.ChaincodeId
+ }
+ return ""
+}
+
+func (m *ChaincodeEvent) GetTxId() string {
+ if m != nil {
+ return m.TxId
+ }
+ return ""
+}
+
+func (m *ChaincodeEvent) GetEventName() string {
+ if m != nil {
+ return m.EventName
+ }
+ return ""
+}
+
+func (m *ChaincodeEvent) GetPayload() []byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*ChaincodeEvent)(nil), "protos.ChaincodeEvent")
+}
+
+func init() { proto.RegisterFile("peer/chaincode_event.proto", fileDescriptor_e11f3d5e149f14fa) }
+
+var fileDescriptor_e11f3d5e149f14fa = []byte{
+ // 221 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x2a, 0x48, 0x4d, 0x2d,
+ 0xd2, 0x4f, 0xce, 0x48, 0xcc, 0xcc, 0x4b, 0xce, 0x4f, 0x49, 0x8d, 0x4f, 0x2d, 0x4b, 0xcd, 0x2b,
+ 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x03, 0x53, 0xc5, 0x4a, 0x8d, 0x8c, 0x5c, 0x7c,
+ 0xce, 0x30, 0x15, 0xae, 0x20, 0x05, 0x42, 0x8a, 0x5c, 0x3c, 0x08, 0x3d, 0x99, 0x29, 0x12, 0x8c,
+ 0x0a, 0x8c, 0x1a, 0x9c, 0x41, 0xdc, 0x70, 0x31, 0xcf, 0x14, 0x21, 0x61, 0x2e, 0xd6, 0x92, 0x0a,
+ 0x90, 0x1c, 0x13, 0x58, 0x8e, 0xa5, 0xa4, 0xc2, 0x33, 0x45, 0x48, 0x96, 0x8b, 0x0b, 0x6c, 0x43,
+ 0x7c, 0x5e, 0x62, 0x6e, 0xaa, 0x04, 0x33, 0x58, 0x86, 0x13, 0x2c, 0xe2, 0x97, 0x98, 0x9b, 0x2a,
+ 0x24, 0xc1, 0xc5, 0x5e, 0x90, 0x58, 0x99, 0x93, 0x9f, 0x98, 0x22, 0xc1, 0xa2, 0xc0, 0xa8, 0xc1,
+ 0x13, 0x04, 0xe3, 0x3a, 0x65, 0x72, 0x29, 0xe5, 0x17, 0xa5, 0xeb, 0x65, 0x54, 0x16, 0xa4, 0x16,
+ 0xe5, 0xa4, 0xa6, 0xa4, 0xa7, 0x16, 0xe9, 0xa5, 0x25, 0x26, 0x15, 0x65, 0x26, 0x43, 0xdc, 0x5a,
+ 0xac, 0x07, 0xf2, 0x87, 0x93, 0x28, 0xaa, 0x33, 0x03, 0x12, 0x93, 0xb3, 0x13, 0xd3, 0x53, 0xa3,
+ 0x74, 0xd2, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x91, 0x4c, 0xd0, 0x87,
+ 0x98, 0xa0, 0x0b, 0x31, 0x41, 0x37, 0x3d, 0x5f, 0x1f, 0x64, 0x48, 0x12, 0xc4, 0xdb, 0xc6, 0x80,
+ 0x00, 0x00, 0x00, 0xff, 0xff, 0xf1, 0xe0, 0xae, 0xf8, 0x1b, 0x01, 0x00, 0x00,
+}
diff --git a/peer/chaincode_shim.pb.go b/peer/chaincode_shim.pb.go
new file mode 100644
index 0000000..18d3d05
--- /dev/null
+++ b/peer/chaincode_shim.pb.go
@@ -0,0 +1,1206 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/chaincode_shim.proto
+
+package peer
+
+import (
+ context "context"
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ timestamp "github.com/golang/protobuf/ptypes/timestamp"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type ChaincodeMessage_Type int32
+
+const (
+ ChaincodeMessage_UNDEFINED ChaincodeMessage_Type = 0
+ ChaincodeMessage_REGISTER ChaincodeMessage_Type = 1
+ ChaincodeMessage_REGISTERED ChaincodeMessage_Type = 2
+ ChaincodeMessage_INIT ChaincodeMessage_Type = 3
+ ChaincodeMessage_READY ChaincodeMessage_Type = 4
+ ChaincodeMessage_TRANSACTION ChaincodeMessage_Type = 5
+ ChaincodeMessage_COMPLETED ChaincodeMessage_Type = 6
+ ChaincodeMessage_ERROR ChaincodeMessage_Type = 7
+ ChaincodeMessage_GET_STATE ChaincodeMessage_Type = 8
+ ChaincodeMessage_PUT_STATE ChaincodeMessage_Type = 9
+ ChaincodeMessage_DEL_STATE ChaincodeMessage_Type = 10
+ ChaincodeMessage_INVOKE_CHAINCODE ChaincodeMessage_Type = 11
+ ChaincodeMessage_RESPONSE ChaincodeMessage_Type = 13
+ ChaincodeMessage_GET_STATE_BY_RANGE ChaincodeMessage_Type = 14
+ ChaincodeMessage_GET_QUERY_RESULT ChaincodeMessage_Type = 15
+ ChaincodeMessage_QUERY_STATE_NEXT ChaincodeMessage_Type = 16
+ ChaincodeMessage_QUERY_STATE_CLOSE ChaincodeMessage_Type = 17
+ ChaincodeMessage_KEEPALIVE ChaincodeMessage_Type = 18
+ ChaincodeMessage_GET_HISTORY_FOR_KEY ChaincodeMessage_Type = 19
+ ChaincodeMessage_GET_STATE_METADATA ChaincodeMessage_Type = 20
+ ChaincodeMessage_PUT_STATE_METADATA ChaincodeMessage_Type = 21
+ ChaincodeMessage_GET_PRIVATE_DATA_HASH ChaincodeMessage_Type = 22
+)
+
+var ChaincodeMessage_Type_name = map[int32]string{
+ 0: "UNDEFINED",
+ 1: "REGISTER",
+ 2: "REGISTERED",
+ 3: "INIT",
+ 4: "READY",
+ 5: "TRANSACTION",
+ 6: "COMPLETED",
+ 7: "ERROR",
+ 8: "GET_STATE",
+ 9: "PUT_STATE",
+ 10: "DEL_STATE",
+ 11: "INVOKE_CHAINCODE",
+ 13: "RESPONSE",
+ 14: "GET_STATE_BY_RANGE",
+ 15: "GET_QUERY_RESULT",
+ 16: "QUERY_STATE_NEXT",
+ 17: "QUERY_STATE_CLOSE",
+ 18: "KEEPALIVE",
+ 19: "GET_HISTORY_FOR_KEY",
+ 20: "GET_STATE_METADATA",
+ 21: "PUT_STATE_METADATA",
+ 22: "GET_PRIVATE_DATA_HASH",
+}
+
+var ChaincodeMessage_Type_value = map[string]int32{
+ "UNDEFINED": 0,
+ "REGISTER": 1,
+ "REGISTERED": 2,
+ "INIT": 3,
+ "READY": 4,
+ "TRANSACTION": 5,
+ "COMPLETED": 6,
+ "ERROR": 7,
+ "GET_STATE": 8,
+ "PUT_STATE": 9,
+ "DEL_STATE": 10,
+ "INVOKE_CHAINCODE": 11,
+ "RESPONSE": 13,
+ "GET_STATE_BY_RANGE": 14,
+ "GET_QUERY_RESULT": 15,
+ "QUERY_STATE_NEXT": 16,
+ "QUERY_STATE_CLOSE": 17,
+ "KEEPALIVE": 18,
+ "GET_HISTORY_FOR_KEY": 19,
+ "GET_STATE_METADATA": 20,
+ "PUT_STATE_METADATA": 21,
+ "GET_PRIVATE_DATA_HASH": 22,
+}
+
+func (x ChaincodeMessage_Type) String() string {
+ return proto.EnumName(ChaincodeMessage_Type_name, int32(x))
+}
+
+func (ChaincodeMessage_Type) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{0, 0}
+}
+
+type ChaincodeMessage struct {
+ Type ChaincodeMessage_Type `protobuf:"varint,1,opt,name=type,proto3,enum=protos.ChaincodeMessage_Type" json:"type,omitempty"`
+ Timestamp *timestamp.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+ Payload []byte `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"`
+ Txid string `protobuf:"bytes,4,opt,name=txid,proto3" json:"txid,omitempty"`
+ Proposal *SignedProposal `protobuf:"bytes,5,opt,name=proposal,proto3" json:"proposal,omitempty"`
+ //event emitted by chaincode. Used only with Init or Invoke.
+ // This event is then stored (currently)
+ //with Block.NonHashData.TransactionResult
+ ChaincodeEvent *ChaincodeEvent `protobuf:"bytes,6,opt,name=chaincode_event,json=chaincodeEvent,proto3" json:"chaincode_event,omitempty"`
+ //channel id
+ ChannelId string `protobuf:"bytes,7,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeMessage) Reset() { *m = ChaincodeMessage{} }
+func (m *ChaincodeMessage) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeMessage) ProtoMessage() {}
+func (*ChaincodeMessage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{0}
+}
+
+func (m *ChaincodeMessage) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeMessage.Unmarshal(m, b)
+}
+func (m *ChaincodeMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeMessage.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeMessage.Merge(m, src)
+}
+func (m *ChaincodeMessage) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeMessage.Size(m)
+}
+func (m *ChaincodeMessage) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeMessage proto.InternalMessageInfo
+
+func (m *ChaincodeMessage) GetType() ChaincodeMessage_Type {
+ if m != nil {
+ return m.Type
+ }
+ return ChaincodeMessage_UNDEFINED
+}
+
+func (m *ChaincodeMessage) GetTimestamp() *timestamp.Timestamp {
+ if m != nil {
+ return m.Timestamp
+ }
+ return nil
+}
+
+func (m *ChaincodeMessage) GetPayload() []byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+func (m *ChaincodeMessage) GetTxid() string {
+ if m != nil {
+ return m.Txid
+ }
+ return ""
+}
+
+func (m *ChaincodeMessage) GetProposal() *SignedProposal {
+ if m != nil {
+ return m.Proposal
+ }
+ return nil
+}
+
+func (m *ChaincodeMessage) GetChaincodeEvent() *ChaincodeEvent {
+ if m != nil {
+ return m.ChaincodeEvent
+ }
+ return nil
+}
+
+func (m *ChaincodeMessage) GetChannelId() string {
+ if m != nil {
+ return m.ChannelId
+ }
+ return ""
+}
+
+// GetState is the payload of a ChaincodeMessage. It contains a key which
+// is to be fetched from the ledger. If the collection is specified, the key
+// would be fetched from the collection (i.e., private state)
+type GetState struct {
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ Collection string `protobuf:"bytes,2,opt,name=collection,proto3" json:"collection,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetState) Reset() { *m = GetState{} }
+func (m *GetState) String() string { return proto.CompactTextString(m) }
+func (*GetState) ProtoMessage() {}
+func (*GetState) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{1}
+}
+
+func (m *GetState) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetState.Unmarshal(m, b)
+}
+func (m *GetState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetState.Marshal(b, m, deterministic)
+}
+func (m *GetState) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetState.Merge(m, src)
+}
+func (m *GetState) XXX_Size() int {
+ return xxx_messageInfo_GetState.Size(m)
+}
+func (m *GetState) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetState.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetState proto.InternalMessageInfo
+
+func (m *GetState) GetKey() string {
+ if m != nil {
+ return m.Key
+ }
+ return ""
+}
+
+func (m *GetState) GetCollection() string {
+ if m != nil {
+ return m.Collection
+ }
+ return ""
+}
+
+type GetStateMetadata struct {
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ Collection string `protobuf:"bytes,2,opt,name=collection,proto3" json:"collection,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetStateMetadata) Reset() { *m = GetStateMetadata{} }
+func (m *GetStateMetadata) String() string { return proto.CompactTextString(m) }
+func (*GetStateMetadata) ProtoMessage() {}
+func (*GetStateMetadata) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{2}
+}
+
+func (m *GetStateMetadata) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetStateMetadata.Unmarshal(m, b)
+}
+func (m *GetStateMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetStateMetadata.Marshal(b, m, deterministic)
+}
+func (m *GetStateMetadata) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetStateMetadata.Merge(m, src)
+}
+func (m *GetStateMetadata) XXX_Size() int {
+ return xxx_messageInfo_GetStateMetadata.Size(m)
+}
+func (m *GetStateMetadata) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetStateMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetStateMetadata proto.InternalMessageInfo
+
+func (m *GetStateMetadata) GetKey() string {
+ if m != nil {
+ return m.Key
+ }
+ return ""
+}
+
+func (m *GetStateMetadata) GetCollection() string {
+ if m != nil {
+ return m.Collection
+ }
+ return ""
+}
+
+// PutState is the payload of a ChaincodeMessage. It contains a key and value
+// which needs to be written to the transaction's write set. If the collection is
+// specified, the key and value would be written to the transaction's private
+// write set.
+type PutState struct {
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+ Collection string `protobuf:"bytes,3,opt,name=collection,proto3" json:"collection,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PutState) Reset() { *m = PutState{} }
+func (m *PutState) String() string { return proto.CompactTextString(m) }
+func (*PutState) ProtoMessage() {}
+func (*PutState) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{3}
+}
+
+func (m *PutState) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PutState.Unmarshal(m, b)
+}
+func (m *PutState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PutState.Marshal(b, m, deterministic)
+}
+func (m *PutState) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PutState.Merge(m, src)
+}
+func (m *PutState) XXX_Size() int {
+ return xxx_messageInfo_PutState.Size(m)
+}
+func (m *PutState) XXX_DiscardUnknown() {
+ xxx_messageInfo_PutState.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PutState proto.InternalMessageInfo
+
+func (m *PutState) GetKey() string {
+ if m != nil {
+ return m.Key
+ }
+ return ""
+}
+
+func (m *PutState) GetValue() []byte {
+ if m != nil {
+ return m.Value
+ }
+ return nil
+}
+
+func (m *PutState) GetCollection() string {
+ if m != nil {
+ return m.Collection
+ }
+ return ""
+}
+
+type PutStateMetadata struct {
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ Collection string `protobuf:"bytes,3,opt,name=collection,proto3" json:"collection,omitempty"`
+ Metadata *StateMetadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PutStateMetadata) Reset() { *m = PutStateMetadata{} }
+func (m *PutStateMetadata) String() string { return proto.CompactTextString(m) }
+func (*PutStateMetadata) ProtoMessage() {}
+func (*PutStateMetadata) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{4}
+}
+
+func (m *PutStateMetadata) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PutStateMetadata.Unmarshal(m, b)
+}
+func (m *PutStateMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PutStateMetadata.Marshal(b, m, deterministic)
+}
+func (m *PutStateMetadata) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PutStateMetadata.Merge(m, src)
+}
+func (m *PutStateMetadata) XXX_Size() int {
+ return xxx_messageInfo_PutStateMetadata.Size(m)
+}
+func (m *PutStateMetadata) XXX_DiscardUnknown() {
+ xxx_messageInfo_PutStateMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PutStateMetadata proto.InternalMessageInfo
+
+func (m *PutStateMetadata) GetKey() string {
+ if m != nil {
+ return m.Key
+ }
+ return ""
+}
+
+func (m *PutStateMetadata) GetCollection() string {
+ if m != nil {
+ return m.Collection
+ }
+ return ""
+}
+
+func (m *PutStateMetadata) GetMetadata() *StateMetadata {
+ if m != nil {
+ return m.Metadata
+ }
+ return nil
+}
+
+// DelState is the payload of a ChaincodeMessage. It contains a key which
+// needs to be recorded in the transaction's write set as a delete operation.
+// If the collection is specified, the key needs to be recorded in the
+// transaction's private write set as a delete operation.
+type DelState struct {
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ Collection string `protobuf:"bytes,2,opt,name=collection,proto3" json:"collection,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *DelState) Reset() { *m = DelState{} }
+func (m *DelState) String() string { return proto.CompactTextString(m) }
+func (*DelState) ProtoMessage() {}
+func (*DelState) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{5}
+}
+
+func (m *DelState) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_DelState.Unmarshal(m, b)
+}
+func (m *DelState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_DelState.Marshal(b, m, deterministic)
+}
+func (m *DelState) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DelState.Merge(m, src)
+}
+func (m *DelState) XXX_Size() int {
+ return xxx_messageInfo_DelState.Size(m)
+}
+func (m *DelState) XXX_DiscardUnknown() {
+ xxx_messageInfo_DelState.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DelState proto.InternalMessageInfo
+
+func (m *DelState) GetKey() string {
+ if m != nil {
+ return m.Key
+ }
+ return ""
+}
+
+func (m *DelState) GetCollection() string {
+ if m != nil {
+ return m.Collection
+ }
+ return ""
+}
+
+// GetStateByRange is the payload of a ChaincodeMessage. It contains a start key and
+// a end key required to execute range query. If the collection is specified,
+// the range query needs to be executed on the private data. The metadata hold
+// the byte representation of QueryMetadata.
+type GetStateByRange struct {
+ StartKey string `protobuf:"bytes,1,opt,name=startKey,proto3" json:"startKey,omitempty"`
+ EndKey string `protobuf:"bytes,2,opt,name=endKey,proto3" json:"endKey,omitempty"`
+ Collection string `protobuf:"bytes,3,opt,name=collection,proto3" json:"collection,omitempty"`
+ Metadata []byte `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetStateByRange) Reset() { *m = GetStateByRange{} }
+func (m *GetStateByRange) String() string { return proto.CompactTextString(m) }
+func (*GetStateByRange) ProtoMessage() {}
+func (*GetStateByRange) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{6}
+}
+
+func (m *GetStateByRange) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetStateByRange.Unmarshal(m, b)
+}
+func (m *GetStateByRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetStateByRange.Marshal(b, m, deterministic)
+}
+func (m *GetStateByRange) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetStateByRange.Merge(m, src)
+}
+func (m *GetStateByRange) XXX_Size() int {
+ return xxx_messageInfo_GetStateByRange.Size(m)
+}
+func (m *GetStateByRange) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetStateByRange.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetStateByRange proto.InternalMessageInfo
+
+func (m *GetStateByRange) GetStartKey() string {
+ if m != nil {
+ return m.StartKey
+ }
+ return ""
+}
+
+func (m *GetStateByRange) GetEndKey() string {
+ if m != nil {
+ return m.EndKey
+ }
+ return ""
+}
+
+func (m *GetStateByRange) GetCollection() string {
+ if m != nil {
+ return m.Collection
+ }
+ return ""
+}
+
+func (m *GetStateByRange) GetMetadata() []byte {
+ if m != nil {
+ return m.Metadata
+ }
+ return nil
+}
+
+// GetQueryResult is the payload of a ChaincodeMessage. It contains a query
+// string in the form that is supported by the underlying state database.
+// If the collection is specified, the query needs to be executed on the
+// private data. The metadata hold the byte representation of QueryMetadata.
+type GetQueryResult struct {
+ Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
+ Collection string `protobuf:"bytes,2,opt,name=collection,proto3" json:"collection,omitempty"`
+ Metadata []byte `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetQueryResult) Reset() { *m = GetQueryResult{} }
+func (m *GetQueryResult) String() string { return proto.CompactTextString(m) }
+func (*GetQueryResult) ProtoMessage() {}
+func (*GetQueryResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{7}
+}
+
+func (m *GetQueryResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetQueryResult.Unmarshal(m, b)
+}
+func (m *GetQueryResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetQueryResult.Marshal(b, m, deterministic)
+}
+func (m *GetQueryResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetQueryResult.Merge(m, src)
+}
+func (m *GetQueryResult) XXX_Size() int {
+ return xxx_messageInfo_GetQueryResult.Size(m)
+}
+func (m *GetQueryResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetQueryResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetQueryResult proto.InternalMessageInfo
+
+func (m *GetQueryResult) GetQuery() string {
+ if m != nil {
+ return m.Query
+ }
+ return ""
+}
+
+func (m *GetQueryResult) GetCollection() string {
+ if m != nil {
+ return m.Collection
+ }
+ return ""
+}
+
+func (m *GetQueryResult) GetMetadata() []byte {
+ if m != nil {
+ return m.Metadata
+ }
+ return nil
+}
+
+// QueryMetadata is the metadata of a GetStateByRange and GetQueryResult.
+// It contains a pageSize which denotes the number of records to be fetched
+// and a bookmark.
+type QueryMetadata struct {
+ PageSize int32 `protobuf:"varint,1,opt,name=pageSize,proto3" json:"pageSize,omitempty"`
+ Bookmark string `protobuf:"bytes,2,opt,name=bookmark,proto3" json:"bookmark,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryMetadata) Reset() { *m = QueryMetadata{} }
+func (m *QueryMetadata) String() string { return proto.CompactTextString(m) }
+func (*QueryMetadata) ProtoMessage() {}
+func (*QueryMetadata) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{8}
+}
+
+func (m *QueryMetadata) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryMetadata.Unmarshal(m, b)
+}
+func (m *QueryMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryMetadata.Marshal(b, m, deterministic)
+}
+func (m *QueryMetadata) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryMetadata.Merge(m, src)
+}
+func (m *QueryMetadata) XXX_Size() int {
+ return xxx_messageInfo_QueryMetadata.Size(m)
+}
+func (m *QueryMetadata) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryMetadata proto.InternalMessageInfo
+
+func (m *QueryMetadata) GetPageSize() int32 {
+ if m != nil {
+ return m.PageSize
+ }
+ return 0
+}
+
+func (m *QueryMetadata) GetBookmark() string {
+ if m != nil {
+ return m.Bookmark
+ }
+ return ""
+}
+
+// GetHistoryForKey is the payload of a ChaincodeMessage. It contains a key
+// for which the historical values need to be retrieved.
+type GetHistoryForKey struct {
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetHistoryForKey) Reset() { *m = GetHistoryForKey{} }
+func (m *GetHistoryForKey) String() string { return proto.CompactTextString(m) }
+func (*GetHistoryForKey) ProtoMessage() {}
+func (*GetHistoryForKey) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{9}
+}
+
+func (m *GetHistoryForKey) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetHistoryForKey.Unmarshal(m, b)
+}
+func (m *GetHistoryForKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetHistoryForKey.Marshal(b, m, deterministic)
+}
+func (m *GetHistoryForKey) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetHistoryForKey.Merge(m, src)
+}
+func (m *GetHistoryForKey) XXX_Size() int {
+ return xxx_messageInfo_GetHistoryForKey.Size(m)
+}
+func (m *GetHistoryForKey) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetHistoryForKey.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetHistoryForKey proto.InternalMessageInfo
+
+func (m *GetHistoryForKey) GetKey() string {
+ if m != nil {
+ return m.Key
+ }
+ return ""
+}
+
+type QueryStateNext struct {
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryStateNext) Reset() { *m = QueryStateNext{} }
+func (m *QueryStateNext) String() string { return proto.CompactTextString(m) }
+func (*QueryStateNext) ProtoMessage() {}
+func (*QueryStateNext) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{10}
+}
+
+func (m *QueryStateNext) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryStateNext.Unmarshal(m, b)
+}
+func (m *QueryStateNext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryStateNext.Marshal(b, m, deterministic)
+}
+func (m *QueryStateNext) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryStateNext.Merge(m, src)
+}
+func (m *QueryStateNext) XXX_Size() int {
+ return xxx_messageInfo_QueryStateNext.Size(m)
+}
+func (m *QueryStateNext) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryStateNext.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryStateNext proto.InternalMessageInfo
+
+func (m *QueryStateNext) GetId() string {
+ if m != nil {
+ return m.Id
+ }
+ return ""
+}
+
+type QueryStateClose struct {
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryStateClose) Reset() { *m = QueryStateClose{} }
+func (m *QueryStateClose) String() string { return proto.CompactTextString(m) }
+func (*QueryStateClose) ProtoMessage() {}
+func (*QueryStateClose) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{11}
+}
+
+func (m *QueryStateClose) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryStateClose.Unmarshal(m, b)
+}
+func (m *QueryStateClose) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryStateClose.Marshal(b, m, deterministic)
+}
+func (m *QueryStateClose) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryStateClose.Merge(m, src)
+}
+func (m *QueryStateClose) XXX_Size() int {
+ return xxx_messageInfo_QueryStateClose.Size(m)
+}
+func (m *QueryStateClose) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryStateClose.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryStateClose proto.InternalMessageInfo
+
+func (m *QueryStateClose) GetId() string {
+ if m != nil {
+ return m.Id
+ }
+ return ""
+}
+
+// QueryResultBytes hold the byte representation of a record returned by the peer.
+type QueryResultBytes struct {
+ ResultBytes []byte `protobuf:"bytes,1,opt,name=resultBytes,proto3" json:"resultBytes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryResultBytes) Reset() { *m = QueryResultBytes{} }
+func (m *QueryResultBytes) String() string { return proto.CompactTextString(m) }
+func (*QueryResultBytes) ProtoMessage() {}
+func (*QueryResultBytes) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{12}
+}
+
+func (m *QueryResultBytes) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryResultBytes.Unmarshal(m, b)
+}
+func (m *QueryResultBytes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryResultBytes.Marshal(b, m, deterministic)
+}
+func (m *QueryResultBytes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryResultBytes.Merge(m, src)
+}
+func (m *QueryResultBytes) XXX_Size() int {
+ return xxx_messageInfo_QueryResultBytes.Size(m)
+}
+func (m *QueryResultBytes) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryResultBytes.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryResultBytes proto.InternalMessageInfo
+
+func (m *QueryResultBytes) GetResultBytes() []byte {
+ if m != nil {
+ return m.ResultBytes
+ }
+ return nil
+}
+
+// QueryResponse is returned by the peer as a result of a GetStateByRange,
+// GetQueryResult, and GetHistoryForKey. It holds a bunch of records in
+// results field, a flag to denote whether more results need to be fetched from
+// the peer in has_more field, transaction id in id field, and a QueryResponseMetadata
+// in metadata field.
+type QueryResponse struct {
+ Results []*QueryResultBytes `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
+ HasMore bool `protobuf:"varint,2,opt,name=has_more,json=hasMore,proto3" json:"has_more,omitempty"`
+ Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"`
+ Metadata []byte `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryResponse) Reset() { *m = QueryResponse{} }
+func (m *QueryResponse) String() string { return proto.CompactTextString(m) }
+func (*QueryResponse) ProtoMessage() {}
+func (*QueryResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{13}
+}
+
+func (m *QueryResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryResponse.Unmarshal(m, b)
+}
+func (m *QueryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryResponse.Marshal(b, m, deterministic)
+}
+func (m *QueryResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryResponse.Merge(m, src)
+}
+func (m *QueryResponse) XXX_Size() int {
+ return xxx_messageInfo_QueryResponse.Size(m)
+}
+func (m *QueryResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryResponse proto.InternalMessageInfo
+
+func (m *QueryResponse) GetResults() []*QueryResultBytes {
+ if m != nil {
+ return m.Results
+ }
+ return nil
+}
+
+func (m *QueryResponse) GetHasMore() bool {
+ if m != nil {
+ return m.HasMore
+ }
+ return false
+}
+
+func (m *QueryResponse) GetId() string {
+ if m != nil {
+ return m.Id
+ }
+ return ""
+}
+
+func (m *QueryResponse) GetMetadata() []byte {
+ if m != nil {
+ return m.Metadata
+ }
+ return nil
+}
+
+// QueryResponseMetadata is the metadata of a QueryResponse. It contains a count
+// which denotes the number of records fetched from the ledger and a bookmark.
+type QueryResponseMetadata struct {
+ FetchedRecordsCount int32 `protobuf:"varint,1,opt,name=fetched_records_count,json=fetchedRecordsCount,proto3" json:"fetched_records_count,omitempty"`
+ Bookmark string `protobuf:"bytes,2,opt,name=bookmark,proto3" json:"bookmark,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryResponseMetadata) Reset() { *m = QueryResponseMetadata{} }
+func (m *QueryResponseMetadata) String() string { return proto.CompactTextString(m) }
+func (*QueryResponseMetadata) ProtoMessage() {}
+func (*QueryResponseMetadata) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{14}
+}
+
+func (m *QueryResponseMetadata) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryResponseMetadata.Unmarshal(m, b)
+}
+func (m *QueryResponseMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryResponseMetadata.Marshal(b, m, deterministic)
+}
+func (m *QueryResponseMetadata) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryResponseMetadata.Merge(m, src)
+}
+func (m *QueryResponseMetadata) XXX_Size() int {
+ return xxx_messageInfo_QueryResponseMetadata.Size(m)
+}
+func (m *QueryResponseMetadata) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryResponseMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryResponseMetadata proto.InternalMessageInfo
+
+func (m *QueryResponseMetadata) GetFetchedRecordsCount() int32 {
+ if m != nil {
+ return m.FetchedRecordsCount
+ }
+ return 0
+}
+
+func (m *QueryResponseMetadata) GetBookmark() string {
+ if m != nil {
+ return m.Bookmark
+ }
+ return ""
+}
+
+type StateMetadata struct {
+ Metakey string `protobuf:"bytes,1,opt,name=metakey,proto3" json:"metakey,omitempty"`
+ Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StateMetadata) Reset() { *m = StateMetadata{} }
+func (m *StateMetadata) String() string { return proto.CompactTextString(m) }
+func (*StateMetadata) ProtoMessage() {}
+func (*StateMetadata) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{15}
+}
+
+func (m *StateMetadata) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StateMetadata.Unmarshal(m, b)
+}
+func (m *StateMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StateMetadata.Marshal(b, m, deterministic)
+}
+func (m *StateMetadata) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StateMetadata.Merge(m, src)
+}
+func (m *StateMetadata) XXX_Size() int {
+ return xxx_messageInfo_StateMetadata.Size(m)
+}
+func (m *StateMetadata) XXX_DiscardUnknown() {
+ xxx_messageInfo_StateMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StateMetadata proto.InternalMessageInfo
+
+func (m *StateMetadata) GetMetakey() string {
+ if m != nil {
+ return m.Metakey
+ }
+ return ""
+}
+
+func (m *StateMetadata) GetValue() []byte {
+ if m != nil {
+ return m.Value
+ }
+ return nil
+}
+
+type StateMetadataResult struct {
+ Entries []*StateMetadata `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StateMetadataResult) Reset() { *m = StateMetadataResult{} }
+func (m *StateMetadataResult) String() string { return proto.CompactTextString(m) }
+func (*StateMetadataResult) ProtoMessage() {}
+func (*StateMetadataResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e5819fec16c96da2, []int{16}
+}
+
+func (m *StateMetadataResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StateMetadataResult.Unmarshal(m, b)
+}
+func (m *StateMetadataResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StateMetadataResult.Marshal(b, m, deterministic)
+}
+func (m *StateMetadataResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StateMetadataResult.Merge(m, src)
+}
+func (m *StateMetadataResult) XXX_Size() int {
+ return xxx_messageInfo_StateMetadataResult.Size(m)
+}
+func (m *StateMetadataResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_StateMetadataResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StateMetadataResult proto.InternalMessageInfo
+
+func (m *StateMetadataResult) GetEntries() []*StateMetadata {
+ if m != nil {
+ return m.Entries
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterEnum("protos.ChaincodeMessage_Type", ChaincodeMessage_Type_name, ChaincodeMessage_Type_value)
+ proto.RegisterType((*ChaincodeMessage)(nil), "protos.ChaincodeMessage")
+ proto.RegisterType((*GetState)(nil), "protos.GetState")
+ proto.RegisterType((*GetStateMetadata)(nil), "protos.GetStateMetadata")
+ proto.RegisterType((*PutState)(nil), "protos.PutState")
+ proto.RegisterType((*PutStateMetadata)(nil), "protos.PutStateMetadata")
+ proto.RegisterType((*DelState)(nil), "protos.DelState")
+ proto.RegisterType((*GetStateByRange)(nil), "protos.GetStateByRange")
+ proto.RegisterType((*GetQueryResult)(nil), "protos.GetQueryResult")
+ proto.RegisterType((*QueryMetadata)(nil), "protos.QueryMetadata")
+ proto.RegisterType((*GetHistoryForKey)(nil), "protos.GetHistoryForKey")
+ proto.RegisterType((*QueryStateNext)(nil), "protos.QueryStateNext")
+ proto.RegisterType((*QueryStateClose)(nil), "protos.QueryStateClose")
+ proto.RegisterType((*QueryResultBytes)(nil), "protos.QueryResultBytes")
+ proto.RegisterType((*QueryResponse)(nil), "protos.QueryResponse")
+ proto.RegisterType((*QueryResponseMetadata)(nil), "protos.QueryResponseMetadata")
+ proto.RegisterType((*StateMetadata)(nil), "protos.StateMetadata")
+ proto.RegisterType((*StateMetadataResult)(nil), "protos.StateMetadataResult")
+}
+
+func init() { proto.RegisterFile("peer/chaincode_shim.proto", fileDescriptor_e5819fec16c96da2) }
+
+var fileDescriptor_e5819fec16c96da2 = []byte{
+ // 1027 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xcf, 0x73, 0xda, 0x46,
+ 0x14, 0x2e, 0x06, 0x8c, 0x78, 0xd8, 0x78, 0xb3, 0x0e, 0x2e, 0x66, 0x26, 0x2d, 0x65, 0x7a, 0xe0,
+ 0xd0, 0x40, 0x43, 0x7b, 0xe8, 0xa1, 0x33, 0x19, 0x0c, 0x6b, 0xcc, 0xd8, 0x06, 0xb2, 0x92, 0x3d,
+ 0x75, 0x2f, 0x1a, 0x21, 0xad, 0x85, 0xc6, 0x42, 0xab, 0x4a, 0x4b, 0x1a, 0x7a, 0xeb, 0xb5, 0xc7,
+ 0xfe, 0x71, 0xfd, 0x7b, 0x3a, 0xab, 0x5f, 0x06, 0x5c, 0x27, 0x9d, 0x9c, 0xd0, 0xf7, 0xde, 0xb7,
+ 0xdf, 0xfb, 0xb5, 0x0f, 0x09, 0x4e, 0x7d, 0xc6, 0x82, 0xae, 0xb9, 0x30, 0x1c, 0xcf, 0xe4, 0x16,
+ 0xd3, 0xc3, 0x85, 0xb3, 0xec, 0xf8, 0x01, 0x17, 0x1c, 0xef, 0x47, 0x3f, 0x61, 0xa3, 0xb1, 0x43,
+ 0x61, 0xef, 0x99, 0x27, 0x62, 0x4e, 0xe3, 0x38, 0xf2, 0xf9, 0x01, 0xf7, 0x79, 0x68, 0xb8, 0x89,
+ 0xf1, 0x6b, 0x9b, 0x73, 0xdb, 0x65, 0xdd, 0x08, 0xcd, 0x57, 0xf7, 0x5d, 0xe1, 0x2c, 0x59, 0x28,
+ 0x8c, 0xa5, 0x1f, 0x13, 0x5a, 0xff, 0x14, 0x01, 0x0d, 0x52, 0xbd, 0x6b, 0x16, 0x86, 0x86, 0xcd,
+ 0xf0, 0x1b, 0x28, 0x88, 0xb5, 0xcf, 0xea, 0xb9, 0x66, 0xae, 0x5d, 0xed, 0xbd, 0x8a, 0xa9, 0x61,
+ 0x67, 0x97, 0xd7, 0xd1, 0xd6, 0x3e, 0xa3, 0x11, 0x15, 0xff, 0x04, 0xe5, 0x4c, 0xba, 0xbe, 0xd7,
+ 0xcc, 0xb5, 0x2b, 0xbd, 0x46, 0x27, 0x0e, 0xde, 0x49, 0x83, 0x77, 0xb4, 0x94, 0x41, 0x1f, 0xc9,
+ 0xb8, 0x0e, 0x25, 0xdf, 0x58, 0xbb, 0xdc, 0xb0, 0xea, 0xf9, 0x66, 0xae, 0x7d, 0x40, 0x53, 0x88,
+ 0x31, 0x14, 0xc4, 0x07, 0xc7, 0xaa, 0x17, 0x9a, 0xb9, 0x76, 0x99, 0x46, 0xcf, 0xb8, 0x07, 0x4a,
+ 0x5a, 0x62, 0xbd, 0x18, 0x85, 0x39, 0x49, 0xd3, 0x53, 0x1d, 0xdb, 0x63, 0xd6, 0x2c, 0xf1, 0xd2,
+ 0x8c, 0x87, 0xdf, 0xc2, 0xd1, 0x4e, 0xcb, 0xea, 0xfb, 0xdb, 0x47, 0xb3, 0xca, 0x88, 0xf4, 0xd2,
+ 0xaa, 0xb9, 0x85, 0xf1, 0x2b, 0x00, 0x73, 0x61, 0x78, 0x1e, 0x73, 0x75, 0xc7, 0xaa, 0x97, 0xa2,
+ 0x74, 0xca, 0x89, 0x65, 0x6c, 0xb5, 0xfe, 0xce, 0x43, 0x41, 0xb6, 0x02, 0x1f, 0x42, 0xf9, 0x66,
+ 0x32, 0x24, 0xe7, 0xe3, 0x09, 0x19, 0xa2, 0x2f, 0xf0, 0x01, 0x28, 0x94, 0x8c, 0xc6, 0xaa, 0x46,
+ 0x28, 0xca, 0xe1, 0x2a, 0x40, 0x8a, 0xc8, 0x10, 0xed, 0x61, 0x05, 0x0a, 0xe3, 0xc9, 0x58, 0x43,
+ 0x79, 0x5c, 0x86, 0x22, 0x25, 0xfd, 0xe1, 0x1d, 0x2a, 0xe0, 0x23, 0xa8, 0x68, 0xb4, 0x3f, 0x51,
+ 0xfb, 0x03, 0x6d, 0x3c, 0x9d, 0xa0, 0xa2, 0x94, 0x1c, 0x4c, 0xaf, 0x67, 0x57, 0x44, 0x23, 0x43,
+ 0xb4, 0x2f, 0xa9, 0x84, 0xd2, 0x29, 0x45, 0x25, 0xe9, 0x19, 0x11, 0x4d, 0x57, 0xb5, 0xbe, 0x46,
+ 0x90, 0x22, 0xe1, 0xec, 0x26, 0x85, 0x65, 0x09, 0x87, 0xe4, 0x2a, 0x81, 0x80, 0x5f, 0x02, 0x1a,
+ 0x4f, 0x6e, 0xa7, 0x97, 0x44, 0x1f, 0x5c, 0xf4, 0xc7, 0x93, 0xc1, 0x74, 0x48, 0x50, 0x25, 0x4e,
+ 0x50, 0x9d, 0x4d, 0x27, 0x2a, 0x41, 0x87, 0xf8, 0x04, 0x70, 0x26, 0xa8, 0x9f, 0xdd, 0xe9, 0xb4,
+ 0x3f, 0x19, 0x11, 0x54, 0x95, 0x67, 0xa5, 0xfd, 0xdd, 0x0d, 0xa1, 0x77, 0x3a, 0x25, 0xea, 0xcd,
+ 0x95, 0x86, 0x8e, 0xa4, 0x35, 0xb6, 0xc4, 0xfc, 0x09, 0xf9, 0x45, 0x43, 0x08, 0xd7, 0xe0, 0xc5,
+ 0xa6, 0x75, 0x70, 0x35, 0x55, 0x09, 0x7a, 0x21, 0xb3, 0xb9, 0x24, 0x64, 0xd6, 0xbf, 0x1a, 0xdf,
+ 0x12, 0x84, 0xf1, 0x97, 0x70, 0x2c, 0x15, 0x2f, 0xc6, 0xaa, 0x36, 0xa5, 0x77, 0xfa, 0xf9, 0x94,
+ 0xea, 0x97, 0xe4, 0x0e, 0x1d, 0x6f, 0xa7, 0x70, 0x4d, 0xb4, 0xfe, 0xb0, 0xaf, 0xf5, 0xd1, 0x4b,
+ 0x69, 0xcf, 0x8a, 0x7b, 0xb4, 0xd7, 0xf0, 0x29, 0xd4, 0x24, 0x7f, 0x46, 0xc7, 0xb7, 0xd2, 0x23,
+ 0xad, 0xfa, 0x45, 0x5f, 0xbd, 0x40, 0x27, 0xad, 0x9f, 0x41, 0x19, 0x31, 0xa1, 0x0a, 0x43, 0x30,
+ 0x8c, 0x20, 0xff, 0xc0, 0xd6, 0xd1, 0x75, 0x2e, 0x53, 0xf9, 0x88, 0xbf, 0x02, 0x30, 0xb9, 0xeb,
+ 0x32, 0x53, 0x38, 0xdc, 0x8b, 0xee, 0x6b, 0x99, 0x6e, 0x58, 0x5a, 0x43, 0x40, 0xe9, 0xe9, 0x6b,
+ 0x26, 0x0c, 0xcb, 0x10, 0xc6, 0x67, 0xa8, 0x50, 0x50, 0x66, 0xab, 0x67, 0x73, 0x78, 0x09, 0xc5,
+ 0xf7, 0x86, 0xbb, 0x62, 0xd1, 0xc1, 0x03, 0x1a, 0x83, 0x1d, 0xcd, 0xfc, 0x13, 0xcd, 0xdf, 0x01,
+ 0xa5, 0x9a, 0xff, 0x3b, 0xb3, 0x27, 0x2a, 0xf8, 0x0d, 0x28, 0xcb, 0xe4, 0x74, 0xb4, 0x5e, 0x95,
+ 0x5e, 0x2d, 0x5b, 0xa3, 0x4d, 0x69, 0x9a, 0xd1, 0x64, 0x43, 0x87, 0xcc, 0xfd, 0xdc, 0x86, 0xfe,
+ 0x99, 0x83, 0xa3, 0xb4, 0xa3, 0x67, 0x6b, 0x6a, 0x78, 0x36, 0xc3, 0x0d, 0x50, 0x42, 0x61, 0x04,
+ 0xe2, 0x32, 0x93, 0xca, 0x30, 0x3e, 0x81, 0x7d, 0xe6, 0x59, 0xd2, 0x13, 0x6b, 0x25, 0xe8, 0x93,
+ 0x85, 0x35, 0x76, 0x0a, 0x3b, 0xd8, 0xa8, 0x60, 0x0e, 0xd5, 0x11, 0x13, 0xef, 0x56, 0x2c, 0x58,
+ 0x53, 0x16, 0xae, 0x5c, 0x21, 0x47, 0xf0, 0x9b, 0x84, 0x49, 0xf8, 0x18, 0x7c, 0xaa, 0x96, 0xad,
+ 0x18, 0xf9, 0x9d, 0x18, 0x23, 0x38, 0x8c, 0x02, 0x64, 0xb3, 0x69, 0x80, 0xe2, 0x1b, 0x36, 0x53,
+ 0x9d, 0x3f, 0xe2, 0xff, 0xd3, 0x22, 0xcd, 0xb0, 0xf4, 0xcd, 0x39, 0x7f, 0x58, 0x1a, 0xc1, 0x43,
+ 0x12, 0x26, 0xc3, 0xad, 0x6f, 0xa3, 0x1b, 0x78, 0xe1, 0x84, 0x82, 0x07, 0xeb, 0x73, 0x1e, 0xc8,
+ 0xe2, 0x9f, 0xb4, 0xbd, 0xd5, 0x84, 0x6a, 0x14, 0x2e, 0xea, 0xeb, 0x84, 0x7d, 0x10, 0xb8, 0x0a,
+ 0x7b, 0x8e, 0x95, 0x50, 0xf6, 0x1c, 0xab, 0xf5, 0x0d, 0x1c, 0x3d, 0x32, 0x06, 0x2e, 0x0f, 0xd9,
+ 0x13, 0xca, 0x8f, 0x80, 0x36, 0x9a, 0x72, 0xb6, 0x16, 0x2c, 0xc4, 0x4d, 0xa8, 0x04, 0x8f, 0x30,
+ 0x22, 0x1f, 0xd0, 0x4d, 0x53, 0xeb, 0xaf, 0x5c, 0x52, 0x2a, 0x65, 0xa1, 0xcf, 0xbd, 0x90, 0xe1,
+ 0x1e, 0x94, 0x62, 0x82, 0xe4, 0xe7, 0xdb, 0x95, 0x5e, 0x3d, 0xbd, 0x53, 0xbb, 0xf2, 0x34, 0x25,
+ 0xe2, 0x53, 0x50, 0x16, 0x46, 0xa8, 0x2f, 0x79, 0x10, 0xef, 0x81, 0x42, 0x4b, 0x0b, 0x23, 0xbc,
+ 0xe6, 0x41, 0x9a, 0x66, 0x3e, 0x4d, 0xf3, 0xa3, 0xa3, 0xb5, 0xa1, 0xb6, 0x95, 0x4b, 0xd6, 0xfe,
+ 0x1e, 0xd4, 0xee, 0x99, 0x30, 0x17, 0xcc, 0xd2, 0x03, 0x66, 0xf2, 0xc0, 0x0a, 0x75, 0x93, 0xaf,
+ 0x3c, 0x91, 0xcc, 0xe2, 0x38, 0x71, 0xd2, 0xd8, 0x37, 0x90, 0xae, 0x8f, 0x8e, 0xe5, 0x2d, 0x1c,
+ 0x6e, 0xef, 0x5e, 0x1d, 0x4a, 0x32, 0x8b, 0xc7, 0xb9, 0xa4, 0xf0, 0xbf, 0xf7, 0xbb, 0x75, 0x0e,
+ 0xc7, 0xdb, 0x1b, 0x16, 0xdf, 0xc4, 0x2e, 0x94, 0x98, 0x27, 0x02, 0x87, 0xa5, 0xbd, 0x7b, 0x66,
+ 0x1f, 0x53, 0x56, 0xef, 0x76, 0xe3, 0xbd, 0xad, 0xae, 0x7c, 0x9f, 0x07, 0x02, 0x9f, 0x81, 0x42,
+ 0x99, 0xed, 0x84, 0x82, 0x05, 0xb8, 0xfe, 0xdc, 0x5b, 0xbb, 0xf1, 0xac, 0xa7, 0x9d, 0xfb, 0x3e,
+ 0x77, 0x46, 0xa1, 0xc5, 0x03, 0xbb, 0xb3, 0x58, 0xfb, 0x2c, 0x70, 0x99, 0x65, 0xb3, 0xa0, 0x73,
+ 0x6f, 0xcc, 0x03, 0xc7, 0x4c, 0x4f, 0xc9, 0xcf, 0x8c, 0x5f, 0xbf, 0xb3, 0x1d, 0xb1, 0x58, 0xcd,
+ 0x3b, 0x26, 0x5f, 0x76, 0x37, 0xa8, 0xdd, 0x98, 0xfa, 0x3a, 0xa6, 0xbe, 0xb6, 0x79, 0x57, 0xb2,
+ 0xe7, 0xf1, 0xe7, 0xcb, 0x0f, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x25, 0xfe, 0x3a, 0x5b, 0xe2,
+ 0x08, 0x00, 0x00,
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// ChaincodeSupportClient is the client API for ChaincodeSupport service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type ChaincodeSupportClient interface {
+ Register(ctx context.Context, opts ...grpc.CallOption) (ChaincodeSupport_RegisterClient, error)
+}
+
+type chaincodeSupportClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewChaincodeSupportClient(cc *grpc.ClientConn) ChaincodeSupportClient {
+ return &chaincodeSupportClient{cc}
+}
+
+func (c *chaincodeSupportClient) Register(ctx context.Context, opts ...grpc.CallOption) (ChaincodeSupport_RegisterClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_ChaincodeSupport_serviceDesc.Streams[0], "/protos.ChaincodeSupport/Register", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &chaincodeSupportRegisterClient{stream}
+ return x, nil
+}
+
+type ChaincodeSupport_RegisterClient interface {
+ Send(*ChaincodeMessage) error
+ Recv() (*ChaincodeMessage, error)
+ grpc.ClientStream
+}
+
+type chaincodeSupportRegisterClient struct {
+ grpc.ClientStream
+}
+
+func (x *chaincodeSupportRegisterClient) Send(m *ChaincodeMessage) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *chaincodeSupportRegisterClient) Recv() (*ChaincodeMessage, error) {
+ m := new(ChaincodeMessage)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// ChaincodeSupportServer is the server API for ChaincodeSupport service.
+type ChaincodeSupportServer interface {
+ Register(ChaincodeSupport_RegisterServer) error
+}
+
+// UnimplementedChaincodeSupportServer can be embedded to have forward compatible implementations.
+type UnimplementedChaincodeSupportServer struct {
+}
+
+func (*UnimplementedChaincodeSupportServer) Register(srv ChaincodeSupport_RegisterServer) error {
+ return status.Errorf(codes.Unimplemented, "method Register not implemented")
+}
+
+func RegisterChaincodeSupportServer(s *grpc.Server, srv ChaincodeSupportServer) {
+ s.RegisterService(&_ChaincodeSupport_serviceDesc, srv)
+}
+
+func _ChaincodeSupport_Register_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(ChaincodeSupportServer).Register(&chaincodeSupportRegisterServer{stream})
+}
+
+type ChaincodeSupport_RegisterServer interface {
+ Send(*ChaincodeMessage) error
+ Recv() (*ChaincodeMessage, error)
+ grpc.ServerStream
+}
+
+type chaincodeSupportRegisterServer struct {
+ grpc.ServerStream
+}
+
+func (x *chaincodeSupportRegisterServer) Send(m *ChaincodeMessage) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *chaincodeSupportRegisterServer) Recv() (*ChaincodeMessage, error) {
+ m := new(ChaincodeMessage)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+var _ChaincodeSupport_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "protos.ChaincodeSupport",
+ HandlerType: (*ChaincodeSupportServer)(nil),
+ Methods: []grpc.MethodDesc{},
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "Register",
+ Handler: _ChaincodeSupport_Register_Handler,
+ ServerStreams: true,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "peer/chaincode_shim.proto",
+}
diff --git a/peer/configuration.pb.go b/peer/configuration.pb.go
new file mode 100644
index 0000000..c85f2c0
--- /dev/null
+++ b/peer/configuration.pb.go
@@ -0,0 +1,225 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/configuration.proto
+
+package peer
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// AnchorPeers simply represents list of anchor peers which is used in ConfigurationItem
+type AnchorPeers struct {
+ AnchorPeers []*AnchorPeer `protobuf:"bytes,1,rep,name=anchor_peers,json=anchorPeers,proto3" json:"anchor_peers,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *AnchorPeers) Reset() { *m = AnchorPeers{} }
+func (m *AnchorPeers) String() string { return proto.CompactTextString(m) }
+func (*AnchorPeers) ProtoMessage() {}
+func (*AnchorPeers) Descriptor() ([]byte, []int) {
+ return fileDescriptor_4978ae8738390a60, []int{0}
+}
+
+func (m *AnchorPeers) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_AnchorPeers.Unmarshal(m, b)
+}
+func (m *AnchorPeers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_AnchorPeers.Marshal(b, m, deterministic)
+}
+func (m *AnchorPeers) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AnchorPeers.Merge(m, src)
+}
+func (m *AnchorPeers) XXX_Size() int {
+ return xxx_messageInfo_AnchorPeers.Size(m)
+}
+func (m *AnchorPeers) XXX_DiscardUnknown() {
+ xxx_messageInfo_AnchorPeers.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_AnchorPeers proto.InternalMessageInfo
+
+func (m *AnchorPeers) GetAnchorPeers() []*AnchorPeer {
+ if m != nil {
+ return m.AnchorPeers
+ }
+ return nil
+}
+
+// AnchorPeer message structure which provides information about anchor peer, it includes host name,
+// port number and peer certificate.
+type AnchorPeer struct {
+ Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
+ Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *AnchorPeer) Reset() { *m = AnchorPeer{} }
+func (m *AnchorPeer) String() string { return proto.CompactTextString(m) }
+func (*AnchorPeer) ProtoMessage() {}
+func (*AnchorPeer) Descriptor() ([]byte, []int) {
+ return fileDescriptor_4978ae8738390a60, []int{1}
+}
+
+func (m *AnchorPeer) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_AnchorPeer.Unmarshal(m, b)
+}
+func (m *AnchorPeer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_AnchorPeer.Marshal(b, m, deterministic)
+}
+func (m *AnchorPeer) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AnchorPeer.Merge(m, src)
+}
+func (m *AnchorPeer) XXX_Size() int {
+ return xxx_messageInfo_AnchorPeer.Size(m)
+}
+func (m *AnchorPeer) XXX_DiscardUnknown() {
+ xxx_messageInfo_AnchorPeer.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_AnchorPeer proto.InternalMessageInfo
+
+func (m *AnchorPeer) GetHost() string {
+ if m != nil {
+ return m.Host
+ }
+ return ""
+}
+
+func (m *AnchorPeer) GetPort() int32 {
+ if m != nil {
+ return m.Port
+ }
+ return 0
+}
+
+// APIResource represents an API resource in the peer whose ACL
+// is determined by the policy_ref field
+type APIResource struct {
+ PolicyRef string `protobuf:"bytes,1,opt,name=policy_ref,json=policyRef,proto3" json:"policy_ref,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *APIResource) Reset() { *m = APIResource{} }
+func (m *APIResource) String() string { return proto.CompactTextString(m) }
+func (*APIResource) ProtoMessage() {}
+func (*APIResource) Descriptor() ([]byte, []int) {
+ return fileDescriptor_4978ae8738390a60, []int{2}
+}
+
+func (m *APIResource) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_APIResource.Unmarshal(m, b)
+}
+func (m *APIResource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_APIResource.Marshal(b, m, deterministic)
+}
+func (m *APIResource) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_APIResource.Merge(m, src)
+}
+func (m *APIResource) XXX_Size() int {
+ return xxx_messageInfo_APIResource.Size(m)
+}
+func (m *APIResource) XXX_DiscardUnknown() {
+ xxx_messageInfo_APIResource.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_APIResource proto.InternalMessageInfo
+
+func (m *APIResource) GetPolicyRef() string {
+ if m != nil {
+ return m.PolicyRef
+ }
+ return ""
+}
+
+// ACLs provides mappings for resources in a channel. APIResource encapsulates
+// reference to a policy used to determine ACL for the resource
+type ACLs struct {
+ Acls map[string]*APIResource `protobuf:"bytes,1,rep,name=acls,proto3" json:"acls,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ACLs) Reset() { *m = ACLs{} }
+func (m *ACLs) String() string { return proto.CompactTextString(m) }
+func (*ACLs) ProtoMessage() {}
+func (*ACLs) Descriptor() ([]byte, []int) {
+ return fileDescriptor_4978ae8738390a60, []int{3}
+}
+
+func (m *ACLs) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ACLs.Unmarshal(m, b)
+}
+func (m *ACLs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ACLs.Marshal(b, m, deterministic)
+}
+func (m *ACLs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ACLs.Merge(m, src)
+}
+func (m *ACLs) XXX_Size() int {
+ return xxx_messageInfo_ACLs.Size(m)
+}
+func (m *ACLs) XXX_DiscardUnknown() {
+ xxx_messageInfo_ACLs.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ACLs proto.InternalMessageInfo
+
+func (m *ACLs) GetAcls() map[string]*APIResource {
+ if m != nil {
+ return m.Acls
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*AnchorPeers)(nil), "protos.AnchorPeers")
+ proto.RegisterType((*AnchorPeer)(nil), "protos.AnchorPeer")
+ proto.RegisterType((*APIResource)(nil), "protos.APIResource")
+ proto.RegisterType((*ACLs)(nil), "protos.ACLs")
+ proto.RegisterMapType((map[string]*APIResource)(nil), "protos.ACLs.AclsEntry")
+}
+
+func init() { proto.RegisterFile("peer/configuration.proto", fileDescriptor_4978ae8738390a60) }
+
+var fileDescriptor_4978ae8738390a60 = []byte{
+ // 296 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x4c, 0x91, 0xcd, 0x4b, 0xc3, 0x40,
+ 0x10, 0xc5, 0x49, 0x3f, 0x84, 0x4e, 0x3c, 0xc8, 0x0a, 0x12, 0x04, 0xa1, 0xe4, 0x54, 0xa5, 0x4d,
+ 0xa0, 0x2a, 0x88, 0xb7, 0x58, 0x3d, 0x08, 0x3d, 0x94, 0x3d, 0x7a, 0x29, 0xe9, 0x3a, 0xf9, 0xc0,
+ 0x98, 0x09, 0xb3, 0x89, 0x90, 0x9b, 0x7f, 0xba, 0x64, 0xb7, 0x4d, 0x3c, 0xed, 0xdb, 0xb7, 0xbf,
+ 0x37, 0x3c, 0x76, 0xc0, 0xab, 0x10, 0x39, 0x54, 0x54, 0x26, 0x79, 0xda, 0x70, 0x5c, 0xe7, 0x54,
+ 0x06, 0x15, 0x53, 0x4d, 0xe2, 0xcc, 0x1c, 0xda, 0x7f, 0x05, 0x37, 0x2a, 0x55, 0x46, 0xbc, 0x43,
+ 0x64, 0x2d, 0x1e, 0xe1, 0x3c, 0x36, 0xd7, 0x7d, 0x97, 0xd4, 0x9e, 0x33, 0x1f, 0x2f, 0xdc, 0xb5,
+ 0xb0, 0x21, 0x1d, 0x0c, 0xa8, 0x74, 0xe3, 0x21, 0xe6, 0x3f, 0x00, 0x0c, 0x4f, 0x42, 0xc0, 0x24,
+ 0x23, 0x5d, 0x7b, 0xce, 0xdc, 0x59, 0xcc, 0xa4, 0xd1, 0x9d, 0x57, 0x11, 0xd7, 0xde, 0x68, 0xee,
+ 0x2c, 0xa6, 0xd2, 0x68, 0x7f, 0x09, 0x6e, 0xb4, 0x7b, 0x97, 0xa8, 0xa9, 0x61, 0x85, 0xe2, 0x06,
+ 0xa0, 0xa2, 0x22, 0x57, 0xed, 0x9e, 0x31, 0x39, 0x86, 0x67, 0xd6, 0x91, 0x98, 0xf8, 0xbf, 0x0e,
+ 0x4c, 0xa2, 0xcd, 0x56, 0x8b, 0x3b, 0x98, 0xc4, 0xaa, 0x38, 0x75, 0xbb, 0xea, 0xbb, 0x6d, 0xb6,
+ 0x3a, 0x88, 0x54, 0xa1, 0xdf, 0xca, 0x9a, 0x5b, 0x69, 0x98, 0xeb, 0x2d, 0xcc, 0x7a, 0x4b, 0x5c,
+ 0xc0, 0xf8, 0x0b, 0xdb, 0xe3, 0xe4, 0x4e, 0x8a, 0x5b, 0x98, 0xfe, 0xc4, 0x45, 0x83, 0xa6, 0x96,
+ 0xbb, 0xbe, 0xec, 0x67, 0x0d, 0xb5, 0xa4, 0x25, 0x9e, 0x47, 0x4f, 0xce, 0x8b, 0x04, 0x9f, 0x38,
+ 0x0d, 0xb2, 0xb6, 0x42, 0x2e, 0xf0, 0x33, 0x45, 0x0e, 0x92, 0xf8, 0xc0, 0xb9, 0x3a, 0xe5, 0xba,
+ 0x4f, 0xfb, 0x58, 0xa6, 0x79, 0x9d, 0x35, 0x87, 0x40, 0xd1, 0x77, 0xf8, 0x0f, 0x0d, 0x2d, 0xba,
+ 0xb2, 0xe8, 0x2a, 0xa5, 0xb0, 0xa3, 0x0f, 0x76, 0x11, 0xf7, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff,
+ 0x10, 0x49, 0xdc, 0x44, 0xab, 0x01, 0x00, 0x00,
+}
diff --git a/peer/events.pb.go b/peer/events.pb.go
new file mode 100644
index 0000000..1f68f9e
--- /dev/null
+++ b/peer/events.pb.go
@@ -0,0 +1,742 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/events.proto
+
+package peer
+
+import (
+ context "context"
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ common "github.com/hyperledger/fabric-protos-go/common"
+ rwset "github.com/hyperledger/fabric-protos-go/ledger/rwset"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// FilteredBlock is a minimal set of information about a block
+type FilteredBlock struct {
+ ChannelId string `protobuf:"bytes,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
+ Number uint64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
+ FilteredTransactions []*FilteredTransaction `protobuf:"bytes,4,rep,name=filtered_transactions,json=filteredTransactions,proto3" json:"filtered_transactions,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *FilteredBlock) Reset() { *m = FilteredBlock{} }
+func (m *FilteredBlock) String() string { return proto.CompactTextString(m) }
+func (*FilteredBlock) ProtoMessage() {}
+func (*FilteredBlock) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5eedcc5fab2714e6, []int{0}
+}
+
+func (m *FilteredBlock) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_FilteredBlock.Unmarshal(m, b)
+}
+func (m *FilteredBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_FilteredBlock.Marshal(b, m, deterministic)
+}
+func (m *FilteredBlock) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FilteredBlock.Merge(m, src)
+}
+func (m *FilteredBlock) XXX_Size() int {
+ return xxx_messageInfo_FilteredBlock.Size(m)
+}
+func (m *FilteredBlock) XXX_DiscardUnknown() {
+ xxx_messageInfo_FilteredBlock.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_FilteredBlock proto.InternalMessageInfo
+
+func (m *FilteredBlock) GetChannelId() string {
+ if m != nil {
+ return m.ChannelId
+ }
+ return ""
+}
+
+func (m *FilteredBlock) GetNumber() uint64 {
+ if m != nil {
+ return m.Number
+ }
+ return 0
+}
+
+func (m *FilteredBlock) GetFilteredTransactions() []*FilteredTransaction {
+ if m != nil {
+ return m.FilteredTransactions
+ }
+ return nil
+}
+
+// FilteredTransaction is a minimal set of information about a transaction
+// within a block
+type FilteredTransaction struct {
+ Txid string `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"`
+ Type common.HeaderType `protobuf:"varint,2,opt,name=type,proto3,enum=common.HeaderType" json:"type,omitempty"`
+ TxValidationCode TxValidationCode `protobuf:"varint,3,opt,name=tx_validation_code,json=txValidationCode,proto3,enum=protos.TxValidationCode" json:"tx_validation_code,omitempty"`
+ // Types that are valid to be assigned to Data:
+ // *FilteredTransaction_TransactionActions
+ Data isFilteredTransaction_Data `protobuf_oneof:"Data"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *FilteredTransaction) Reset() { *m = FilteredTransaction{} }
+func (m *FilteredTransaction) String() string { return proto.CompactTextString(m) }
+func (*FilteredTransaction) ProtoMessage() {}
+func (*FilteredTransaction) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5eedcc5fab2714e6, []int{1}
+}
+
+func (m *FilteredTransaction) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_FilteredTransaction.Unmarshal(m, b)
+}
+func (m *FilteredTransaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_FilteredTransaction.Marshal(b, m, deterministic)
+}
+func (m *FilteredTransaction) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FilteredTransaction.Merge(m, src)
+}
+func (m *FilteredTransaction) XXX_Size() int {
+ return xxx_messageInfo_FilteredTransaction.Size(m)
+}
+func (m *FilteredTransaction) XXX_DiscardUnknown() {
+ xxx_messageInfo_FilteredTransaction.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_FilteredTransaction proto.InternalMessageInfo
+
+func (m *FilteredTransaction) GetTxid() string {
+ if m != nil {
+ return m.Txid
+ }
+ return ""
+}
+
+func (m *FilteredTransaction) GetType() common.HeaderType {
+ if m != nil {
+ return m.Type
+ }
+ return common.HeaderType_MESSAGE
+}
+
+func (m *FilteredTransaction) GetTxValidationCode() TxValidationCode {
+ if m != nil {
+ return m.TxValidationCode
+ }
+ return TxValidationCode_VALID
+}
+
+type isFilteredTransaction_Data interface {
+ isFilteredTransaction_Data()
+}
+
+type FilteredTransaction_TransactionActions struct {
+ TransactionActions *FilteredTransactionActions `protobuf:"bytes,4,opt,name=transaction_actions,json=transactionActions,proto3,oneof"`
+}
+
+func (*FilteredTransaction_TransactionActions) isFilteredTransaction_Data() {}
+
+func (m *FilteredTransaction) GetData() isFilteredTransaction_Data {
+ if m != nil {
+ return m.Data
+ }
+ return nil
+}
+
+func (m *FilteredTransaction) GetTransactionActions() *FilteredTransactionActions {
+ if x, ok := m.GetData().(*FilteredTransaction_TransactionActions); ok {
+ return x.TransactionActions
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*FilteredTransaction) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*FilteredTransaction_TransactionActions)(nil),
+ }
+}
+
+// FilteredTransactionActions is a wrapper for array of TransactionAction
+// message from regular block
+type FilteredTransactionActions struct {
+ ChaincodeActions []*FilteredChaincodeAction `protobuf:"bytes,1,rep,name=chaincode_actions,json=chaincodeActions,proto3" json:"chaincode_actions,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *FilteredTransactionActions) Reset() { *m = FilteredTransactionActions{} }
+func (m *FilteredTransactionActions) String() string { return proto.CompactTextString(m) }
+func (*FilteredTransactionActions) ProtoMessage() {}
+func (*FilteredTransactionActions) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5eedcc5fab2714e6, []int{2}
+}
+
+func (m *FilteredTransactionActions) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_FilteredTransactionActions.Unmarshal(m, b)
+}
+func (m *FilteredTransactionActions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_FilteredTransactionActions.Marshal(b, m, deterministic)
+}
+func (m *FilteredTransactionActions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FilteredTransactionActions.Merge(m, src)
+}
+func (m *FilteredTransactionActions) XXX_Size() int {
+ return xxx_messageInfo_FilteredTransactionActions.Size(m)
+}
+func (m *FilteredTransactionActions) XXX_DiscardUnknown() {
+ xxx_messageInfo_FilteredTransactionActions.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_FilteredTransactionActions proto.InternalMessageInfo
+
+func (m *FilteredTransactionActions) GetChaincodeActions() []*FilteredChaincodeAction {
+ if m != nil {
+ return m.ChaincodeActions
+ }
+ return nil
+}
+
+// FilteredChaincodeAction is a minimal set of information about an action
+// within a transaction
+type FilteredChaincodeAction struct {
+ ChaincodeEvent *ChaincodeEvent `protobuf:"bytes,1,opt,name=chaincode_event,json=chaincodeEvent,proto3" json:"chaincode_event,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *FilteredChaincodeAction) Reset() { *m = FilteredChaincodeAction{} }
+func (m *FilteredChaincodeAction) String() string { return proto.CompactTextString(m) }
+func (*FilteredChaincodeAction) ProtoMessage() {}
+func (*FilteredChaincodeAction) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5eedcc5fab2714e6, []int{3}
+}
+
+func (m *FilteredChaincodeAction) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_FilteredChaincodeAction.Unmarshal(m, b)
+}
+func (m *FilteredChaincodeAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_FilteredChaincodeAction.Marshal(b, m, deterministic)
+}
+func (m *FilteredChaincodeAction) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FilteredChaincodeAction.Merge(m, src)
+}
+func (m *FilteredChaincodeAction) XXX_Size() int {
+ return xxx_messageInfo_FilteredChaincodeAction.Size(m)
+}
+func (m *FilteredChaincodeAction) XXX_DiscardUnknown() {
+ xxx_messageInfo_FilteredChaincodeAction.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_FilteredChaincodeAction proto.InternalMessageInfo
+
+func (m *FilteredChaincodeAction) GetChaincodeEvent() *ChaincodeEvent {
+ if m != nil {
+ return m.ChaincodeEvent
+ }
+ return nil
+}
+
+// BlockAndPrivateData contains Block and a map from tx_seq_in_block to rwset.TxPvtReadWriteSet
+type BlockAndPrivateData struct {
+ Block *common.Block `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"`
+ // map from tx_seq_in_block to rwset.TxPvtReadWriteSet
+ PrivateDataMap map[uint64]*rwset.TxPvtReadWriteSet `protobuf:"bytes,2,rep,name=private_data_map,json=privateDataMap,proto3" json:"private_data_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *BlockAndPrivateData) Reset() { *m = BlockAndPrivateData{} }
+func (m *BlockAndPrivateData) String() string { return proto.CompactTextString(m) }
+func (*BlockAndPrivateData) ProtoMessage() {}
+func (*BlockAndPrivateData) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5eedcc5fab2714e6, []int{4}
+}
+
+func (m *BlockAndPrivateData) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_BlockAndPrivateData.Unmarshal(m, b)
+}
+func (m *BlockAndPrivateData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_BlockAndPrivateData.Marshal(b, m, deterministic)
+}
+func (m *BlockAndPrivateData) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BlockAndPrivateData.Merge(m, src)
+}
+func (m *BlockAndPrivateData) XXX_Size() int {
+ return xxx_messageInfo_BlockAndPrivateData.Size(m)
+}
+func (m *BlockAndPrivateData) XXX_DiscardUnknown() {
+ xxx_messageInfo_BlockAndPrivateData.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_BlockAndPrivateData proto.InternalMessageInfo
+
+func (m *BlockAndPrivateData) GetBlock() *common.Block {
+ if m != nil {
+ return m.Block
+ }
+ return nil
+}
+
+func (m *BlockAndPrivateData) GetPrivateDataMap() map[uint64]*rwset.TxPvtReadWriteSet {
+ if m != nil {
+ return m.PrivateDataMap
+ }
+ return nil
+}
+
+// DeliverResponse
+type DeliverResponse struct {
+ // Types that are valid to be assigned to Type:
+ // *DeliverResponse_Status
+ // *DeliverResponse_Block
+ // *DeliverResponse_FilteredBlock
+ // *DeliverResponse_BlockAndPrivateData
+ Type isDeliverResponse_Type `protobuf_oneof:"Type"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *DeliverResponse) Reset() { *m = DeliverResponse{} }
+func (m *DeliverResponse) String() string { return proto.CompactTextString(m) }
+func (*DeliverResponse) ProtoMessage() {}
+func (*DeliverResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5eedcc5fab2714e6, []int{5}
+}
+
+func (m *DeliverResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_DeliverResponse.Unmarshal(m, b)
+}
+func (m *DeliverResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_DeliverResponse.Marshal(b, m, deterministic)
+}
+func (m *DeliverResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DeliverResponse.Merge(m, src)
+}
+func (m *DeliverResponse) XXX_Size() int {
+ return xxx_messageInfo_DeliverResponse.Size(m)
+}
+func (m *DeliverResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_DeliverResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DeliverResponse proto.InternalMessageInfo
+
+type isDeliverResponse_Type interface {
+ isDeliverResponse_Type()
+}
+
+type DeliverResponse_Status struct {
+ Status common.Status `protobuf:"varint,1,opt,name=status,proto3,enum=common.Status,oneof"`
+}
+
+type DeliverResponse_Block struct {
+ Block *common.Block `protobuf:"bytes,2,opt,name=block,proto3,oneof"`
+}
+
+type DeliverResponse_FilteredBlock struct {
+ FilteredBlock *FilteredBlock `protobuf:"bytes,3,opt,name=filtered_block,json=filteredBlock,proto3,oneof"`
+}
+
+type DeliverResponse_BlockAndPrivateData struct {
+ BlockAndPrivateData *BlockAndPrivateData `protobuf:"bytes,4,opt,name=block_and_private_data,json=blockAndPrivateData,proto3,oneof"`
+}
+
+func (*DeliverResponse_Status) isDeliverResponse_Type() {}
+
+func (*DeliverResponse_Block) isDeliverResponse_Type() {}
+
+func (*DeliverResponse_FilteredBlock) isDeliverResponse_Type() {}
+
+func (*DeliverResponse_BlockAndPrivateData) isDeliverResponse_Type() {}
+
+func (m *DeliverResponse) GetType() isDeliverResponse_Type {
+ if m != nil {
+ return m.Type
+ }
+ return nil
+}
+
+func (m *DeliverResponse) GetStatus() common.Status {
+ if x, ok := m.GetType().(*DeliverResponse_Status); ok {
+ return x.Status
+ }
+ return common.Status_UNKNOWN
+}
+
+func (m *DeliverResponse) GetBlock() *common.Block {
+ if x, ok := m.GetType().(*DeliverResponse_Block); ok {
+ return x.Block
+ }
+ return nil
+}
+
+func (m *DeliverResponse) GetFilteredBlock() *FilteredBlock {
+ if x, ok := m.GetType().(*DeliverResponse_FilteredBlock); ok {
+ return x.FilteredBlock
+ }
+ return nil
+}
+
+func (m *DeliverResponse) GetBlockAndPrivateData() *BlockAndPrivateData {
+ if x, ok := m.GetType().(*DeliverResponse_BlockAndPrivateData); ok {
+ return x.BlockAndPrivateData
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*DeliverResponse) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*DeliverResponse_Status)(nil),
+ (*DeliverResponse_Block)(nil),
+ (*DeliverResponse_FilteredBlock)(nil),
+ (*DeliverResponse_BlockAndPrivateData)(nil),
+ }
+}
+
+func init() {
+ proto.RegisterType((*FilteredBlock)(nil), "protos.FilteredBlock")
+ proto.RegisterType((*FilteredTransaction)(nil), "protos.FilteredTransaction")
+ proto.RegisterType((*FilteredTransactionActions)(nil), "protos.FilteredTransactionActions")
+ proto.RegisterType((*FilteredChaincodeAction)(nil), "protos.FilteredChaincodeAction")
+ proto.RegisterType((*BlockAndPrivateData)(nil), "protos.BlockAndPrivateData")
+ proto.RegisterMapType((map[uint64]*rwset.TxPvtReadWriteSet)(nil), "protos.BlockAndPrivateData.PrivateDataMapEntry")
+ proto.RegisterType((*DeliverResponse)(nil), "protos.DeliverResponse")
+}
+
+func init() { proto.RegisterFile("peer/events.proto", fileDescriptor_5eedcc5fab2714e6) }
+
+var fileDescriptor_5eedcc5fab2714e6 = []byte{
+ // 700 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4d, 0x6f, 0xda, 0x4a,
+ 0x14, 0xc5, 0x40, 0x78, 0xca, 0x45, 0x10, 0x32, 0xbc, 0x10, 0x8b, 0xe8, 0xe9, 0x45, 0x7e, 0x7a,
+ 0x15, 0x8b, 0xc6, 0x54, 0x74, 0x53, 0x65, 0xd1, 0x2a, 0xe4, 0x43, 0x44, 0x6a, 0x25, 0x34, 0xa1,
+ 0x8d, 0x9a, 0x2e, 0xac, 0xc1, 0xbe, 0x80, 0x1b, 0x63, 0x5b, 0xf6, 0x40, 0xe1, 0x9f, 0xf4, 0x87,
+ 0xf5, 0x97, 0x74, 0xd5, 0x55, 0x55, 0x79, 0xc6, 0xc3, 0x57, 0x48, 0xa4, 0x6c, 0xec, 0xf1, 0xbd,
+ 0xe7, 0x9c, 0x3b, 0xf7, 0xf8, 0xce, 0xc0, 0x7e, 0x88, 0x18, 0x35, 0x71, 0x8a, 0x3e, 0x8f, 0xcd,
+ 0x30, 0x0a, 0x78, 0x40, 0x0a, 0xe2, 0x15, 0xd7, 0xab, 0x76, 0x30, 0x1e, 0x07, 0x7e, 0x53, 0xbe,
+ 0x64, 0xb2, 0xae, 0x7b, 0xe8, 0x0c, 0x31, 0x6a, 0x46, 0xdf, 0x62, 0xe4, 0xf2, 0x99, 0x66, 0xea,
+ 0x42, 0xc9, 0x1e, 0x31, 0xd7, 0xb7, 0x03, 0x07, 0x2d, 0xa1, 0x99, 0xe6, 0x6a, 0x22, 0xc7, 0x23,
+ 0xe6, 0xc7, 0xcc, 0xe6, 0xae, 0x52, 0x33, 0xbe, 0x6b, 0x50, 0xba, 0x72, 0x3d, 0x8e, 0x11, 0x3a,
+ 0x6d, 0x2f, 0xb0, 0xef, 0xc9, 0x3f, 0x00, 0xf6, 0x88, 0xf9, 0x3e, 0x7a, 0x96, 0xeb, 0xe8, 0xda,
+ 0xb1, 0xd6, 0xd8, 0xa5, 0xbb, 0x69, 0xe4, 0xda, 0x21, 0x35, 0x28, 0xf8, 0x93, 0x71, 0x1f, 0x23,
+ 0x3d, 0x7b, 0xac, 0x35, 0xf2, 0x34, 0xfd, 0x22, 0x5d, 0x38, 0x18, 0xa4, 0x3a, 0xd6, 0x4a, 0x99,
+ 0x58, 0xcf, 0x1f, 0xe7, 0x1a, 0xc5, 0xd6, 0x91, 0xac, 0x17, 0x9b, 0xaa, 0x58, 0x6f, 0x89, 0xa1,
+ 0x7f, 0x0f, 0x1e, 0x06, 0x63, 0xe3, 0x97, 0x06, 0xd5, 0x2d, 0x68, 0x42, 0x20, 0xcf, 0x67, 0x8b,
+ 0xad, 0x89, 0x35, 0x79, 0x01, 0x79, 0x3e, 0x0f, 0x51, 0xec, 0xa9, 0xdc, 0x22, 0x66, 0xea, 0x58,
+ 0x07, 0x99, 0x83, 0x51, 0x6f, 0x1e, 0x22, 0x15, 0x79, 0x72, 0x05, 0x84, 0xcf, 0xac, 0x29, 0xf3,
+ 0x5c, 0x87, 0x25, 0x62, 0x56, 0x62, 0x94, 0x9e, 0x13, 0x2c, 0x5d, 0x6d, 0xb1, 0x37, 0xfb, 0xb4,
+ 0x00, 0x9c, 0x07, 0x0e, 0xd2, 0x0a, 0xdf, 0x88, 0x90, 0x8f, 0x50, 0x5d, 0x69, 0xd2, 0x5a, 0xf6,
+ 0xaa, 0x35, 0x8a, 0x2d, 0xe3, 0x89, 0x5e, 0xcf, 0x24, 0xb2, 0x93, 0xa1, 0x84, 0x3f, 0x88, 0xb6,
+ 0x0b, 0x90, 0xbf, 0x60, 0x9c, 0x19, 0x5f, 0xa1, 0xfe, 0x38, 0x97, 0xbc, 0x87, 0xfd, 0xe5, 0x4f,
+ 0x56, 0xa5, 0x35, 0x61, 0xf3, 0xbf, 0x9b, 0xa5, 0xcf, 0x15, 0x50, 0x92, 0x69, 0xc5, 0x5e, 0x0f,
+ 0xc4, 0xc6, 0x1d, 0x1c, 0x3e, 0x02, 0x26, 0xef, 0x60, 0x6f, 0x63, 0x9a, 0x84, 0xe9, 0xc5, 0x56,
+ 0x4d, 0x95, 0x59, 0x30, 0x2e, 0x93, 0x2c, 0x2d, 0xdb, 0x6b, 0xdf, 0xc6, 0x4f, 0x0d, 0xaa, 0x62,
+ 0xaa, 0xce, 0x7c, 0xa7, 0x1b, 0xb9, 0x53, 0xc6, 0x31, 0xe9, 0x8f, 0xfc, 0x07, 0x3b, 0xfd, 0x24,
+ 0x9c, 0xca, 0x95, 0xd4, 0xff, 0x12, 0x58, 0x2a, 0x73, 0xe4, 0x33, 0x54, 0x42, 0xc9, 0xb1, 0x1c,
+ 0xc6, 0x99, 0x35, 0x66, 0xa1, 0x9e, 0x15, 0x5d, 0x36, 0x55, 0xf9, 0x2d, 0xda, 0xe6, 0xca, 0xfa,
+ 0x03, 0x0b, 0x2f, 0x7d, 0x1e, 0xcd, 0x69, 0x39, 0x5c, 0x0b, 0xd6, 0xbf, 0x40, 0x75, 0x0b, 0x8c,
+ 0x54, 0x20, 0x77, 0x8f, 0x73, 0xb1, 0xa9, 0x3c, 0x4d, 0x96, 0xc4, 0x84, 0x9d, 0x29, 0xf3, 0x26,
+ 0x72, 0xb0, 0x8a, 0x2d, 0xdd, 0x94, 0xe7, 0xad, 0x37, 0xeb, 0x4e, 0x39, 0x45, 0xe6, 0xdc, 0x46,
+ 0x2e, 0xc7, 0x1b, 0xe4, 0x54, 0xc2, 0x4e, 0xb3, 0x6f, 0x34, 0xe3, 0xb7, 0x06, 0x7b, 0x17, 0xe8,
+ 0xb9, 0x53, 0x8c, 0x28, 0xc6, 0x61, 0xe0, 0xc7, 0x48, 0x1a, 0x50, 0x88, 0x39, 0xe3, 0x93, 0x58,
+ 0x88, 0x97, 0x5b, 0x65, 0xd5, 0xf1, 0x8d, 0x88, 0x76, 0x32, 0x34, 0xcd, 0x93, 0xff, 0x95, 0x35,
+ 0xd9, 0x2d, 0xd6, 0x74, 0x32, 0xca, 0x9c, 0xb7, 0x50, 0x5e, 0x1c, 0x37, 0x89, 0xcf, 0x09, 0xfc,
+ 0xc1, 0xe6, 0x00, 0x28, 0x5e, 0x69, 0xb0, 0x76, 0xca, 0x29, 0xd4, 0x04, 0xcd, 0x62, 0xbe, 0x63,
+ 0xad, 0xda, 0x9c, 0xce, 0xf0, 0xd1, 0x13, 0x16, 0x77, 0x32, 0xb4, 0xda, 0x7f, 0x18, 0x4e, 0xa6,
+ 0x37, 0x39, 0x6a, 0xad, 0x1f, 0x1a, 0xfc, 0x95, 0x1a, 0x40, 0x4e, 0x97, 0xcb, 0x8a, 0x6a, 0xe5,
+ 0xd2, 0x9f, 0xa2, 0x17, 0x84, 0x58, 0x3f, 0x54, 0x45, 0x36, 0xec, 0x32, 0x32, 0x0d, 0xed, 0x95,
+ 0x46, 0xda, 0x0b, 0x1f, 0x55, 0x33, 0xcf, 0xd7, 0xb8, 0x86, 0x5a, 0x9a, 0xb8, 0x75, 0xf9, 0x68,
+ 0x75, 0x06, 0x9f, 0x2b, 0xd5, 0x66, 0x60, 0x04, 0xd1, 0xd0, 0x1c, 0xcd, 0x43, 0x8c, 0xe4, 0x1d,
+ 0x6c, 0x0e, 0x58, 0x3f, 0x72, 0x6d, 0x45, 0x4b, 0xae, 0xd8, 0x76, 0x49, 0x4c, 0x7e, 0xdc, 0x65,
+ 0xf6, 0x3d, 0x1b, 0xe2, 0xdd, 0xcb, 0xa1, 0xcb, 0x47, 0x93, 0x7e, 0x52, 0xab, 0xb9, 0xc2, 0x6c,
+ 0x4a, 0xe6, 0x89, 0x64, 0x9e, 0x0c, 0x83, 0x66, 0x42, 0xee, 0xcb, 0x8b, 0xff, 0xf5, 0x9f, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0xe9, 0x5f, 0xb5, 0x2a, 0x14, 0x06, 0x00, 0x00,
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// DeliverClient is the client API for Deliver service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type DeliverClient interface {
+ // Deliver first requires an Envelope of type ab.DELIVER_SEEK_INFO with
+ // Payload data as a marshaled orderer.SeekInfo message,
+ // then a stream of block replies is received
+ Deliver(ctx context.Context, opts ...grpc.CallOption) (Deliver_DeliverClient, error)
+ // DeliverFiltered first requires an Envelope of type ab.DELIVER_SEEK_INFO with
+ // Payload data as a marshaled orderer.SeekInfo message,
+ // then a stream of **filtered** block replies is received
+ DeliverFiltered(ctx context.Context, opts ...grpc.CallOption) (Deliver_DeliverFilteredClient, error)
+ // DeliverWithPrivateData first requires an Envelope of type ab.DELIVER_SEEK_INFO with
+ // Payload data as a marshaled orderer.SeekInfo message,
+ // then a stream of block and private data replies is received
+ DeliverWithPrivateData(ctx context.Context, opts ...grpc.CallOption) (Deliver_DeliverWithPrivateDataClient, error)
+}
+
+type deliverClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewDeliverClient(cc *grpc.ClientConn) DeliverClient {
+ return &deliverClient{cc}
+}
+
+func (c *deliverClient) Deliver(ctx context.Context, opts ...grpc.CallOption) (Deliver_DeliverClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_Deliver_serviceDesc.Streams[0], "/protos.Deliver/Deliver", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &deliverDeliverClient{stream}
+ return x, nil
+}
+
+type Deliver_DeliverClient interface {
+ Send(*common.Envelope) error
+ Recv() (*DeliverResponse, error)
+ grpc.ClientStream
+}
+
+type deliverDeliverClient struct {
+ grpc.ClientStream
+}
+
+func (x *deliverDeliverClient) Send(m *common.Envelope) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *deliverDeliverClient) Recv() (*DeliverResponse, error) {
+ m := new(DeliverResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *deliverClient) DeliverFiltered(ctx context.Context, opts ...grpc.CallOption) (Deliver_DeliverFilteredClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_Deliver_serviceDesc.Streams[1], "/protos.Deliver/DeliverFiltered", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &deliverDeliverFilteredClient{stream}
+ return x, nil
+}
+
+type Deliver_DeliverFilteredClient interface {
+ Send(*common.Envelope) error
+ Recv() (*DeliverResponse, error)
+ grpc.ClientStream
+}
+
+type deliverDeliverFilteredClient struct {
+ grpc.ClientStream
+}
+
+func (x *deliverDeliverFilteredClient) Send(m *common.Envelope) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *deliverDeliverFilteredClient) Recv() (*DeliverResponse, error) {
+ m := new(DeliverResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *deliverClient) DeliverWithPrivateData(ctx context.Context, opts ...grpc.CallOption) (Deliver_DeliverWithPrivateDataClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_Deliver_serviceDesc.Streams[2], "/protos.Deliver/DeliverWithPrivateData", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &deliverDeliverWithPrivateDataClient{stream}
+ return x, nil
+}
+
+type Deliver_DeliverWithPrivateDataClient interface {
+ Send(*common.Envelope) error
+ Recv() (*DeliverResponse, error)
+ grpc.ClientStream
+}
+
+type deliverDeliverWithPrivateDataClient struct {
+ grpc.ClientStream
+}
+
+func (x *deliverDeliverWithPrivateDataClient) Send(m *common.Envelope) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *deliverDeliverWithPrivateDataClient) Recv() (*DeliverResponse, error) {
+ m := new(DeliverResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// DeliverServer is the server API for Deliver service.
+type DeliverServer interface {
+ // Deliver first requires an Envelope of type ab.DELIVER_SEEK_INFO with
+ // Payload data as a marshaled orderer.SeekInfo message,
+ // then a stream of block replies is received
+ Deliver(Deliver_DeliverServer) error
+ // DeliverFiltered first requires an Envelope of type ab.DELIVER_SEEK_INFO with
+ // Payload data as a marshaled orderer.SeekInfo message,
+ // then a stream of **filtered** block replies is received
+ DeliverFiltered(Deliver_DeliverFilteredServer) error
+ // DeliverWithPrivateData first requires an Envelope of type ab.DELIVER_SEEK_INFO with
+ // Payload data as a marshaled orderer.SeekInfo message,
+ // then a stream of block and private data replies is received
+ DeliverWithPrivateData(Deliver_DeliverWithPrivateDataServer) error
+}
+
+// UnimplementedDeliverServer can be embedded to have forward compatible implementations.
+type UnimplementedDeliverServer struct {
+}
+
+func (*UnimplementedDeliverServer) Deliver(srv Deliver_DeliverServer) error {
+ return status.Errorf(codes.Unimplemented, "method Deliver not implemented")
+}
+func (*UnimplementedDeliverServer) DeliverFiltered(srv Deliver_DeliverFilteredServer) error {
+ return status.Errorf(codes.Unimplemented, "method DeliverFiltered not implemented")
+}
+func (*UnimplementedDeliverServer) DeliverWithPrivateData(srv Deliver_DeliverWithPrivateDataServer) error {
+ return status.Errorf(codes.Unimplemented, "method DeliverWithPrivateData not implemented")
+}
+
+func RegisterDeliverServer(s *grpc.Server, srv DeliverServer) {
+ s.RegisterService(&_Deliver_serviceDesc, srv)
+}
+
+func _Deliver_Deliver_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(DeliverServer).Deliver(&deliverDeliverServer{stream})
+}
+
+type Deliver_DeliverServer interface {
+ Send(*DeliverResponse) error
+ Recv() (*common.Envelope, error)
+ grpc.ServerStream
+}
+
+type deliverDeliverServer struct {
+ grpc.ServerStream
+}
+
+func (x *deliverDeliverServer) Send(m *DeliverResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *deliverDeliverServer) Recv() (*common.Envelope, error) {
+ m := new(common.Envelope)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func _Deliver_DeliverFiltered_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(DeliverServer).DeliverFiltered(&deliverDeliverFilteredServer{stream})
+}
+
+type Deliver_DeliverFilteredServer interface {
+ Send(*DeliverResponse) error
+ Recv() (*common.Envelope, error)
+ grpc.ServerStream
+}
+
+type deliverDeliverFilteredServer struct {
+ grpc.ServerStream
+}
+
+func (x *deliverDeliverFilteredServer) Send(m *DeliverResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *deliverDeliverFilteredServer) Recv() (*common.Envelope, error) {
+ m := new(common.Envelope)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func _Deliver_DeliverWithPrivateData_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(DeliverServer).DeliverWithPrivateData(&deliverDeliverWithPrivateDataServer{stream})
+}
+
+type Deliver_DeliverWithPrivateDataServer interface {
+ Send(*DeliverResponse) error
+ Recv() (*common.Envelope, error)
+ grpc.ServerStream
+}
+
+type deliverDeliverWithPrivateDataServer struct {
+ grpc.ServerStream
+}
+
+func (x *deliverDeliverWithPrivateDataServer) Send(m *DeliverResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *deliverDeliverWithPrivateDataServer) Recv() (*common.Envelope, error) {
+ m := new(common.Envelope)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+var _Deliver_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "protos.Deliver",
+ HandlerType: (*DeliverServer)(nil),
+ Methods: []grpc.MethodDesc{},
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "Deliver",
+ Handler: _Deliver_Deliver_Handler,
+ ServerStreams: true,
+ ClientStreams: true,
+ },
+ {
+ StreamName: "DeliverFiltered",
+ Handler: _Deliver_DeliverFiltered_Handler,
+ ServerStreams: true,
+ ClientStreams: true,
+ },
+ {
+ StreamName: "DeliverWithPrivateData",
+ Handler: _Deliver_DeliverWithPrivateData_Handler,
+ ServerStreams: true,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "peer/events.proto",
+}
diff --git a/peer/lifecycle/chaincode_definition.pb.go b/peer/lifecycle/chaincode_definition.pb.go
new file mode 100644
index 0000000..c202026
--- /dev/null
+++ b/peer/lifecycle/chaincode_definition.pb.go
@@ -0,0 +1,158 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/lifecycle/chaincode_definition.proto
+
+package lifecycle
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// ChaincodeEndorsementInfo is (most) everything the peer needs to know in order
+// to execute a chaincode
+type ChaincodeEndorsementInfo struct {
+ Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
+ InitRequired bool `protobuf:"varint,2,opt,name=init_required,json=initRequired,proto3" json:"init_required,omitempty"`
+ EndorsementPlugin string `protobuf:"bytes,3,opt,name=endorsement_plugin,json=endorsementPlugin,proto3" json:"endorsement_plugin,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeEndorsementInfo) Reset() { *m = ChaincodeEndorsementInfo{} }
+func (m *ChaincodeEndorsementInfo) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeEndorsementInfo) ProtoMessage() {}
+func (*ChaincodeEndorsementInfo) Descriptor() ([]byte, []int) {
+ return fileDescriptor_f0faa93bbd697c66, []int{0}
+}
+
+func (m *ChaincodeEndorsementInfo) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeEndorsementInfo.Unmarshal(m, b)
+}
+func (m *ChaincodeEndorsementInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeEndorsementInfo.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeEndorsementInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeEndorsementInfo.Merge(m, src)
+}
+func (m *ChaincodeEndorsementInfo) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeEndorsementInfo.Size(m)
+}
+func (m *ChaincodeEndorsementInfo) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeEndorsementInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeEndorsementInfo proto.InternalMessageInfo
+
+func (m *ChaincodeEndorsementInfo) GetVersion() string {
+ if m != nil {
+ return m.Version
+ }
+ return ""
+}
+
+func (m *ChaincodeEndorsementInfo) GetInitRequired() bool {
+ if m != nil {
+ return m.InitRequired
+ }
+ return false
+}
+
+func (m *ChaincodeEndorsementInfo) GetEndorsementPlugin() string {
+ if m != nil {
+ return m.EndorsementPlugin
+ }
+ return ""
+}
+
+// ValidationInfo is (most) everything the peer needs to know in order
+// to validate a transaction
+type ChaincodeValidationInfo struct {
+ ValidationPlugin string `protobuf:"bytes,1,opt,name=validation_plugin,json=validationPlugin,proto3" json:"validation_plugin,omitempty"`
+ ValidationParameter []byte `protobuf:"bytes,2,opt,name=validation_parameter,json=validationParameter,proto3" json:"validation_parameter,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeValidationInfo) Reset() { *m = ChaincodeValidationInfo{} }
+func (m *ChaincodeValidationInfo) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeValidationInfo) ProtoMessage() {}
+func (*ChaincodeValidationInfo) Descriptor() ([]byte, []int) {
+ return fileDescriptor_f0faa93bbd697c66, []int{1}
+}
+
+func (m *ChaincodeValidationInfo) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeValidationInfo.Unmarshal(m, b)
+}
+func (m *ChaincodeValidationInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeValidationInfo.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeValidationInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeValidationInfo.Merge(m, src)
+}
+func (m *ChaincodeValidationInfo) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeValidationInfo.Size(m)
+}
+func (m *ChaincodeValidationInfo) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeValidationInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeValidationInfo proto.InternalMessageInfo
+
+func (m *ChaincodeValidationInfo) GetValidationPlugin() string {
+ if m != nil {
+ return m.ValidationPlugin
+ }
+ return ""
+}
+
+func (m *ChaincodeValidationInfo) GetValidationParameter() []byte {
+ if m != nil {
+ return m.ValidationParameter
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*ChaincodeEndorsementInfo)(nil), "lifecycle.ChaincodeEndorsementInfo")
+ proto.RegisterType((*ChaincodeValidationInfo)(nil), "lifecycle.ChaincodeValidationInfo")
+}
+
+func init() {
+ proto.RegisterFile("peer/lifecycle/chaincode_definition.proto", fileDescriptor_f0faa93bbd697c66)
+}
+
+var fileDescriptor_f0faa93bbd697c66 = []byte{
+ // 275 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x91, 0x4f, 0x4b, 0xb5, 0x40,
+ 0x14, 0xc6, 0xf1, 0x7d, 0xa1, 0xba, 0xc3, 0x0d, 0xba, 0x53, 0x90, 0xcb, 0xcb, 0x6d, 0x73, 0xa3,
+ 0x1c, 0x89, 0xa0, 0x0f, 0x50, 0xb4, 0x68, 0x17, 0x2e, 0x5a, 0xb4, 0x91, 0x71, 0xe6, 0xa8, 0x07,
+ 0x74, 0x8e, 0x1d, 0xf5, 0x82, 0xdf, 0xa0, 0x8f, 0x1d, 0x6a, 0x7a, 0x6d, 0x39, 0xe7, 0xf9, 0xc3,
+ 0x8f, 0x67, 0xc4, 0x6d, 0x05, 0xc0, 0x61, 0x81, 0x29, 0x98, 0xce, 0x14, 0x10, 0x9a, 0x5c, 0xa3,
+ 0x33, 0x64, 0x21, 0xb6, 0x90, 0xa2, 0xc3, 0x06, 0xc9, 0xa9, 0x8a, 0xa9, 0x21, 0xb9, 0x9a, 0x5d,
+ 0xbb, 0x6f, 0x4f, 0xf8, 0x2f, 0x93, 0xf3, 0xd5, 0x59, 0xe2, 0x1a, 0x4a, 0x70, 0xcd, 0x9b, 0x4b,
+ 0x49, 0xfa, 0xe2, 0xf4, 0x00, 0x5c, 0x23, 0x39, 0xdf, 0xdb, 0x7a, 0xfb, 0x55, 0x34, 0x3d, 0xe5,
+ 0x8d, 0x38, 0xef, 0x2b, 0x63, 0x86, 0xaf, 0x16, 0x19, 0xac, 0xff, 0x6f, 0xeb, 0xed, 0xcf, 0xa2,
+ 0x75, 0x7f, 0x8c, 0x7e, 0x6f, 0x32, 0x10, 0x12, 0x8e, 0x8d, 0x71, 0x55, 0xb4, 0x19, 0x3a, 0xff,
+ 0xff, 0xd0, 0xb4, 0x59, 0x28, 0xef, 0x83, 0xb0, 0xeb, 0xc4, 0xf5, 0x4c, 0xf2, 0xa1, 0x0b, 0xb4,
+ 0xba, 0x47, 0x1e, 0x40, 0xee, 0xc4, 0xe6, 0x30, 0x5f, 0xa6, 0xa2, 0x11, 0xe9, 0xe2, 0x28, 0x8c,
+ 0x3d, 0xf2, 0x41, 0x5c, 0x2d, 0xcd, 0x9a, 0x75, 0x09, 0x0d, 0xf0, 0x80, 0xb8, 0x8e, 0x2e, 0x17,
+ 0xfe, 0x49, 0x7a, 0x4e, 0xc5, 0x3d, 0x71, 0xa6, 0xf2, 0xae, 0x02, 0x2e, 0xc0, 0x66, 0xc0, 0x2a,
+ 0xd5, 0x09, 0xa3, 0x19, 0x07, 0xab, 0x55, 0xbf, 0xad, 0x9a, 0x57, 0xfb, 0x7c, 0xca, 0xb0, 0xc9,
+ 0xdb, 0x44, 0x19, 0x2a, 0xc3, 0x45, 0x28, 0x1c, 0x43, 0xc1, 0x18, 0x0a, 0x32, 0x0a, 0xff, 0xfe,
+ 0x49, 0x72, 0x32, 0x28, 0x8f, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd6, 0x94, 0x68, 0xee, 0xac,
+ 0x01, 0x00, 0x00,
+}
diff --git a/peer/lifecycle/db.pb.go b/peer/lifecycle/db.pb.go
new file mode 100644
index 0000000..8284d16
--- /dev/null
+++ b/peer/lifecycle/db.pb.go
@@ -0,0 +1,193 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/lifecycle/db.proto
+
+package lifecycle
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// StateMetadata describes the keys in a namespace. It is necessary because
+// in collections, range scans are not possible during transactions which
+// write. Therefore we must track the keys in our namespace ourselves.
+type StateMetadata struct {
+ Datatype string `protobuf:"bytes,1,opt,name=datatype,proto3" json:"datatype,omitempty"`
+ Fields []string `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StateMetadata) Reset() { *m = StateMetadata{} }
+func (m *StateMetadata) String() string { return proto.CompactTextString(m) }
+func (*StateMetadata) ProtoMessage() {}
+func (*StateMetadata) Descriptor() ([]byte, []int) {
+ return fileDescriptor_389b29a8aaf0aebb, []int{0}
+}
+
+func (m *StateMetadata) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StateMetadata.Unmarshal(m, b)
+}
+func (m *StateMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StateMetadata.Marshal(b, m, deterministic)
+}
+func (m *StateMetadata) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StateMetadata.Merge(m, src)
+}
+func (m *StateMetadata) XXX_Size() int {
+ return xxx_messageInfo_StateMetadata.Size(m)
+}
+func (m *StateMetadata) XXX_DiscardUnknown() {
+ xxx_messageInfo_StateMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StateMetadata proto.InternalMessageInfo
+
+func (m *StateMetadata) GetDatatype() string {
+ if m != nil {
+ return m.Datatype
+ }
+ return ""
+}
+
+func (m *StateMetadata) GetFields() []string {
+ if m != nil {
+ return m.Fields
+ }
+ return nil
+}
+
+// StateData encodes a particular field of a datatype
+type StateData struct {
+ // Types that are valid to be assigned to Type:
+ // *StateData_Int64
+ // *StateData_Bytes
+ // *StateData_String_
+ Type isStateData_Type `protobuf_oneof:"Type"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StateData) Reset() { *m = StateData{} }
+func (m *StateData) String() string { return proto.CompactTextString(m) }
+func (*StateData) ProtoMessage() {}
+func (*StateData) Descriptor() ([]byte, []int) {
+ return fileDescriptor_389b29a8aaf0aebb, []int{1}
+}
+
+func (m *StateData) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StateData.Unmarshal(m, b)
+}
+func (m *StateData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StateData.Marshal(b, m, deterministic)
+}
+func (m *StateData) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StateData.Merge(m, src)
+}
+func (m *StateData) XXX_Size() int {
+ return xxx_messageInfo_StateData.Size(m)
+}
+func (m *StateData) XXX_DiscardUnknown() {
+ xxx_messageInfo_StateData.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StateData proto.InternalMessageInfo
+
+type isStateData_Type interface {
+ isStateData_Type()
+}
+
+type StateData_Int64 struct {
+ Int64 int64 `protobuf:"varint,1,opt,name=Int64,proto3,oneof"`
+}
+
+type StateData_Bytes struct {
+ Bytes []byte `protobuf:"bytes,2,opt,name=Bytes,proto3,oneof"`
+}
+
+type StateData_String_ struct {
+ String_ string `protobuf:"bytes,3,opt,name=String,proto3,oneof"`
+}
+
+func (*StateData_Int64) isStateData_Type() {}
+
+func (*StateData_Bytes) isStateData_Type() {}
+
+func (*StateData_String_) isStateData_Type() {}
+
+func (m *StateData) GetType() isStateData_Type {
+ if m != nil {
+ return m.Type
+ }
+ return nil
+}
+
+func (m *StateData) GetInt64() int64 {
+ if x, ok := m.GetType().(*StateData_Int64); ok {
+ return x.Int64
+ }
+ return 0
+}
+
+func (m *StateData) GetBytes() []byte {
+ if x, ok := m.GetType().(*StateData_Bytes); ok {
+ return x.Bytes
+ }
+ return nil
+}
+
+func (m *StateData) GetString_() string {
+ if x, ok := m.GetType().(*StateData_String_); ok {
+ return x.String_
+ }
+ return ""
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*StateData) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*StateData_Int64)(nil),
+ (*StateData_Bytes)(nil),
+ (*StateData_String_)(nil),
+ }
+}
+
+func init() {
+ proto.RegisterType((*StateMetadata)(nil), "lifecycle.StateMetadata")
+ proto.RegisterType((*StateData)(nil), "lifecycle.StateData")
+}
+
+func init() { proto.RegisterFile("peer/lifecycle/db.proto", fileDescriptor_389b29a8aaf0aebb) }
+
+var fileDescriptor_389b29a8aaf0aebb = []byte{
+ // 235 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x90, 0xb1, 0x4e, 0xc3, 0x30,
+ 0x14, 0x45, 0x1b, 0x02, 0x11, 0x79, 0x82, 0x25, 0x43, 0x89, 0x98, 0xaa, 0x4e, 0x19, 0xa8, 0x3d,
+ 0x80, 0xfa, 0x01, 0x81, 0xa1, 0x0c, 0x2c, 0x29, 0x13, 0x12, 0x83, 0x93, 0xbc, 0xb8, 0x96, 0x4c,
+ 0x6d, 0xb9, 0x8f, 0xc1, 0x7f, 0x8f, 0x6c, 0x57, 0x11, 0x9d, 0xac, 0x73, 0xad, 0x73, 0xad, 0x6b,
+ 0x78, 0xb0, 0x88, 0x8e, 0x6b, 0x35, 0xe1, 0xe0, 0x07, 0x8d, 0x7c, 0xec, 0x99, 0x75, 0x86, 0x4c,
+ 0x55, 0xce, 0xd9, 0xfa, 0x15, 0xee, 0xf7, 0x24, 0x08, 0x3f, 0x90, 0xc4, 0x28, 0x48, 0x54, 0x8f,
+ 0x70, 0x1b, 0x4e, 0xf2, 0x16, 0xeb, 0x6c, 0x95, 0x35, 0x65, 0x37, 0x73, 0xb5, 0x84, 0x62, 0x52,
+ 0xa8, 0xc7, 0x53, 0x7d, 0xb5, 0xca, 0x9b, 0xb2, 0x3b, 0xd3, 0xfa, 0x1b, 0xca, 0x58, 0xf2, 0x16,
+ 0x0a, 0x96, 0x70, 0xf3, 0x7e, 0xa4, 0xed, 0x4b, 0xb4, 0xf3, 0xdd, 0xa2, 0x4b, 0x18, 0xf2, 0xd6,
+ 0x13, 0x06, 0x37, 0x6b, 0xee, 0x42, 0x1e, 0xb1, 0xaa, 0xa1, 0xd8, 0x93, 0x53, 0x47, 0x59, 0xe7,
+ 0xe1, 0xb9, 0xdd, 0xa2, 0x3b, 0x73, 0x5b, 0xc0, 0xf5, 0xa7, 0xb7, 0xd8, 0x4e, 0xf0, 0x64, 0x9c,
+ 0x64, 0x07, 0x6f, 0xd1, 0x69, 0x1c, 0x25, 0x3a, 0x36, 0x89, 0xde, 0xa9, 0x21, 0xcd, 0x39, 0xb1,
+ 0xb0, 0x93, 0xcd, 0x9b, 0xbe, 0xb6, 0x52, 0xd1, 0xe1, 0xb7, 0x67, 0x83, 0xf9, 0xe1, 0xff, 0x24,
+ 0x9e, 0xa4, 0x4d, 0x92, 0x36, 0xd2, 0xf0, 0xcb, 0xff, 0xe9, 0x8b, 0x78, 0xf3, 0xfc, 0x17, 0x00,
+ 0x00, 0xff, 0xff, 0xc6, 0xbc, 0x63, 0x86, 0x38, 0x01, 0x00, 0x00,
+}
diff --git a/peer/lifecycle/lifecycle.pb.go b/peer/lifecycle/lifecycle.pb.go
new file mode 100644
index 0000000..f372bdb
--- /dev/null
+++ b/peer/lifecycle/lifecycle.pb.go
@@ -0,0 +1,1585 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/lifecycle/lifecycle.proto
+
+package lifecycle
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ common "github.com/hyperledger/fabric-protos-go/common"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// InstallChaincodeArgs is the message used as the argument to
+// '_lifecycle.InstallChaincode'.
+type InstallChaincodeArgs struct {
+ ChaincodeInstallPackage []byte `protobuf:"bytes,1,opt,name=chaincode_install_package,json=chaincodeInstallPackage,proto3" json:"chaincode_install_package,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *InstallChaincodeArgs) Reset() { *m = InstallChaincodeArgs{} }
+func (m *InstallChaincodeArgs) String() string { return proto.CompactTextString(m) }
+func (*InstallChaincodeArgs) ProtoMessage() {}
+func (*InstallChaincodeArgs) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{0}
+}
+
+func (m *InstallChaincodeArgs) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_InstallChaincodeArgs.Unmarshal(m, b)
+}
+func (m *InstallChaincodeArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_InstallChaincodeArgs.Marshal(b, m, deterministic)
+}
+func (m *InstallChaincodeArgs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_InstallChaincodeArgs.Merge(m, src)
+}
+func (m *InstallChaincodeArgs) XXX_Size() int {
+ return xxx_messageInfo_InstallChaincodeArgs.Size(m)
+}
+func (m *InstallChaincodeArgs) XXX_DiscardUnknown() {
+ xxx_messageInfo_InstallChaincodeArgs.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_InstallChaincodeArgs proto.InternalMessageInfo
+
+func (m *InstallChaincodeArgs) GetChaincodeInstallPackage() []byte {
+ if m != nil {
+ return m.ChaincodeInstallPackage
+ }
+ return nil
+}
+
+// InstallChaincodeArgs is the message returned by
+// '_lifecycle.InstallChaincode'.
+type InstallChaincodeResult struct {
+ PackageId string `protobuf:"bytes,1,opt,name=package_id,json=packageId,proto3" json:"package_id,omitempty"`
+ Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *InstallChaincodeResult) Reset() { *m = InstallChaincodeResult{} }
+func (m *InstallChaincodeResult) String() string { return proto.CompactTextString(m) }
+func (*InstallChaincodeResult) ProtoMessage() {}
+func (*InstallChaincodeResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{1}
+}
+
+func (m *InstallChaincodeResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_InstallChaincodeResult.Unmarshal(m, b)
+}
+func (m *InstallChaincodeResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_InstallChaincodeResult.Marshal(b, m, deterministic)
+}
+func (m *InstallChaincodeResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_InstallChaincodeResult.Merge(m, src)
+}
+func (m *InstallChaincodeResult) XXX_Size() int {
+ return xxx_messageInfo_InstallChaincodeResult.Size(m)
+}
+func (m *InstallChaincodeResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_InstallChaincodeResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_InstallChaincodeResult proto.InternalMessageInfo
+
+func (m *InstallChaincodeResult) GetPackageId() string {
+ if m != nil {
+ return m.PackageId
+ }
+ return ""
+}
+
+func (m *InstallChaincodeResult) GetLabel() string {
+ if m != nil {
+ return m.Label
+ }
+ return ""
+}
+
+// QueryInstalledChaincodeArgs is the message used as arguments
+// '_lifecycle.QueryInstalledChaincode'
+type QueryInstalledChaincodeArgs struct {
+ PackageId string `protobuf:"bytes,1,opt,name=package_id,json=packageId,proto3" json:"package_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryInstalledChaincodeArgs) Reset() { *m = QueryInstalledChaincodeArgs{} }
+func (m *QueryInstalledChaincodeArgs) String() string { return proto.CompactTextString(m) }
+func (*QueryInstalledChaincodeArgs) ProtoMessage() {}
+func (*QueryInstalledChaincodeArgs) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{2}
+}
+
+func (m *QueryInstalledChaincodeArgs) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryInstalledChaincodeArgs.Unmarshal(m, b)
+}
+func (m *QueryInstalledChaincodeArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryInstalledChaincodeArgs.Marshal(b, m, deterministic)
+}
+func (m *QueryInstalledChaincodeArgs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryInstalledChaincodeArgs.Merge(m, src)
+}
+func (m *QueryInstalledChaincodeArgs) XXX_Size() int {
+ return xxx_messageInfo_QueryInstalledChaincodeArgs.Size(m)
+}
+func (m *QueryInstalledChaincodeArgs) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryInstalledChaincodeArgs.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryInstalledChaincodeArgs proto.InternalMessageInfo
+
+func (m *QueryInstalledChaincodeArgs) GetPackageId() string {
+ if m != nil {
+ return m.PackageId
+ }
+ return ""
+}
+
+// QueryInstalledChaincodeResult is the message returned by
+// '_lifecycle.QueryInstalledChaincode'
+type QueryInstalledChaincodeResult struct {
+ PackageId string `protobuf:"bytes,1,opt,name=package_id,json=packageId,proto3" json:"package_id,omitempty"`
+ Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
+ References map[string]*QueryInstalledChaincodeResult_References `protobuf:"bytes,3,rep,name=references,proto3" json:"references,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryInstalledChaincodeResult) Reset() { *m = QueryInstalledChaincodeResult{} }
+func (m *QueryInstalledChaincodeResult) String() string { return proto.CompactTextString(m) }
+func (*QueryInstalledChaincodeResult) ProtoMessage() {}
+func (*QueryInstalledChaincodeResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{3}
+}
+
+func (m *QueryInstalledChaincodeResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryInstalledChaincodeResult.Unmarshal(m, b)
+}
+func (m *QueryInstalledChaincodeResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryInstalledChaincodeResult.Marshal(b, m, deterministic)
+}
+func (m *QueryInstalledChaincodeResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryInstalledChaincodeResult.Merge(m, src)
+}
+func (m *QueryInstalledChaincodeResult) XXX_Size() int {
+ return xxx_messageInfo_QueryInstalledChaincodeResult.Size(m)
+}
+func (m *QueryInstalledChaincodeResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryInstalledChaincodeResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryInstalledChaincodeResult proto.InternalMessageInfo
+
+func (m *QueryInstalledChaincodeResult) GetPackageId() string {
+ if m != nil {
+ return m.PackageId
+ }
+ return ""
+}
+
+func (m *QueryInstalledChaincodeResult) GetLabel() string {
+ if m != nil {
+ return m.Label
+ }
+ return ""
+}
+
+func (m *QueryInstalledChaincodeResult) GetReferences() map[string]*QueryInstalledChaincodeResult_References {
+ if m != nil {
+ return m.References
+ }
+ return nil
+}
+
+type QueryInstalledChaincodeResult_References struct {
+ Chaincodes []*QueryInstalledChaincodeResult_Chaincode `protobuf:"bytes,1,rep,name=chaincodes,proto3" json:"chaincodes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryInstalledChaincodeResult_References) Reset() {
+ *m = QueryInstalledChaincodeResult_References{}
+}
+func (m *QueryInstalledChaincodeResult_References) String() string { return proto.CompactTextString(m) }
+func (*QueryInstalledChaincodeResult_References) ProtoMessage() {}
+func (*QueryInstalledChaincodeResult_References) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{3, 1}
+}
+
+func (m *QueryInstalledChaincodeResult_References) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryInstalledChaincodeResult_References.Unmarshal(m, b)
+}
+func (m *QueryInstalledChaincodeResult_References) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryInstalledChaincodeResult_References.Marshal(b, m, deterministic)
+}
+func (m *QueryInstalledChaincodeResult_References) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryInstalledChaincodeResult_References.Merge(m, src)
+}
+func (m *QueryInstalledChaincodeResult_References) XXX_Size() int {
+ return xxx_messageInfo_QueryInstalledChaincodeResult_References.Size(m)
+}
+func (m *QueryInstalledChaincodeResult_References) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryInstalledChaincodeResult_References.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryInstalledChaincodeResult_References proto.InternalMessageInfo
+
+func (m *QueryInstalledChaincodeResult_References) GetChaincodes() []*QueryInstalledChaincodeResult_Chaincode {
+ if m != nil {
+ return m.Chaincodes
+ }
+ return nil
+}
+
+type QueryInstalledChaincodeResult_Chaincode struct {
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryInstalledChaincodeResult_Chaincode) Reset() {
+ *m = QueryInstalledChaincodeResult_Chaincode{}
+}
+func (m *QueryInstalledChaincodeResult_Chaincode) String() string { return proto.CompactTextString(m) }
+func (*QueryInstalledChaincodeResult_Chaincode) ProtoMessage() {}
+func (*QueryInstalledChaincodeResult_Chaincode) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{3, 2}
+}
+
+func (m *QueryInstalledChaincodeResult_Chaincode) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryInstalledChaincodeResult_Chaincode.Unmarshal(m, b)
+}
+func (m *QueryInstalledChaincodeResult_Chaincode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryInstalledChaincodeResult_Chaincode.Marshal(b, m, deterministic)
+}
+func (m *QueryInstalledChaincodeResult_Chaincode) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryInstalledChaincodeResult_Chaincode.Merge(m, src)
+}
+func (m *QueryInstalledChaincodeResult_Chaincode) XXX_Size() int {
+ return xxx_messageInfo_QueryInstalledChaincodeResult_Chaincode.Size(m)
+}
+func (m *QueryInstalledChaincodeResult_Chaincode) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryInstalledChaincodeResult_Chaincode.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryInstalledChaincodeResult_Chaincode proto.InternalMessageInfo
+
+func (m *QueryInstalledChaincodeResult_Chaincode) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *QueryInstalledChaincodeResult_Chaincode) GetVersion() string {
+ if m != nil {
+ return m.Version
+ }
+ return ""
+}
+
+// GetInstalledChaincodePackageArgs is the message used as the argument to
+// '_lifecycle.GetInstalledChaincodePackage'.
+type GetInstalledChaincodePackageArgs struct {
+ PackageId string `protobuf:"bytes,1,opt,name=package_id,json=packageId,proto3" json:"package_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetInstalledChaincodePackageArgs) Reset() { *m = GetInstalledChaincodePackageArgs{} }
+func (m *GetInstalledChaincodePackageArgs) String() string { return proto.CompactTextString(m) }
+func (*GetInstalledChaincodePackageArgs) ProtoMessage() {}
+func (*GetInstalledChaincodePackageArgs) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{4}
+}
+
+func (m *GetInstalledChaincodePackageArgs) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetInstalledChaincodePackageArgs.Unmarshal(m, b)
+}
+func (m *GetInstalledChaincodePackageArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetInstalledChaincodePackageArgs.Marshal(b, m, deterministic)
+}
+func (m *GetInstalledChaincodePackageArgs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetInstalledChaincodePackageArgs.Merge(m, src)
+}
+func (m *GetInstalledChaincodePackageArgs) XXX_Size() int {
+ return xxx_messageInfo_GetInstalledChaincodePackageArgs.Size(m)
+}
+func (m *GetInstalledChaincodePackageArgs) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetInstalledChaincodePackageArgs.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetInstalledChaincodePackageArgs proto.InternalMessageInfo
+
+func (m *GetInstalledChaincodePackageArgs) GetPackageId() string {
+ if m != nil {
+ return m.PackageId
+ }
+ return ""
+}
+
+// GetInstalledChaincodePackageResult is the message returned by
+// '_lifecycle.GetInstalledChaincodePackage'.
+type GetInstalledChaincodePackageResult struct {
+ ChaincodeInstallPackage []byte `protobuf:"bytes,1,opt,name=chaincode_install_package,json=chaincodeInstallPackage,proto3" json:"chaincode_install_package,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetInstalledChaincodePackageResult) Reset() { *m = GetInstalledChaincodePackageResult{} }
+func (m *GetInstalledChaincodePackageResult) String() string { return proto.CompactTextString(m) }
+func (*GetInstalledChaincodePackageResult) ProtoMessage() {}
+func (*GetInstalledChaincodePackageResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{5}
+}
+
+func (m *GetInstalledChaincodePackageResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetInstalledChaincodePackageResult.Unmarshal(m, b)
+}
+func (m *GetInstalledChaincodePackageResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetInstalledChaincodePackageResult.Marshal(b, m, deterministic)
+}
+func (m *GetInstalledChaincodePackageResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetInstalledChaincodePackageResult.Merge(m, src)
+}
+func (m *GetInstalledChaincodePackageResult) XXX_Size() int {
+ return xxx_messageInfo_GetInstalledChaincodePackageResult.Size(m)
+}
+func (m *GetInstalledChaincodePackageResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetInstalledChaincodePackageResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetInstalledChaincodePackageResult proto.InternalMessageInfo
+
+func (m *GetInstalledChaincodePackageResult) GetChaincodeInstallPackage() []byte {
+ if m != nil {
+ return m.ChaincodeInstallPackage
+ }
+ return nil
+}
+
+// QueryInstalledChaincodesArgs currently is an empty argument to
+// '_lifecycle.QueryInstalledChaincodes'. In the future, it may be
+// extended to have parameters.
+type QueryInstalledChaincodesArgs struct {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryInstalledChaincodesArgs) Reset() { *m = QueryInstalledChaincodesArgs{} }
+func (m *QueryInstalledChaincodesArgs) String() string { return proto.CompactTextString(m) }
+func (*QueryInstalledChaincodesArgs) ProtoMessage() {}
+func (*QueryInstalledChaincodesArgs) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{6}
+}
+
+func (m *QueryInstalledChaincodesArgs) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryInstalledChaincodesArgs.Unmarshal(m, b)
+}
+func (m *QueryInstalledChaincodesArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryInstalledChaincodesArgs.Marshal(b, m, deterministic)
+}
+func (m *QueryInstalledChaincodesArgs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryInstalledChaincodesArgs.Merge(m, src)
+}
+func (m *QueryInstalledChaincodesArgs) XXX_Size() int {
+ return xxx_messageInfo_QueryInstalledChaincodesArgs.Size(m)
+}
+func (m *QueryInstalledChaincodesArgs) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryInstalledChaincodesArgs.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryInstalledChaincodesArgs proto.InternalMessageInfo
+
+// QueryInstalledChaincodesResult is the message returned by
+// '_lifecycle.QueryInstalledChaincodes'. It returns a list of installed
+// chaincodes, including a map of channel name to chaincode name and version
+// pairs of chaincode definitions that reference this chaincode package.
+type QueryInstalledChaincodesResult struct {
+ InstalledChaincodes []*QueryInstalledChaincodesResult_InstalledChaincode `protobuf:"bytes,1,rep,name=installed_chaincodes,json=installedChaincodes,proto3" json:"installed_chaincodes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryInstalledChaincodesResult) Reset() { *m = QueryInstalledChaincodesResult{} }
+func (m *QueryInstalledChaincodesResult) String() string { return proto.CompactTextString(m) }
+func (*QueryInstalledChaincodesResult) ProtoMessage() {}
+func (*QueryInstalledChaincodesResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{7}
+}
+
+func (m *QueryInstalledChaincodesResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryInstalledChaincodesResult.Unmarshal(m, b)
+}
+func (m *QueryInstalledChaincodesResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryInstalledChaincodesResult.Marshal(b, m, deterministic)
+}
+func (m *QueryInstalledChaincodesResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryInstalledChaincodesResult.Merge(m, src)
+}
+func (m *QueryInstalledChaincodesResult) XXX_Size() int {
+ return xxx_messageInfo_QueryInstalledChaincodesResult.Size(m)
+}
+func (m *QueryInstalledChaincodesResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryInstalledChaincodesResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryInstalledChaincodesResult proto.InternalMessageInfo
+
+func (m *QueryInstalledChaincodesResult) GetInstalledChaincodes() []*QueryInstalledChaincodesResult_InstalledChaincode {
+ if m != nil {
+ return m.InstalledChaincodes
+ }
+ return nil
+}
+
+type QueryInstalledChaincodesResult_InstalledChaincode struct {
+ PackageId string `protobuf:"bytes,1,opt,name=package_id,json=packageId,proto3" json:"package_id,omitempty"`
+ Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
+ References map[string]*QueryInstalledChaincodesResult_References `protobuf:"bytes,3,rep,name=references,proto3" json:"references,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryInstalledChaincodesResult_InstalledChaincode) Reset() {
+ *m = QueryInstalledChaincodesResult_InstalledChaincode{}
+}
+func (m *QueryInstalledChaincodesResult_InstalledChaincode) String() string {
+ return proto.CompactTextString(m)
+}
+func (*QueryInstalledChaincodesResult_InstalledChaincode) ProtoMessage() {}
+func (*QueryInstalledChaincodesResult_InstalledChaincode) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{7, 0}
+}
+
+func (m *QueryInstalledChaincodesResult_InstalledChaincode) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryInstalledChaincodesResult_InstalledChaincode.Unmarshal(m, b)
+}
+func (m *QueryInstalledChaincodesResult_InstalledChaincode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryInstalledChaincodesResult_InstalledChaincode.Marshal(b, m, deterministic)
+}
+func (m *QueryInstalledChaincodesResult_InstalledChaincode) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryInstalledChaincodesResult_InstalledChaincode.Merge(m, src)
+}
+func (m *QueryInstalledChaincodesResult_InstalledChaincode) XXX_Size() int {
+ return xxx_messageInfo_QueryInstalledChaincodesResult_InstalledChaincode.Size(m)
+}
+func (m *QueryInstalledChaincodesResult_InstalledChaincode) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryInstalledChaincodesResult_InstalledChaincode.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryInstalledChaincodesResult_InstalledChaincode proto.InternalMessageInfo
+
+func (m *QueryInstalledChaincodesResult_InstalledChaincode) GetPackageId() string {
+ if m != nil {
+ return m.PackageId
+ }
+ return ""
+}
+
+func (m *QueryInstalledChaincodesResult_InstalledChaincode) GetLabel() string {
+ if m != nil {
+ return m.Label
+ }
+ return ""
+}
+
+func (m *QueryInstalledChaincodesResult_InstalledChaincode) GetReferences() map[string]*QueryInstalledChaincodesResult_References {
+ if m != nil {
+ return m.References
+ }
+ return nil
+}
+
+type QueryInstalledChaincodesResult_References struct {
+ Chaincodes []*QueryInstalledChaincodesResult_Chaincode `protobuf:"bytes,1,rep,name=chaincodes,proto3" json:"chaincodes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryInstalledChaincodesResult_References) Reset() {
+ *m = QueryInstalledChaincodesResult_References{}
+}
+func (m *QueryInstalledChaincodesResult_References) String() string { return proto.CompactTextString(m) }
+func (*QueryInstalledChaincodesResult_References) ProtoMessage() {}
+func (*QueryInstalledChaincodesResult_References) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{7, 1}
+}
+
+func (m *QueryInstalledChaincodesResult_References) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryInstalledChaincodesResult_References.Unmarshal(m, b)
+}
+func (m *QueryInstalledChaincodesResult_References) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryInstalledChaincodesResult_References.Marshal(b, m, deterministic)
+}
+func (m *QueryInstalledChaincodesResult_References) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryInstalledChaincodesResult_References.Merge(m, src)
+}
+func (m *QueryInstalledChaincodesResult_References) XXX_Size() int {
+ return xxx_messageInfo_QueryInstalledChaincodesResult_References.Size(m)
+}
+func (m *QueryInstalledChaincodesResult_References) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryInstalledChaincodesResult_References.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryInstalledChaincodesResult_References proto.InternalMessageInfo
+
+func (m *QueryInstalledChaincodesResult_References) GetChaincodes() []*QueryInstalledChaincodesResult_Chaincode {
+ if m != nil {
+ return m.Chaincodes
+ }
+ return nil
+}
+
+type QueryInstalledChaincodesResult_Chaincode struct {
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryInstalledChaincodesResult_Chaincode) Reset() {
+ *m = QueryInstalledChaincodesResult_Chaincode{}
+}
+func (m *QueryInstalledChaincodesResult_Chaincode) String() string { return proto.CompactTextString(m) }
+func (*QueryInstalledChaincodesResult_Chaincode) ProtoMessage() {}
+func (*QueryInstalledChaincodesResult_Chaincode) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{7, 2}
+}
+
+func (m *QueryInstalledChaincodesResult_Chaincode) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryInstalledChaincodesResult_Chaincode.Unmarshal(m, b)
+}
+func (m *QueryInstalledChaincodesResult_Chaincode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryInstalledChaincodesResult_Chaincode.Marshal(b, m, deterministic)
+}
+func (m *QueryInstalledChaincodesResult_Chaincode) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryInstalledChaincodesResult_Chaincode.Merge(m, src)
+}
+func (m *QueryInstalledChaincodesResult_Chaincode) XXX_Size() int {
+ return xxx_messageInfo_QueryInstalledChaincodesResult_Chaincode.Size(m)
+}
+func (m *QueryInstalledChaincodesResult_Chaincode) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryInstalledChaincodesResult_Chaincode.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryInstalledChaincodesResult_Chaincode proto.InternalMessageInfo
+
+func (m *QueryInstalledChaincodesResult_Chaincode) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *QueryInstalledChaincodesResult_Chaincode) GetVersion() string {
+ if m != nil {
+ return m.Version
+ }
+ return ""
+}
+
+// ApproveChaincodeDefinitionForMyOrgArgs is the message used as arguments to
+// `_lifecycle.ApproveChaincodeDefinitionForMyOrg`.
+type ApproveChaincodeDefinitionForMyOrgArgs struct {
+ Sequence int64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"`
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+ Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
+ EndorsementPlugin string `protobuf:"bytes,4,opt,name=endorsement_plugin,json=endorsementPlugin,proto3" json:"endorsement_plugin,omitempty"`
+ ValidationPlugin string `protobuf:"bytes,5,opt,name=validation_plugin,json=validationPlugin,proto3" json:"validation_plugin,omitempty"`
+ ValidationParameter []byte `protobuf:"bytes,6,opt,name=validation_parameter,json=validationParameter,proto3" json:"validation_parameter,omitempty"`
+ Collections *common.CollectionConfigPackage `protobuf:"bytes,7,opt,name=collections,proto3" json:"collections,omitempty"`
+ InitRequired bool `protobuf:"varint,8,opt,name=init_required,json=initRequired,proto3" json:"init_required,omitempty"`
+ Source *ChaincodeSource `protobuf:"bytes,9,opt,name=source,proto3" json:"source,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) Reset() {
+ *m = ApproveChaincodeDefinitionForMyOrgArgs{}
+}
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) String() string { return proto.CompactTextString(m) }
+func (*ApproveChaincodeDefinitionForMyOrgArgs) ProtoMessage() {}
+func (*ApproveChaincodeDefinitionForMyOrgArgs) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{8}
+}
+
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ApproveChaincodeDefinitionForMyOrgArgs.Unmarshal(m, b)
+}
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ApproveChaincodeDefinitionForMyOrgArgs.Marshal(b, m, deterministic)
+}
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ApproveChaincodeDefinitionForMyOrgArgs.Merge(m, src)
+}
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) XXX_Size() int {
+ return xxx_messageInfo_ApproveChaincodeDefinitionForMyOrgArgs.Size(m)
+}
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) XXX_DiscardUnknown() {
+ xxx_messageInfo_ApproveChaincodeDefinitionForMyOrgArgs.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ApproveChaincodeDefinitionForMyOrgArgs proto.InternalMessageInfo
+
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) GetSequence() int64 {
+ if m != nil {
+ return m.Sequence
+ }
+ return 0
+}
+
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) GetVersion() string {
+ if m != nil {
+ return m.Version
+ }
+ return ""
+}
+
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) GetEndorsementPlugin() string {
+ if m != nil {
+ return m.EndorsementPlugin
+ }
+ return ""
+}
+
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) GetValidationPlugin() string {
+ if m != nil {
+ return m.ValidationPlugin
+ }
+ return ""
+}
+
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) GetValidationParameter() []byte {
+ if m != nil {
+ return m.ValidationParameter
+ }
+ return nil
+}
+
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) GetCollections() *common.CollectionConfigPackage {
+ if m != nil {
+ return m.Collections
+ }
+ return nil
+}
+
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) GetInitRequired() bool {
+ if m != nil {
+ return m.InitRequired
+ }
+ return false
+}
+
+func (m *ApproveChaincodeDefinitionForMyOrgArgs) GetSource() *ChaincodeSource {
+ if m != nil {
+ return m.Source
+ }
+ return nil
+}
+
+type ChaincodeSource struct {
+ // Types that are valid to be assigned to Type:
+ // *ChaincodeSource_Unavailable_
+ // *ChaincodeSource_LocalPackage
+ Type isChaincodeSource_Type `protobuf_oneof:"Type"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeSource) Reset() { *m = ChaincodeSource{} }
+func (m *ChaincodeSource) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeSource) ProtoMessage() {}
+func (*ChaincodeSource) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{9}
+}
+
+func (m *ChaincodeSource) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeSource.Unmarshal(m, b)
+}
+func (m *ChaincodeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeSource.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeSource) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeSource.Merge(m, src)
+}
+func (m *ChaincodeSource) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeSource.Size(m)
+}
+func (m *ChaincodeSource) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeSource.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeSource proto.InternalMessageInfo
+
+type isChaincodeSource_Type interface {
+ isChaincodeSource_Type()
+}
+
+type ChaincodeSource_Unavailable_ struct {
+ Unavailable *ChaincodeSource_Unavailable `protobuf:"bytes,1,opt,name=unavailable,proto3,oneof"`
+}
+
+type ChaincodeSource_LocalPackage struct {
+ LocalPackage *ChaincodeSource_Local `protobuf:"bytes,2,opt,name=local_package,json=localPackage,proto3,oneof"`
+}
+
+func (*ChaincodeSource_Unavailable_) isChaincodeSource_Type() {}
+
+func (*ChaincodeSource_LocalPackage) isChaincodeSource_Type() {}
+
+func (m *ChaincodeSource) GetType() isChaincodeSource_Type {
+ if m != nil {
+ return m.Type
+ }
+ return nil
+}
+
+func (m *ChaincodeSource) GetUnavailable() *ChaincodeSource_Unavailable {
+ if x, ok := m.GetType().(*ChaincodeSource_Unavailable_); ok {
+ return x.Unavailable
+ }
+ return nil
+}
+
+func (m *ChaincodeSource) GetLocalPackage() *ChaincodeSource_Local {
+ if x, ok := m.GetType().(*ChaincodeSource_LocalPackage); ok {
+ return x.LocalPackage
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*ChaincodeSource) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*ChaincodeSource_Unavailable_)(nil),
+ (*ChaincodeSource_LocalPackage)(nil),
+ }
+}
+
+type ChaincodeSource_Unavailable struct {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeSource_Unavailable) Reset() { *m = ChaincodeSource_Unavailable{} }
+func (m *ChaincodeSource_Unavailable) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeSource_Unavailable) ProtoMessage() {}
+func (*ChaincodeSource_Unavailable) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{9, 0}
+}
+
+func (m *ChaincodeSource_Unavailable) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeSource_Unavailable.Unmarshal(m, b)
+}
+func (m *ChaincodeSource_Unavailable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeSource_Unavailable.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeSource_Unavailable) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeSource_Unavailable.Merge(m, src)
+}
+func (m *ChaincodeSource_Unavailable) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeSource_Unavailable.Size(m)
+}
+func (m *ChaincodeSource_Unavailable) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeSource_Unavailable.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeSource_Unavailable proto.InternalMessageInfo
+
+type ChaincodeSource_Local struct {
+ PackageId string `protobuf:"bytes,1,opt,name=package_id,json=packageId,proto3" json:"package_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeSource_Local) Reset() { *m = ChaincodeSource_Local{} }
+func (m *ChaincodeSource_Local) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeSource_Local) ProtoMessage() {}
+func (*ChaincodeSource_Local) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{9, 1}
+}
+
+func (m *ChaincodeSource_Local) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeSource_Local.Unmarshal(m, b)
+}
+func (m *ChaincodeSource_Local) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeSource_Local.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeSource_Local) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeSource_Local.Merge(m, src)
+}
+func (m *ChaincodeSource_Local) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeSource_Local.Size(m)
+}
+func (m *ChaincodeSource_Local) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeSource_Local.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeSource_Local proto.InternalMessageInfo
+
+func (m *ChaincodeSource_Local) GetPackageId() string {
+ if m != nil {
+ return m.PackageId
+ }
+ return ""
+}
+
+// ApproveChaincodeDefinitionForMyOrgResult is the message returned by
+// `_lifecycle.ApproveChaincodeDefinitionForMyOrg`. Currently it returns
+// nothing, but may be extended in the future.
+type ApproveChaincodeDefinitionForMyOrgResult struct {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ApproveChaincodeDefinitionForMyOrgResult) Reset() {
+ *m = ApproveChaincodeDefinitionForMyOrgResult{}
+}
+func (m *ApproveChaincodeDefinitionForMyOrgResult) String() string { return proto.CompactTextString(m) }
+func (*ApproveChaincodeDefinitionForMyOrgResult) ProtoMessage() {}
+func (*ApproveChaincodeDefinitionForMyOrgResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{10}
+}
+
+func (m *ApproveChaincodeDefinitionForMyOrgResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ApproveChaincodeDefinitionForMyOrgResult.Unmarshal(m, b)
+}
+func (m *ApproveChaincodeDefinitionForMyOrgResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ApproveChaincodeDefinitionForMyOrgResult.Marshal(b, m, deterministic)
+}
+func (m *ApproveChaincodeDefinitionForMyOrgResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ApproveChaincodeDefinitionForMyOrgResult.Merge(m, src)
+}
+func (m *ApproveChaincodeDefinitionForMyOrgResult) XXX_Size() int {
+ return xxx_messageInfo_ApproveChaincodeDefinitionForMyOrgResult.Size(m)
+}
+func (m *ApproveChaincodeDefinitionForMyOrgResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_ApproveChaincodeDefinitionForMyOrgResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ApproveChaincodeDefinitionForMyOrgResult proto.InternalMessageInfo
+
+// CommitChaincodeDefinitionArgs is the message used as arguments to
+// `_lifecycle.CommitChaincodeDefinition`.
+type CommitChaincodeDefinitionArgs struct {
+ Sequence int64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"`
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+ Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
+ EndorsementPlugin string `protobuf:"bytes,4,opt,name=endorsement_plugin,json=endorsementPlugin,proto3" json:"endorsement_plugin,omitempty"`
+ ValidationPlugin string `protobuf:"bytes,5,opt,name=validation_plugin,json=validationPlugin,proto3" json:"validation_plugin,omitempty"`
+ ValidationParameter []byte `protobuf:"bytes,6,opt,name=validation_parameter,json=validationParameter,proto3" json:"validation_parameter,omitempty"`
+ Collections *common.CollectionConfigPackage `protobuf:"bytes,7,opt,name=collections,proto3" json:"collections,omitempty"`
+ InitRequired bool `protobuf:"varint,8,opt,name=init_required,json=initRequired,proto3" json:"init_required,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CommitChaincodeDefinitionArgs) Reset() { *m = CommitChaincodeDefinitionArgs{} }
+func (m *CommitChaincodeDefinitionArgs) String() string { return proto.CompactTextString(m) }
+func (*CommitChaincodeDefinitionArgs) ProtoMessage() {}
+func (*CommitChaincodeDefinitionArgs) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{11}
+}
+
+func (m *CommitChaincodeDefinitionArgs) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CommitChaincodeDefinitionArgs.Unmarshal(m, b)
+}
+func (m *CommitChaincodeDefinitionArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CommitChaincodeDefinitionArgs.Marshal(b, m, deterministic)
+}
+func (m *CommitChaincodeDefinitionArgs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CommitChaincodeDefinitionArgs.Merge(m, src)
+}
+func (m *CommitChaincodeDefinitionArgs) XXX_Size() int {
+ return xxx_messageInfo_CommitChaincodeDefinitionArgs.Size(m)
+}
+func (m *CommitChaincodeDefinitionArgs) XXX_DiscardUnknown() {
+ xxx_messageInfo_CommitChaincodeDefinitionArgs.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CommitChaincodeDefinitionArgs proto.InternalMessageInfo
+
+func (m *CommitChaincodeDefinitionArgs) GetSequence() int64 {
+ if m != nil {
+ return m.Sequence
+ }
+ return 0
+}
+
+func (m *CommitChaincodeDefinitionArgs) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *CommitChaincodeDefinitionArgs) GetVersion() string {
+ if m != nil {
+ return m.Version
+ }
+ return ""
+}
+
+func (m *CommitChaincodeDefinitionArgs) GetEndorsementPlugin() string {
+ if m != nil {
+ return m.EndorsementPlugin
+ }
+ return ""
+}
+
+func (m *CommitChaincodeDefinitionArgs) GetValidationPlugin() string {
+ if m != nil {
+ return m.ValidationPlugin
+ }
+ return ""
+}
+
+func (m *CommitChaincodeDefinitionArgs) GetValidationParameter() []byte {
+ if m != nil {
+ return m.ValidationParameter
+ }
+ return nil
+}
+
+func (m *CommitChaincodeDefinitionArgs) GetCollections() *common.CollectionConfigPackage {
+ if m != nil {
+ return m.Collections
+ }
+ return nil
+}
+
+func (m *CommitChaincodeDefinitionArgs) GetInitRequired() bool {
+ if m != nil {
+ return m.InitRequired
+ }
+ return false
+}
+
+// CommitChaincodeDefinitionResult is the message returned by
+// `_lifecycle.CommitChaincodeDefinition`. Currently it returns
+// nothing, but may be extended in the future.
+type CommitChaincodeDefinitionResult struct {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CommitChaincodeDefinitionResult) Reset() { *m = CommitChaincodeDefinitionResult{} }
+func (m *CommitChaincodeDefinitionResult) String() string { return proto.CompactTextString(m) }
+func (*CommitChaincodeDefinitionResult) ProtoMessage() {}
+func (*CommitChaincodeDefinitionResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{12}
+}
+
+func (m *CommitChaincodeDefinitionResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CommitChaincodeDefinitionResult.Unmarshal(m, b)
+}
+func (m *CommitChaincodeDefinitionResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CommitChaincodeDefinitionResult.Marshal(b, m, deterministic)
+}
+func (m *CommitChaincodeDefinitionResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CommitChaincodeDefinitionResult.Merge(m, src)
+}
+func (m *CommitChaincodeDefinitionResult) XXX_Size() int {
+ return xxx_messageInfo_CommitChaincodeDefinitionResult.Size(m)
+}
+func (m *CommitChaincodeDefinitionResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_CommitChaincodeDefinitionResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CommitChaincodeDefinitionResult proto.InternalMessageInfo
+
+// CheckCommitReadinessArgs is the message used as arguments to
+// `_lifecycle.CheckCommitReadiness`.
+type CheckCommitReadinessArgs struct {
+ Sequence int64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"`
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+ Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
+ EndorsementPlugin string `protobuf:"bytes,4,opt,name=endorsement_plugin,json=endorsementPlugin,proto3" json:"endorsement_plugin,omitempty"`
+ ValidationPlugin string `protobuf:"bytes,5,opt,name=validation_plugin,json=validationPlugin,proto3" json:"validation_plugin,omitempty"`
+ ValidationParameter []byte `protobuf:"bytes,6,opt,name=validation_parameter,json=validationParameter,proto3" json:"validation_parameter,omitempty"`
+ Collections *common.CollectionConfigPackage `protobuf:"bytes,7,opt,name=collections,proto3" json:"collections,omitempty"`
+ InitRequired bool `protobuf:"varint,8,opt,name=init_required,json=initRequired,proto3" json:"init_required,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CheckCommitReadinessArgs) Reset() { *m = CheckCommitReadinessArgs{} }
+func (m *CheckCommitReadinessArgs) String() string { return proto.CompactTextString(m) }
+func (*CheckCommitReadinessArgs) ProtoMessage() {}
+func (*CheckCommitReadinessArgs) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{13}
+}
+
+func (m *CheckCommitReadinessArgs) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CheckCommitReadinessArgs.Unmarshal(m, b)
+}
+func (m *CheckCommitReadinessArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CheckCommitReadinessArgs.Marshal(b, m, deterministic)
+}
+func (m *CheckCommitReadinessArgs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CheckCommitReadinessArgs.Merge(m, src)
+}
+func (m *CheckCommitReadinessArgs) XXX_Size() int {
+ return xxx_messageInfo_CheckCommitReadinessArgs.Size(m)
+}
+func (m *CheckCommitReadinessArgs) XXX_DiscardUnknown() {
+ xxx_messageInfo_CheckCommitReadinessArgs.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CheckCommitReadinessArgs proto.InternalMessageInfo
+
+func (m *CheckCommitReadinessArgs) GetSequence() int64 {
+ if m != nil {
+ return m.Sequence
+ }
+ return 0
+}
+
+func (m *CheckCommitReadinessArgs) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *CheckCommitReadinessArgs) GetVersion() string {
+ if m != nil {
+ return m.Version
+ }
+ return ""
+}
+
+func (m *CheckCommitReadinessArgs) GetEndorsementPlugin() string {
+ if m != nil {
+ return m.EndorsementPlugin
+ }
+ return ""
+}
+
+func (m *CheckCommitReadinessArgs) GetValidationPlugin() string {
+ if m != nil {
+ return m.ValidationPlugin
+ }
+ return ""
+}
+
+func (m *CheckCommitReadinessArgs) GetValidationParameter() []byte {
+ if m != nil {
+ return m.ValidationParameter
+ }
+ return nil
+}
+
+func (m *CheckCommitReadinessArgs) GetCollections() *common.CollectionConfigPackage {
+ if m != nil {
+ return m.Collections
+ }
+ return nil
+}
+
+func (m *CheckCommitReadinessArgs) GetInitRequired() bool {
+ if m != nil {
+ return m.InitRequired
+ }
+ return false
+}
+
+// CheckCommitReadinessResult is the message returned by
+// `_lifecycle.CheckCommitReadiness`. It returns a map of
+// orgs to their approval (true/false) for the definition
+// supplied as args.
+type CheckCommitReadinessResult struct {
+ Approvals map[string]bool `protobuf:"bytes,1,rep,name=approvals,proto3" json:"approvals,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CheckCommitReadinessResult) Reset() { *m = CheckCommitReadinessResult{} }
+func (m *CheckCommitReadinessResult) String() string { return proto.CompactTextString(m) }
+func (*CheckCommitReadinessResult) ProtoMessage() {}
+func (*CheckCommitReadinessResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{14}
+}
+
+func (m *CheckCommitReadinessResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CheckCommitReadinessResult.Unmarshal(m, b)
+}
+func (m *CheckCommitReadinessResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CheckCommitReadinessResult.Marshal(b, m, deterministic)
+}
+func (m *CheckCommitReadinessResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CheckCommitReadinessResult.Merge(m, src)
+}
+func (m *CheckCommitReadinessResult) XXX_Size() int {
+ return xxx_messageInfo_CheckCommitReadinessResult.Size(m)
+}
+func (m *CheckCommitReadinessResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_CheckCommitReadinessResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CheckCommitReadinessResult proto.InternalMessageInfo
+
+func (m *CheckCommitReadinessResult) GetApprovals() map[string]bool {
+ if m != nil {
+ return m.Approvals
+ }
+ return nil
+}
+
+// QueryChaincodeDefinitionArgs is the message used as arguments to
+// `_lifecycle.QueryChaincodeDefinition`.
+type QueryChaincodeDefinitionArgs struct {
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryChaincodeDefinitionArgs) Reset() { *m = QueryChaincodeDefinitionArgs{} }
+func (m *QueryChaincodeDefinitionArgs) String() string { return proto.CompactTextString(m) }
+func (*QueryChaincodeDefinitionArgs) ProtoMessage() {}
+func (*QueryChaincodeDefinitionArgs) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{15}
+}
+
+func (m *QueryChaincodeDefinitionArgs) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryChaincodeDefinitionArgs.Unmarshal(m, b)
+}
+func (m *QueryChaincodeDefinitionArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryChaincodeDefinitionArgs.Marshal(b, m, deterministic)
+}
+func (m *QueryChaincodeDefinitionArgs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryChaincodeDefinitionArgs.Merge(m, src)
+}
+func (m *QueryChaincodeDefinitionArgs) XXX_Size() int {
+ return xxx_messageInfo_QueryChaincodeDefinitionArgs.Size(m)
+}
+func (m *QueryChaincodeDefinitionArgs) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryChaincodeDefinitionArgs.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryChaincodeDefinitionArgs proto.InternalMessageInfo
+
+func (m *QueryChaincodeDefinitionArgs) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+// QueryChaincodeDefinitionResult is the message returned by
+// `_lifecycle.QueryChaincodeDefinition`.
+type QueryChaincodeDefinitionResult struct {
+ Sequence int64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"`
+ Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
+ EndorsementPlugin string `protobuf:"bytes,3,opt,name=endorsement_plugin,json=endorsementPlugin,proto3" json:"endorsement_plugin,omitempty"`
+ ValidationPlugin string `protobuf:"bytes,4,opt,name=validation_plugin,json=validationPlugin,proto3" json:"validation_plugin,omitempty"`
+ ValidationParameter []byte `protobuf:"bytes,5,opt,name=validation_parameter,json=validationParameter,proto3" json:"validation_parameter,omitempty"`
+ Collections *common.CollectionConfigPackage `protobuf:"bytes,6,opt,name=collections,proto3" json:"collections,omitempty"`
+ InitRequired bool `protobuf:"varint,7,opt,name=init_required,json=initRequired,proto3" json:"init_required,omitempty"`
+ Approvals map[string]bool `protobuf:"bytes,8,rep,name=approvals,proto3" json:"approvals,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryChaincodeDefinitionResult) Reset() { *m = QueryChaincodeDefinitionResult{} }
+func (m *QueryChaincodeDefinitionResult) String() string { return proto.CompactTextString(m) }
+func (*QueryChaincodeDefinitionResult) ProtoMessage() {}
+func (*QueryChaincodeDefinitionResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{16}
+}
+
+func (m *QueryChaincodeDefinitionResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryChaincodeDefinitionResult.Unmarshal(m, b)
+}
+func (m *QueryChaincodeDefinitionResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryChaincodeDefinitionResult.Marshal(b, m, deterministic)
+}
+func (m *QueryChaincodeDefinitionResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryChaincodeDefinitionResult.Merge(m, src)
+}
+func (m *QueryChaincodeDefinitionResult) XXX_Size() int {
+ return xxx_messageInfo_QueryChaincodeDefinitionResult.Size(m)
+}
+func (m *QueryChaincodeDefinitionResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryChaincodeDefinitionResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryChaincodeDefinitionResult proto.InternalMessageInfo
+
+func (m *QueryChaincodeDefinitionResult) GetSequence() int64 {
+ if m != nil {
+ return m.Sequence
+ }
+ return 0
+}
+
+func (m *QueryChaincodeDefinitionResult) GetVersion() string {
+ if m != nil {
+ return m.Version
+ }
+ return ""
+}
+
+func (m *QueryChaincodeDefinitionResult) GetEndorsementPlugin() string {
+ if m != nil {
+ return m.EndorsementPlugin
+ }
+ return ""
+}
+
+func (m *QueryChaincodeDefinitionResult) GetValidationPlugin() string {
+ if m != nil {
+ return m.ValidationPlugin
+ }
+ return ""
+}
+
+func (m *QueryChaincodeDefinitionResult) GetValidationParameter() []byte {
+ if m != nil {
+ return m.ValidationParameter
+ }
+ return nil
+}
+
+func (m *QueryChaincodeDefinitionResult) GetCollections() *common.CollectionConfigPackage {
+ if m != nil {
+ return m.Collections
+ }
+ return nil
+}
+
+func (m *QueryChaincodeDefinitionResult) GetInitRequired() bool {
+ if m != nil {
+ return m.InitRequired
+ }
+ return false
+}
+
+func (m *QueryChaincodeDefinitionResult) GetApprovals() map[string]bool {
+ if m != nil {
+ return m.Approvals
+ }
+ return nil
+}
+
+// QueryChaincodeDefinitionsArgs is the message used as arguments to
+// `_lifecycle.QueryChaincodeDefinitions`.
+type QueryChaincodeDefinitionsArgs struct {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryChaincodeDefinitionsArgs) Reset() { *m = QueryChaincodeDefinitionsArgs{} }
+func (m *QueryChaincodeDefinitionsArgs) String() string { return proto.CompactTextString(m) }
+func (*QueryChaincodeDefinitionsArgs) ProtoMessage() {}
+func (*QueryChaincodeDefinitionsArgs) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{17}
+}
+
+func (m *QueryChaincodeDefinitionsArgs) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryChaincodeDefinitionsArgs.Unmarshal(m, b)
+}
+func (m *QueryChaincodeDefinitionsArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryChaincodeDefinitionsArgs.Marshal(b, m, deterministic)
+}
+func (m *QueryChaincodeDefinitionsArgs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryChaincodeDefinitionsArgs.Merge(m, src)
+}
+func (m *QueryChaincodeDefinitionsArgs) XXX_Size() int {
+ return xxx_messageInfo_QueryChaincodeDefinitionsArgs.Size(m)
+}
+func (m *QueryChaincodeDefinitionsArgs) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryChaincodeDefinitionsArgs.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryChaincodeDefinitionsArgs proto.InternalMessageInfo
+
+// QueryChaincodeDefinitionsResult is the message returned by
+// `_lifecycle.QueryChaincodeDefinitions`.
+type QueryChaincodeDefinitionsResult struct {
+ ChaincodeDefinitions []*QueryChaincodeDefinitionsResult_ChaincodeDefinition `protobuf:"bytes,1,rep,name=chaincode_definitions,json=chaincodeDefinitions,proto3" json:"chaincode_definitions,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryChaincodeDefinitionsResult) Reset() { *m = QueryChaincodeDefinitionsResult{} }
+func (m *QueryChaincodeDefinitionsResult) String() string { return proto.CompactTextString(m) }
+func (*QueryChaincodeDefinitionsResult) ProtoMessage() {}
+func (*QueryChaincodeDefinitionsResult) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{18}
+}
+
+func (m *QueryChaincodeDefinitionsResult) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryChaincodeDefinitionsResult.Unmarshal(m, b)
+}
+func (m *QueryChaincodeDefinitionsResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryChaincodeDefinitionsResult.Marshal(b, m, deterministic)
+}
+func (m *QueryChaincodeDefinitionsResult) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryChaincodeDefinitionsResult.Merge(m, src)
+}
+func (m *QueryChaincodeDefinitionsResult) XXX_Size() int {
+ return xxx_messageInfo_QueryChaincodeDefinitionsResult.Size(m)
+}
+func (m *QueryChaincodeDefinitionsResult) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryChaincodeDefinitionsResult.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryChaincodeDefinitionsResult proto.InternalMessageInfo
+
+func (m *QueryChaincodeDefinitionsResult) GetChaincodeDefinitions() []*QueryChaincodeDefinitionsResult_ChaincodeDefinition {
+ if m != nil {
+ return m.ChaincodeDefinitions
+ }
+ return nil
+}
+
+type QueryChaincodeDefinitionsResult_ChaincodeDefinition struct {
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Sequence int64 `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"`
+ Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
+ EndorsementPlugin string `protobuf:"bytes,4,opt,name=endorsement_plugin,json=endorsementPlugin,proto3" json:"endorsement_plugin,omitempty"`
+ ValidationPlugin string `protobuf:"bytes,5,opt,name=validation_plugin,json=validationPlugin,proto3" json:"validation_plugin,omitempty"`
+ ValidationParameter []byte `protobuf:"bytes,6,opt,name=validation_parameter,json=validationParameter,proto3" json:"validation_parameter,omitempty"`
+ Collections *common.CollectionConfigPackage `protobuf:"bytes,7,opt,name=collections,proto3" json:"collections,omitempty"`
+ InitRequired bool `protobuf:"varint,8,opt,name=init_required,json=initRequired,proto3" json:"init_required,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) Reset() {
+ *m = QueryChaincodeDefinitionsResult_ChaincodeDefinition{}
+}
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) String() string {
+ return proto.CompactTextString(m)
+}
+func (*QueryChaincodeDefinitionsResult_ChaincodeDefinition) ProtoMessage() {}
+func (*QueryChaincodeDefinitionsResult_ChaincodeDefinition) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6625a5b20951add3, []int{18, 0}
+}
+
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryChaincodeDefinitionsResult_ChaincodeDefinition.Unmarshal(m, b)
+}
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryChaincodeDefinitionsResult_ChaincodeDefinition.Marshal(b, m, deterministic)
+}
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryChaincodeDefinitionsResult_ChaincodeDefinition.Merge(m, src)
+}
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) XXX_Size() int {
+ return xxx_messageInfo_QueryChaincodeDefinitionsResult_ChaincodeDefinition.Size(m)
+}
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryChaincodeDefinitionsResult_ChaincodeDefinition.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryChaincodeDefinitionsResult_ChaincodeDefinition proto.InternalMessageInfo
+
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) GetSequence() int64 {
+ if m != nil {
+ return m.Sequence
+ }
+ return 0
+}
+
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) GetVersion() string {
+ if m != nil {
+ return m.Version
+ }
+ return ""
+}
+
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) GetEndorsementPlugin() string {
+ if m != nil {
+ return m.EndorsementPlugin
+ }
+ return ""
+}
+
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) GetValidationPlugin() string {
+ if m != nil {
+ return m.ValidationPlugin
+ }
+ return ""
+}
+
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) GetValidationParameter() []byte {
+ if m != nil {
+ return m.ValidationParameter
+ }
+ return nil
+}
+
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) GetCollections() *common.CollectionConfigPackage {
+ if m != nil {
+ return m.Collections
+ }
+ return nil
+}
+
+func (m *QueryChaincodeDefinitionsResult_ChaincodeDefinition) GetInitRequired() bool {
+ if m != nil {
+ return m.InitRequired
+ }
+ return false
+}
+
+func init() {
+ proto.RegisterType((*InstallChaincodeArgs)(nil), "lifecycle.InstallChaincodeArgs")
+ proto.RegisterType((*InstallChaincodeResult)(nil), "lifecycle.InstallChaincodeResult")
+ proto.RegisterType((*QueryInstalledChaincodeArgs)(nil), "lifecycle.QueryInstalledChaincodeArgs")
+ proto.RegisterType((*QueryInstalledChaincodeResult)(nil), "lifecycle.QueryInstalledChaincodeResult")
+ proto.RegisterMapType((map[string]*QueryInstalledChaincodeResult_References)(nil), "lifecycle.QueryInstalledChaincodeResult.ReferencesEntry")
+ proto.RegisterType((*QueryInstalledChaincodeResult_References)(nil), "lifecycle.QueryInstalledChaincodeResult.References")
+ proto.RegisterType((*QueryInstalledChaincodeResult_Chaincode)(nil), "lifecycle.QueryInstalledChaincodeResult.Chaincode")
+ proto.RegisterType((*GetInstalledChaincodePackageArgs)(nil), "lifecycle.GetInstalledChaincodePackageArgs")
+ proto.RegisterType((*GetInstalledChaincodePackageResult)(nil), "lifecycle.GetInstalledChaincodePackageResult")
+ proto.RegisterType((*QueryInstalledChaincodesArgs)(nil), "lifecycle.QueryInstalledChaincodesArgs")
+ proto.RegisterType((*QueryInstalledChaincodesResult)(nil), "lifecycle.QueryInstalledChaincodesResult")
+ proto.RegisterType((*QueryInstalledChaincodesResult_InstalledChaincode)(nil), "lifecycle.QueryInstalledChaincodesResult.InstalledChaincode")
+ proto.RegisterMapType((map[string]*QueryInstalledChaincodesResult_References)(nil), "lifecycle.QueryInstalledChaincodesResult.InstalledChaincode.ReferencesEntry")
+ proto.RegisterType((*QueryInstalledChaincodesResult_References)(nil), "lifecycle.QueryInstalledChaincodesResult.References")
+ proto.RegisterType((*QueryInstalledChaincodesResult_Chaincode)(nil), "lifecycle.QueryInstalledChaincodesResult.Chaincode")
+ proto.RegisterType((*ApproveChaincodeDefinitionForMyOrgArgs)(nil), "lifecycle.ApproveChaincodeDefinitionForMyOrgArgs")
+ proto.RegisterType((*ChaincodeSource)(nil), "lifecycle.ChaincodeSource")
+ proto.RegisterType((*ChaincodeSource_Unavailable)(nil), "lifecycle.ChaincodeSource.Unavailable")
+ proto.RegisterType((*ChaincodeSource_Local)(nil), "lifecycle.ChaincodeSource.Local")
+ proto.RegisterType((*ApproveChaincodeDefinitionForMyOrgResult)(nil), "lifecycle.ApproveChaincodeDefinitionForMyOrgResult")
+ proto.RegisterType((*CommitChaincodeDefinitionArgs)(nil), "lifecycle.CommitChaincodeDefinitionArgs")
+ proto.RegisterType((*CommitChaincodeDefinitionResult)(nil), "lifecycle.CommitChaincodeDefinitionResult")
+ proto.RegisterType((*CheckCommitReadinessArgs)(nil), "lifecycle.CheckCommitReadinessArgs")
+ proto.RegisterType((*CheckCommitReadinessResult)(nil), "lifecycle.CheckCommitReadinessResult")
+ proto.RegisterMapType((map[string]bool)(nil), "lifecycle.CheckCommitReadinessResult.ApprovalsEntry")
+ proto.RegisterType((*QueryChaincodeDefinitionArgs)(nil), "lifecycle.QueryChaincodeDefinitionArgs")
+ proto.RegisterType((*QueryChaincodeDefinitionResult)(nil), "lifecycle.QueryChaincodeDefinitionResult")
+ proto.RegisterMapType((map[string]bool)(nil), "lifecycle.QueryChaincodeDefinitionResult.ApprovalsEntry")
+ proto.RegisterType((*QueryChaincodeDefinitionsArgs)(nil), "lifecycle.QueryChaincodeDefinitionsArgs")
+ proto.RegisterType((*QueryChaincodeDefinitionsResult)(nil), "lifecycle.QueryChaincodeDefinitionsResult")
+ proto.RegisterType((*QueryChaincodeDefinitionsResult_ChaincodeDefinition)(nil), "lifecycle.QueryChaincodeDefinitionsResult.ChaincodeDefinition")
+}
+
+func init() { proto.RegisterFile("peer/lifecycle/lifecycle.proto", fileDescriptor_6625a5b20951add3) }
+
+var fileDescriptor_6625a5b20951add3 = []byte{
+ // 992 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0xef, 0x6e, 0xdb, 0x54,
+ 0x14, 0x5f, 0xe2, 0x24, 0x4d, 0x4e, 0x5a, 0xb6, 0xdd, 0x06, 0x66, 0x0c, 0x6d, 0x83, 0x91, 0xaa,
+ 0x0a, 0xa8, 0x23, 0xd2, 0x09, 0x8d, 0xa9, 0x42, 0xca, 0x02, 0x6c, 0x9d, 0x36, 0x31, 0x3c, 0x40,
+ 0x88, 0x2f, 0xd9, 0x8d, 0x7d, 0x92, 0x5e, 0xd5, 0xb1, 0xb3, 0x6b, 0x27, 0x52, 0x1e, 0x86, 0x37,
+ 0x40, 0xbc, 0x02, 0x6f, 0xc1, 0x17, 0x24, 0x84, 0x84, 0xf8, 0xcc, 0x2b, 0x20, 0x5f, 0xdf, 0xd8,
+ 0x4e, 0x63, 0xa7, 0x59, 0x5b, 0xbe, 0xf5, 0x9b, 0xef, 0x3d, 0xbf, 0xf3, 0xe7, 0x9e, 0xf3, 0x3b,
+ 0xf7, 0xdc, 0x04, 0x76, 0xc7, 0x88, 0xbc, 0xe5, 0xb0, 0x01, 0x5a, 0x33, 0xcb, 0xc1, 0xe4, 0xcb,
+ 0x18, 0x73, 0x2f, 0xf0, 0x48, 0x2d, 0xde, 0xd0, 0xee, 0x59, 0xde, 0x68, 0xe4, 0xb9, 0x2d, 0xcb,
+ 0x73, 0x1c, 0xb4, 0x02, 0xe6, 0xb9, 0x11, 0x46, 0x37, 0xa1, 0x71, 0xe2, 0xfa, 0x01, 0x75, 0x9c,
+ 0xee, 0x29, 0x65, 0xae, 0xe5, 0xd9, 0xd8, 0xe1, 0x43, 0x9f, 0x3c, 0x84, 0x77, 0xad, 0xf9, 0x46,
+ 0x8f, 0x45, 0x88, 0xde, 0x98, 0x5a, 0x67, 0x74, 0x88, 0x6a, 0xa1, 0x59, 0x38, 0xd8, 0x34, 0xef,
+ 0xc5, 0x00, 0x69, 0xe1, 0x45, 0x24, 0xd6, 0x9f, 0xc3, 0x3b, 0xe7, 0x6d, 0x9a, 0xe8, 0x4f, 0x9c,
+ 0x80, 0xec, 0x00, 0x48, 0x1b, 0x3d, 0x66, 0x0b, 0x33, 0x35, 0xb3, 0x26, 0x77, 0x4e, 0x6c, 0xd2,
+ 0x80, 0xb2, 0x43, 0xfb, 0xe8, 0xa8, 0x45, 0x21, 0x89, 0x16, 0xfa, 0x31, 0xbc, 0xf7, 0xed, 0x04,
+ 0xf9, 0x4c, 0xda, 0x44, 0x7b, 0x31, 0xd2, 0xd5, 0x36, 0xf5, 0xdf, 0x14, 0xd8, 0xc9, 0x51, 0xbf,
+ 0x42, 0x50, 0xe4, 0x47, 0x00, 0x8e, 0x03, 0xe4, 0xe8, 0x5a, 0xe8, 0xab, 0x4a, 0x53, 0x39, 0xa8,
+ 0xb7, 0x1f, 0x18, 0x49, 0x05, 0x56, 0xba, 0x34, 0xcc, 0x58, 0xf5, 0x2b, 0x37, 0xe0, 0x33, 0x33,
+ 0x65, 0x4b, 0xe3, 0x70, 0xfb, 0x9c, 0x98, 0xdc, 0x01, 0xe5, 0x0c, 0x67, 0x32, 0xb4, 0xf0, 0x93,
+ 0x9c, 0x40, 0x79, 0x4a, 0x9d, 0x09, 0x8a, 0xa0, 0xea, 0xed, 0xa3, 0x4b, 0x78, 0x36, 0x23, 0x0b,
+ 0x0f, 0x8b, 0x0f, 0x0a, 0xda, 0x2b, 0x80, 0x44, 0x40, 0x4c, 0x80, 0xb8, 0xb4, 0xbe, 0x5a, 0x10,
+ 0x67, 0x6b, 0xaf, 0xed, 0x21, 0x59, 0xa7, 0xac, 0x68, 0x9f, 0x43, 0x2d, 0x16, 0x10, 0x02, 0x25,
+ 0x97, 0x8e, 0x50, 0x1e, 0x48, 0x7c, 0x13, 0x15, 0x36, 0xa6, 0xc8, 0x7d, 0xe6, 0xb9, 0x32, 0xd1,
+ 0xf3, 0xa5, 0xde, 0x81, 0xe6, 0x63, 0x0c, 0x96, 0xfd, 0x49, 0xba, 0xad, 0x43, 0x82, 0x57, 0xa0,
+ 0xaf, 0x32, 0x21, 0x89, 0x70, 0x15, 0xce, 0xef, 0xc2, 0xfb, 0x39, 0x69, 0xf1, 0xc3, 0x00, 0xf5,
+ 0x3f, 0x4b, 0xb0, 0x9b, 0x07, 0x90, 0xee, 0x3d, 0x68, 0xb0, 0xb9, 0xb0, 0xb7, 0x54, 0x80, 0xe3,
+ 0x8b, 0x0b, 0x20, 0x0d, 0x19, 0x19, 0xa5, 0xd9, 0x66, 0xcb, 0x68, 0xed, 0x97, 0x22, 0x90, 0x65,
+ 0xec, 0xe5, 0xfa, 0xc1, 0xc9, 0xe8, 0x87, 0x67, 0x57, 0x09, 0x79, 0x65, 0x8f, 0xf8, 0xeb, 0xf4,
+ 0xc8, 0xd3, 0xc5, 0x1e, 0xb9, 0xbf, 0x7e, 0x34, 0xd9, 0x4d, 0x42, 0x17, 0x9a, 0xe4, 0x65, 0x46,
+ 0x93, 0x1c, 0xad, 0xef, 0xe2, 0xda, 0xbb, 0xe4, 0x67, 0x05, 0xf6, 0x3b, 0xe3, 0x31, 0xf7, 0xa6,
+ 0x18, 0x9b, 0xf8, 0x12, 0x07, 0xcc, 0x65, 0xe1, 0x6d, 0xff, 0xb5, 0xc7, 0x9f, 0xcf, 0xbe, 0xe1,
+ 0x43, 0xd1, 0x2c, 0x1a, 0x54, 0x7d, 0x7c, 0x3d, 0x09, 0xcf, 0x21, 0x8c, 0x2b, 0x66, 0xbc, 0x8e,
+ 0x9d, 0x16, 0xb3, 0x9d, 0x2a, 0x0b, 0x4e, 0xc9, 0x21, 0x10, 0x74, 0x6d, 0x8f, 0xfb, 0x38, 0x42,
+ 0x37, 0xe8, 0x8d, 0x9d, 0xc9, 0x90, 0xb9, 0x6a, 0x49, 0x80, 0xee, 0xa6, 0x24, 0x2f, 0x84, 0x80,
+ 0x7c, 0x0c, 0x77, 0xa7, 0xd4, 0x61, 0x36, 0x0d, 0x43, 0x9a, 0xa3, 0xcb, 0x02, 0x7d, 0x27, 0x11,
+ 0x48, 0xf0, 0xa7, 0xd0, 0x48, 0x83, 0x29, 0xa7, 0x23, 0x0c, 0x90, 0xab, 0x15, 0xd1, 0x88, 0xdb,
+ 0x29, 0xfc, 0x5c, 0x44, 0x3a, 0x50, 0x4f, 0x06, 0x9c, 0xaf, 0x6e, 0x88, 0xba, 0xef, 0x19, 0xd1,
+ 0xec, 0x33, 0xba, 0xb1, 0xa8, 0xeb, 0xb9, 0x03, 0x36, 0x9c, 0x37, 0x7f, 0x5a, 0x87, 0x7c, 0x08,
+ 0x5b, 0x61, 0xca, 0x7a, 0x1c, 0x5f, 0x4f, 0x18, 0x47, 0x5b, 0xad, 0x36, 0x0b, 0x07, 0x55, 0x73,
+ 0x33, 0xdc, 0x34, 0xe5, 0x1e, 0x69, 0x43, 0xc5, 0xf7, 0x26, 0xdc, 0x42, 0xb5, 0x26, 0x5c, 0x68,
+ 0xa9, 0xba, 0xc7, 0xc9, 0x7f, 0x29, 0x10, 0xa6, 0x44, 0xea, 0xff, 0x14, 0xe0, 0xf6, 0x39, 0x19,
+ 0x79, 0x0a, 0xf5, 0x89, 0x4b, 0xa7, 0x94, 0x39, 0xb4, 0xef, 0x44, 0xb5, 0xa8, 0xb7, 0xf7, 0xf3,
+ 0x8d, 0x19, 0xdf, 0x27, 0xe8, 0x27, 0xb7, 0xcc, 0xb4, 0x32, 0x79, 0x0c, 0x5b, 0x8e, 0x67, 0xd1,
+ 0xe4, 0xc2, 0x8a, 0x58, 0xdf, 0x5c, 0x61, 0xed, 0x59, 0x88, 0x7f, 0x72, 0xcb, 0xdc, 0x14, 0x8a,
+ 0x32, 0x1d, 0xda, 0x16, 0xd4, 0x53, 0x6e, 0xb4, 0x7d, 0x28, 0x0b, 0xdc, 0x05, 0xd7, 0xc2, 0xa3,
+ 0x0a, 0x94, 0xbe, 0x9b, 0x8d, 0x51, 0xff, 0x08, 0x0e, 0x2e, 0xa6, 0x61, 0xd4, 0x04, 0xfa, 0x5f,
+ 0x45, 0xd8, 0xe9, 0x7a, 0xa3, 0x11, 0x0b, 0x32, 0xb0, 0x37, 0x54, 0xbd, 0x06, 0xaa, 0xea, 0x1f,
+ 0xc0, 0x5e, 0x6e, 0x86, 0x65, 0x15, 0xfe, 0x28, 0x82, 0xda, 0x3d, 0x45, 0xeb, 0x2c, 0x02, 0x9a,
+ 0x48, 0x6d, 0xe6, 0xa2, 0xef, 0xdf, 0x14, 0xe0, 0x3a, 0x0a, 0xf0, 0x6b, 0x01, 0xb4, 0xac, 0xec,
+ 0xca, 0xa1, 0x6f, 0x42, 0x8d, 0x8a, 0x76, 0xa1, 0xce, 0x7c, 0x8a, 0xdc, 0x5f, 0x68, 0xd9, 0x3c,
+ 0x4d, 0xa3, 0x33, 0x57, 0x8b, 0xc6, 0x63, 0x62, 0x46, 0x3b, 0x86, 0xb7, 0x16, 0x85, 0x19, 0xc3,
+ 0xb1, 0x91, 0x1e, 0x8e, 0xd5, 0xd4, 0x98, 0xd3, 0xdb, 0xf2, 0x25, 0x93, 0xd7, 0x92, 0x19, 0x63,
+ 0x49, 0xff, 0x5b, 0x91, 0xaf, 0x9b, 0x5c, 0x96, 0xad, 0x24, 0x52, 0xee, 0x54, 0xcb, 0x21, 0x8d,
+ 0xf2, 0x46, 0xa4, 0x29, 0xbd, 0x21, 0x69, 0xca, 0x6b, 0x93, 0xa6, 0x72, 0x1d, 0xa4, 0xd9, 0xc8,
+ 0x18, 0x30, 0x3f, 0xa4, 0x59, 0x51, 0xcd, 0xfe, 0x71, 0x91, 0x9b, 0xea, 0xff, 0x8d, 0x19, 0x7b,
+ 0xf2, 0x97, 0x54, 0x86, 0xe7, 0xe8, 0x91, 0xfb, 0xaf, 0x02, 0x7b, 0xb9, 0x08, 0xc9, 0x03, 0x1f,
+ 0xde, 0x4e, 0x1e, 0xd9, 0x76, 0x22, 0x96, 0xe4, 0xff, 0x62, 0x8d, 0x63, 0x2e, 0xbd, 0xa1, 0x52,
+ 0x19, 0x68, 0x58, 0x19, 0x78, 0xed, 0xf7, 0x22, 0x6c, 0x67, 0xa0, 0x33, 0x9f, 0x58, 0x69, 0xa2,
+ 0x16, 0xf3, 0x89, 0x7a, 0x73, 0xbb, 0x71, 0xb4, 0x1f, 0x0d, 0xe0, 0x13, 0x8f, 0x0f, 0x8d, 0xd3,
+ 0xd9, 0x18, 0xb9, 0x83, 0xf6, 0x10, 0xb9, 0x31, 0xa0, 0x7d, 0xce, 0xac, 0xe8, 0xef, 0x05, 0xdf,
+ 0x18, 0x23, 0xf2, 0xa4, 0xa4, 0x3f, 0x7d, 0x36, 0x64, 0xc1, 0xe9, 0xa4, 0x1f, 0x06, 0xd2, 0x4a,
+ 0x29, 0xb5, 0x22, 0xa5, 0xc3, 0x48, 0xe9, 0x70, 0xe8, 0xb5, 0x16, 0xff, 0xda, 0xe8, 0x57, 0x84,
+ 0xe4, 0xe8, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x60, 0xe7, 0x64, 0x00, 0xf3, 0x10, 0x00, 0x00,
+}
diff --git a/peer/peer.pb.go b/peer/peer.pb.go
new file mode 100644
index 0000000..0446f11
--- /dev/null
+++ b/peer/peer.pb.go
@@ -0,0 +1,123 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/peer.proto
+
+package peer
+
+import (
+ context "context"
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+func init() { proto.RegisterFile("peer/peer.proto", fileDescriptor_c302117fbb08ad42) }
+
+var fileDescriptor_c302117fbb08ad42 = []byte{
+ // 177 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x8f, 0xb1, 0x0a, 0xc2, 0x30,
+ 0x10, 0x86, 0x37, 0x91, 0x2c, 0x85, 0x0a, 0x22, 0xc5, 0xc9, 0xd9, 0xa6, 0xa0, 0x6f, 0xa0, 0x38,
+ 0x5b, 0xea, 0xe6, 0x22, 0x6d, 0x73, 0xa6, 0x81, 0x9a, 0x0b, 0x77, 0x75, 0xf0, 0xed, 0xa5, 0xbd,
+ 0x06, 0x74, 0x49, 0xe0, 0xfb, 0xbf, 0x3b, 0xee, 0x57, 0x49, 0x00, 0xa0, 0x62, 0x7c, 0x74, 0x20,
+ 0x1c, 0x30, 0x5d, 0x4c, 0x1f, 0x67, 0x2b, 0x09, 0x08, 0x03, 0x72, 0xdd, 0x4b, 0x98, 0x6d, 0xff,
+ 0xe0, 0x83, 0x80, 0x03, 0x7a, 0x06, 0x49, 0x0f, 0x57, 0xb5, 0xbc, 0x78, 0x83, 0xc4, 0x40, 0xe9,
+ 0x59, 0x25, 0x25, 0x61, 0x0b, 0xcc, 0xe5, 0x6c, 0xa7, 0x6b, 0xd1, 0x58, 0xdf, 0x9c, 0xf5, 0x60,
+ 0x22, 0xcf, 0x36, 0x91, 0x47, 0x52, 0xcd, 0x6b, 0x4f, 0x95, 0xda, 0x21, 0x59, 0xdd, 0x7d, 0x02,
+ 0x50, 0x0f, 0xc6, 0x02, 0xe9, 0x67, 0xdd, 0x90, 0x6b, 0xe3, 0xc4, 0x78, 0xce, 0x7d, 0x6f, 0xdd,
+ 0xd0, 0xbd, 0x1b, 0xdd, 0xe2, 0xab, 0xf8, 0x51, 0x0b, 0x51, 0x73, 0x51, 0x73, 0x8b, 0x53, 0xcb,
+ 0x46, 0xfa, 0x1d, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd5, 0x12, 0xef, 0x66, 0xf9, 0x00, 0x00,
+ 0x00,
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// EndorserClient is the client API for Endorser service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type EndorserClient interface {
+ ProcessProposal(ctx context.Context, in *SignedProposal, opts ...grpc.CallOption) (*ProposalResponse, error)
+}
+
+type endorserClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewEndorserClient(cc *grpc.ClientConn) EndorserClient {
+ return &endorserClient{cc}
+}
+
+func (c *endorserClient) ProcessProposal(ctx context.Context, in *SignedProposal, opts ...grpc.CallOption) (*ProposalResponse, error) {
+ out := new(ProposalResponse)
+ err := c.cc.Invoke(ctx, "/protos.Endorser/ProcessProposal", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// EndorserServer is the server API for Endorser service.
+type EndorserServer interface {
+ ProcessProposal(context.Context, *SignedProposal) (*ProposalResponse, error)
+}
+
+// UnimplementedEndorserServer can be embedded to have forward compatible implementations.
+type UnimplementedEndorserServer struct {
+}
+
+func (*UnimplementedEndorserServer) ProcessProposal(ctx context.Context, req *SignedProposal) (*ProposalResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ProcessProposal not implemented")
+}
+
+func RegisterEndorserServer(s *grpc.Server, srv EndorserServer) {
+ s.RegisterService(&_Endorser_serviceDesc, srv)
+}
+
+func _Endorser_ProcessProposal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(SignedProposal)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(EndorserServer).ProcessProposal(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/protos.Endorser/ProcessProposal",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(EndorserServer).ProcessProposal(ctx, req.(*SignedProposal))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _Endorser_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "protos.Endorser",
+ HandlerType: (*EndorserServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "ProcessProposal",
+ Handler: _Endorser_ProcessProposal_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "peer/peer.proto",
+}
diff --git a/peer/policy.pb.go b/peer/policy.pb.go
new file mode 100644
index 0000000..dd9874a
--- /dev/null
+++ b/peer/policy.pb.go
@@ -0,0 +1,130 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/policy.proto
+
+package peer
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ common "github.com/hyperledger/fabric-protos-go/common"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// ApplicationPolicy captures the diffenrent policy types that
+// are set and evaluted at the application level.
+type ApplicationPolicy struct {
+ // Types that are valid to be assigned to Type:
+ // *ApplicationPolicy_SignaturePolicy
+ // *ApplicationPolicy_ChannelConfigPolicyReference
+ Type isApplicationPolicy_Type `protobuf_oneof:"Type"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ApplicationPolicy) Reset() { *m = ApplicationPolicy{} }
+func (m *ApplicationPolicy) String() string { return proto.CompactTextString(m) }
+func (*ApplicationPolicy) ProtoMessage() {}
+func (*ApplicationPolicy) Descriptor() ([]byte, []int) {
+ return fileDescriptor_17aa1dd1e55c3e19, []int{0}
+}
+
+func (m *ApplicationPolicy) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ApplicationPolicy.Unmarshal(m, b)
+}
+func (m *ApplicationPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ApplicationPolicy.Marshal(b, m, deterministic)
+}
+func (m *ApplicationPolicy) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ApplicationPolicy.Merge(m, src)
+}
+func (m *ApplicationPolicy) XXX_Size() int {
+ return xxx_messageInfo_ApplicationPolicy.Size(m)
+}
+func (m *ApplicationPolicy) XXX_DiscardUnknown() {
+ xxx_messageInfo_ApplicationPolicy.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ApplicationPolicy proto.InternalMessageInfo
+
+type isApplicationPolicy_Type interface {
+ isApplicationPolicy_Type()
+}
+
+type ApplicationPolicy_SignaturePolicy struct {
+ SignaturePolicy *common.SignaturePolicyEnvelope `protobuf:"bytes,1,opt,name=signature_policy,json=signaturePolicy,proto3,oneof"`
+}
+
+type ApplicationPolicy_ChannelConfigPolicyReference struct {
+ ChannelConfigPolicyReference string `protobuf:"bytes,2,opt,name=channel_config_policy_reference,json=channelConfigPolicyReference,proto3,oneof"`
+}
+
+func (*ApplicationPolicy_SignaturePolicy) isApplicationPolicy_Type() {}
+
+func (*ApplicationPolicy_ChannelConfigPolicyReference) isApplicationPolicy_Type() {}
+
+func (m *ApplicationPolicy) GetType() isApplicationPolicy_Type {
+ if m != nil {
+ return m.Type
+ }
+ return nil
+}
+
+func (m *ApplicationPolicy) GetSignaturePolicy() *common.SignaturePolicyEnvelope {
+ if x, ok := m.GetType().(*ApplicationPolicy_SignaturePolicy); ok {
+ return x.SignaturePolicy
+ }
+ return nil
+}
+
+func (m *ApplicationPolicy) GetChannelConfigPolicyReference() string {
+ if x, ok := m.GetType().(*ApplicationPolicy_ChannelConfigPolicyReference); ok {
+ return x.ChannelConfigPolicyReference
+ }
+ return ""
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*ApplicationPolicy) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*ApplicationPolicy_SignaturePolicy)(nil),
+ (*ApplicationPolicy_ChannelConfigPolicyReference)(nil),
+ }
+}
+
+func init() {
+ proto.RegisterType((*ApplicationPolicy)(nil), "protos.ApplicationPolicy")
+}
+
+func init() { proto.RegisterFile("peer/policy.proto", fileDescriptor_17aa1dd1e55c3e19) }
+
+var fileDescriptor_17aa1dd1e55c3e19 = []byte{
+ // 243 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x90, 0xc1, 0x4a, 0xc3, 0x40,
+ 0x10, 0x86, 0x1b, 0x91, 0x82, 0xeb, 0x41, 0x1b, 0x10, 0x8a, 0x08, 0x2d, 0x3d, 0xf5, 0x60, 0x37,
+ 0xa0, 0x4f, 0x60, 0x45, 0xec, 0xc1, 0x83, 0x44, 0x4f, 0x5e, 0x42, 0xb2, 0x4e, 0x36, 0x0b, 0xdb,
+ 0x9d, 0x61, 0x36, 0x15, 0xf2, 0x5a, 0x3e, 0xa1, 0x24, 0xd3, 0x80, 0x3d, 0xed, 0xe1, 0xfb, 0xfe,
+ 0x9f, 0x9d, 0x5f, 0xcd, 0x08, 0x80, 0x33, 0x42, 0xef, 0x4c, 0xa7, 0x89, 0xb1, 0xc5, 0x74, 0x3a,
+ 0x3c, 0xf1, 0xf6, 0xc6, 0xe0, 0x7e, 0x8f, 0x41, 0xa0, 0x83, 0x28, 0x78, 0xf5, 0x9b, 0xa8, 0xd9,
+ 0x13, 0x91, 0x77, 0xa6, 0x6c, 0x1d, 0x86, 0xf7, 0x21, 0x9a, 0xbe, 0xa9, 0xeb, 0xe8, 0x6c, 0x28,
+ 0xdb, 0x03, 0x43, 0x21, 0x75, 0xf3, 0x64, 0x99, 0xac, 0x2f, 0x1f, 0x16, 0x5a, 0x7a, 0xf4, 0xc7,
+ 0xc8, 0x25, 0xf2, 0x12, 0x7e, 0xc0, 0x23, 0xc1, 0x6e, 0x92, 0x5f, 0xc5, 0x53, 0x94, 0xbe, 0xaa,
+ 0x85, 0x69, 0xca, 0x10, 0xc0, 0x17, 0x06, 0x43, 0xed, 0xec, 0xb1, 0xb2, 0x60, 0xa8, 0x81, 0x21,
+ 0x18, 0x98, 0x9f, 0x2d, 0x93, 0xf5, 0xc5, 0x6e, 0x92, 0xdf, 0x1d, 0xc5, 0xe7, 0xc1, 0x93, 0x7c,
+ 0x3e, 0x5a, 0xdb, 0xa9, 0x3a, 0xff, 0xec, 0x08, 0xb6, 0xb9, 0x5a, 0x21, 0x5b, 0xdd, 0x74, 0x04,
+ 0xec, 0xe1, 0xdb, 0x02, 0xeb, 0xba, 0xac, 0xd8, 0x19, 0x39, 0x2a, 0xea, 0x7e, 0x86, 0xaf, 0x7b,
+ 0xeb, 0xda, 0xe6, 0x50, 0xf5, 0x1f, 0xce, 0xfe, 0xa9, 0x99, 0xa8, 0x1b, 0x51, 0x37, 0x16, 0xb3,
+ 0xde, 0xae, 0x64, 0xa7, 0xc7, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x89, 0x76, 0x3a, 0x03, 0x43,
+ 0x01, 0x00, 0x00,
+}
diff --git a/peer/proposal.pb.go b/peer/proposal.pb.go
new file mode 100644
index 0000000..6c36747
--- /dev/null
+++ b/peer/proposal.pb.go
@@ -0,0 +1,415 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/proposal.proto
+
+package peer
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// This structure is necessary to sign the proposal which contains the header
+// and the payload. Without this structure, we would have to concatenate the
+// header and the payload to verify the signature, which could be expensive
+// with large payload
+//
+// When an endorser receives a SignedProposal message, it should verify the
+// signature over the proposal bytes. This verification requires the following
+// steps:
+// 1. Verification of the validity of the certificate that was used to produce
+// the signature. The certificate will be available once proposalBytes has
+// been unmarshalled to a Proposal message, and Proposal.header has been
+// unmarshalled to a Header message. While this unmarshalling-before-verifying
+// might not be ideal, it is unavoidable because i) the signature needs to also
+// protect the signing certificate; ii) it is desirable that Header is created
+// once by the client and never changed (for the sake of accountability and
+// non-repudiation). Note also that it is actually impossible to conclusively
+// verify the validity of the certificate included in a Proposal, because the
+// proposal needs to first be endorsed and ordered with respect to certificate
+// expiration transactions. Still, it is useful to pre-filter expired
+// certificates at this stage.
+// 2. Verification that the certificate is trusted (signed by a trusted CA) and
+// that it is allowed to transact with us (with respect to some ACLs);
+// 3. Verification that the signature on proposalBytes is valid;
+// 4. Detect replay attacks;
+type SignedProposal struct {
+ // The bytes of Proposal
+ ProposalBytes []byte `protobuf:"bytes,1,opt,name=proposal_bytes,json=proposalBytes,proto3" json:"proposal_bytes,omitempty"`
+ // Signaure over proposalBytes; this signature is to be verified against
+ // the creator identity contained in the header of the Proposal message
+ // marshaled as proposalBytes
+ Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SignedProposal) Reset() { *m = SignedProposal{} }
+func (m *SignedProposal) String() string { return proto.CompactTextString(m) }
+func (*SignedProposal) ProtoMessage() {}
+func (*SignedProposal) Descriptor() ([]byte, []int) {
+ return fileDescriptor_c4dbb4372a94bd5b, []int{0}
+}
+
+func (m *SignedProposal) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SignedProposal.Unmarshal(m, b)
+}
+func (m *SignedProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SignedProposal.Marshal(b, m, deterministic)
+}
+func (m *SignedProposal) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SignedProposal.Merge(m, src)
+}
+func (m *SignedProposal) XXX_Size() int {
+ return xxx_messageInfo_SignedProposal.Size(m)
+}
+func (m *SignedProposal) XXX_DiscardUnknown() {
+ xxx_messageInfo_SignedProposal.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SignedProposal proto.InternalMessageInfo
+
+func (m *SignedProposal) GetProposalBytes() []byte {
+ if m != nil {
+ return m.ProposalBytes
+ }
+ return nil
+}
+
+func (m *SignedProposal) GetSignature() []byte {
+ if m != nil {
+ return m.Signature
+ }
+ return nil
+}
+
+// A Proposal is sent to an endorser for endorsement. The proposal contains:
+// 1. A header which should be unmarshaled to a Header message. Note that
+// Header is both the header of a Proposal and of a Transaction, in that i)
+// both headers should be unmarshaled to this message; and ii) it is used to
+// compute cryptographic hashes and signatures. The header has fields common
+// to all proposals/transactions. In addition it has a type field for
+// additional customization. An example of this is the ChaincodeHeaderExtension
+// message used to extend the Header for type CHAINCODE.
+// 2. A payload whose type depends on the header's type field.
+// 3. An extension whose type depends on the header's type field.
+//
+// Let us see an example. For type CHAINCODE (see the Header message),
+// we have the following:
+// 1. The header is a Header message whose extensions field is a
+// ChaincodeHeaderExtension message.
+// 2. The payload is a ChaincodeProposalPayload message.
+// 3. The extension is a ChaincodeAction that might be used to ask the
+// endorsers to endorse a specific ChaincodeAction, thus emulating the
+// submitting peer model.
+type Proposal struct {
+ // The header of the proposal. It is the bytes of the Header
+ Header []byte `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
+ // The payload of the proposal as defined by the type in the proposal
+ // header.
+ Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
+ // Optional extensions to the proposal. Its content depends on the Header's
+ // type field. For the type CHAINCODE, it might be the bytes of a
+ // ChaincodeAction message.
+ Extension []byte `protobuf:"bytes,3,opt,name=extension,proto3" json:"extension,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Proposal) Reset() { *m = Proposal{} }
+func (m *Proposal) String() string { return proto.CompactTextString(m) }
+func (*Proposal) ProtoMessage() {}
+func (*Proposal) Descriptor() ([]byte, []int) {
+ return fileDescriptor_c4dbb4372a94bd5b, []int{1}
+}
+
+func (m *Proposal) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Proposal.Unmarshal(m, b)
+}
+func (m *Proposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Proposal.Marshal(b, m, deterministic)
+}
+func (m *Proposal) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Proposal.Merge(m, src)
+}
+func (m *Proposal) XXX_Size() int {
+ return xxx_messageInfo_Proposal.Size(m)
+}
+func (m *Proposal) XXX_DiscardUnknown() {
+ xxx_messageInfo_Proposal.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Proposal proto.InternalMessageInfo
+
+func (m *Proposal) GetHeader() []byte {
+ if m != nil {
+ return m.Header
+ }
+ return nil
+}
+
+func (m *Proposal) GetPayload() []byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+func (m *Proposal) GetExtension() []byte {
+ if m != nil {
+ return m.Extension
+ }
+ return nil
+}
+
+// ChaincodeHeaderExtension is the Header's extentions message to be used when
+// the Header's type is CHAINCODE. This extensions is used to specify which
+// chaincode to invoke and what should appear on the ledger.
+type ChaincodeHeaderExtension struct {
+ // The PayloadVisibility field controls to what extent the Proposal's payload
+ // (recall that for the type CHAINCODE, it is ChaincodeProposalPayload
+ // message) field will be visible in the final transaction and in the ledger.
+ // Ideally, it would be configurable, supporting at least 3 main visibility
+ // modes:
+ // 1. all bytes of the payload are visible;
+ // 2. only a hash of the payload is visible;
+ // 3. nothing is visible.
+ // Notice that the visibility function may be potentially part of the ESCC.
+ // In that case it overrides PayloadVisibility field. Finally notice that
+ // this field impacts the content of ProposalResponsePayload.proposalHash.
+ PayloadVisibility []byte `protobuf:"bytes,1,opt,name=payload_visibility,json=payloadVisibility,proto3" json:"payload_visibility,omitempty"`
+ // The ID of the chaincode to target.
+ ChaincodeId *ChaincodeID `protobuf:"bytes,2,opt,name=chaincode_id,json=chaincodeId,proto3" json:"chaincode_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeHeaderExtension) Reset() { *m = ChaincodeHeaderExtension{} }
+func (m *ChaincodeHeaderExtension) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeHeaderExtension) ProtoMessage() {}
+func (*ChaincodeHeaderExtension) Descriptor() ([]byte, []int) {
+ return fileDescriptor_c4dbb4372a94bd5b, []int{2}
+}
+
+func (m *ChaincodeHeaderExtension) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeHeaderExtension.Unmarshal(m, b)
+}
+func (m *ChaincodeHeaderExtension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeHeaderExtension.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeHeaderExtension) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeHeaderExtension.Merge(m, src)
+}
+func (m *ChaincodeHeaderExtension) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeHeaderExtension.Size(m)
+}
+func (m *ChaincodeHeaderExtension) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeHeaderExtension.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeHeaderExtension proto.InternalMessageInfo
+
+func (m *ChaincodeHeaderExtension) GetPayloadVisibility() []byte {
+ if m != nil {
+ return m.PayloadVisibility
+ }
+ return nil
+}
+
+func (m *ChaincodeHeaderExtension) GetChaincodeId() *ChaincodeID {
+ if m != nil {
+ return m.ChaincodeId
+ }
+ return nil
+}
+
+// ChaincodeProposalPayload is the Proposal's payload message to be used when
+// the Header's type is CHAINCODE. It contains the arguments for this
+// invocation.
+type ChaincodeProposalPayload struct {
+ // Input contains the arguments for this invocation. If this invocation
+ // deploys a new chaincode, ESCC/VSCC are part of this field.
+ // This is usually a marshaled ChaincodeInvocationSpec
+ Input []byte `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"`
+ // TransientMap contains data (e.g. cryptographic material) that might be used
+ // to implement some form of application-level confidentiality. The contents
+ // of this field are supposed to always be omitted from the transaction and
+ // excluded from the ledger.
+ TransientMap map[string][]byte `protobuf:"bytes,2,rep,name=TransientMap,proto3" json:"TransientMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeProposalPayload) Reset() { *m = ChaincodeProposalPayload{} }
+func (m *ChaincodeProposalPayload) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeProposalPayload) ProtoMessage() {}
+func (*ChaincodeProposalPayload) Descriptor() ([]byte, []int) {
+ return fileDescriptor_c4dbb4372a94bd5b, []int{3}
+}
+
+func (m *ChaincodeProposalPayload) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeProposalPayload.Unmarshal(m, b)
+}
+func (m *ChaincodeProposalPayload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeProposalPayload.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeProposalPayload) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeProposalPayload.Merge(m, src)
+}
+func (m *ChaincodeProposalPayload) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeProposalPayload.Size(m)
+}
+func (m *ChaincodeProposalPayload) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeProposalPayload.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeProposalPayload proto.InternalMessageInfo
+
+func (m *ChaincodeProposalPayload) GetInput() []byte {
+ if m != nil {
+ return m.Input
+ }
+ return nil
+}
+
+func (m *ChaincodeProposalPayload) GetTransientMap() map[string][]byte {
+ if m != nil {
+ return m.TransientMap
+ }
+ return nil
+}
+
+// ChaincodeAction contains the actions the events generated by the execution
+// of the chaincode.
+type ChaincodeAction struct {
+ // This field contains the read set and the write set produced by the
+ // chaincode executing this invocation.
+ Results []byte `protobuf:"bytes,1,opt,name=results,proto3" json:"results,omitempty"`
+ // This field contains the events generated by the chaincode executing this
+ // invocation.
+ Events []byte `protobuf:"bytes,2,opt,name=events,proto3" json:"events,omitempty"`
+ // This field contains the result of executing this invocation.
+ Response *Response `protobuf:"bytes,3,opt,name=response,proto3" json:"response,omitempty"`
+ // This field contains the ChaincodeID of executing this invocation. Endorser
+ // will set it with the ChaincodeID called by endorser while simulating proposal.
+ // Committer will validate the version matching with latest chaincode version.
+ // Adding ChaincodeID to keep version opens up the possibility of multiple
+ // ChaincodeAction per transaction.
+ ChaincodeId *ChaincodeID `protobuf:"bytes,4,opt,name=chaincode_id,json=chaincodeId,proto3" json:"chaincode_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeAction) Reset() { *m = ChaincodeAction{} }
+func (m *ChaincodeAction) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeAction) ProtoMessage() {}
+func (*ChaincodeAction) Descriptor() ([]byte, []int) {
+ return fileDescriptor_c4dbb4372a94bd5b, []int{4}
+}
+
+func (m *ChaincodeAction) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeAction.Unmarshal(m, b)
+}
+func (m *ChaincodeAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeAction.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeAction) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeAction.Merge(m, src)
+}
+func (m *ChaincodeAction) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeAction.Size(m)
+}
+func (m *ChaincodeAction) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeAction.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeAction proto.InternalMessageInfo
+
+func (m *ChaincodeAction) GetResults() []byte {
+ if m != nil {
+ return m.Results
+ }
+ return nil
+}
+
+func (m *ChaincodeAction) GetEvents() []byte {
+ if m != nil {
+ return m.Events
+ }
+ return nil
+}
+
+func (m *ChaincodeAction) GetResponse() *Response {
+ if m != nil {
+ return m.Response
+ }
+ return nil
+}
+
+func (m *ChaincodeAction) GetChaincodeId() *ChaincodeID {
+ if m != nil {
+ return m.ChaincodeId
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*SignedProposal)(nil), "protos.SignedProposal")
+ proto.RegisterType((*Proposal)(nil), "protos.Proposal")
+ proto.RegisterType((*ChaincodeHeaderExtension)(nil), "protos.ChaincodeHeaderExtension")
+ proto.RegisterType((*ChaincodeProposalPayload)(nil), "protos.ChaincodeProposalPayload")
+ proto.RegisterMapType((map[string][]byte)(nil), "protos.ChaincodeProposalPayload.TransientMapEntry")
+ proto.RegisterType((*ChaincodeAction)(nil), "protos.ChaincodeAction")
+}
+
+func init() { proto.RegisterFile("peer/proposal.proto", fileDescriptor_c4dbb4372a94bd5b) }
+
+var fileDescriptor_c4dbb4372a94bd5b = []byte{
+ // 470 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0xc1, 0x6a, 0xdb, 0x40,
+ 0x10, 0x45, 0x71, 0xe2, 0x38, 0x63, 0x37, 0x71, 0x36, 0xa1, 0x08, 0x93, 0x43, 0x10, 0x14, 0x72,
+ 0x88, 0x65, 0x70, 0xa1, 0x94, 0x5e, 0x4a, 0xdd, 0x06, 0x9a, 0x42, 0x21, 0xa8, 0x6d, 0x0e, 0xb9,
+ 0x98, 0x95, 0x34, 0x95, 0x17, 0xab, 0xbb, 0xcb, 0xee, 0xca, 0x54, 0xc7, 0x7e, 0x5a, 0x8f, 0xfd,
+ 0xab, 0x22, 0xed, 0xae, 0xe2, 0xd4, 0x97, 0x9e, 0xec, 0x99, 0x79, 0xef, 0xcd, 0xcc, 0x1b, 0x2d,
+ 0x9c, 0x49, 0x44, 0x35, 0x93, 0x4a, 0x48, 0xa1, 0x69, 0x19, 0x4b, 0x25, 0x8c, 0x20, 0xfd, 0xf6,
+ 0x47, 0x4f, 0xce, 0xdb, 0x62, 0xb6, 0xa2, 0x8c, 0x67, 0x22, 0x47, 0x5b, 0x9d, 0x5c, 0x3c, 0xa1,
+ 0x2c, 0x15, 0x6a, 0x29, 0xb8, 0x76, 0xd5, 0xe8, 0x1b, 0x1c, 0x7f, 0x61, 0x05, 0xc7, 0xfc, 0xce,
+ 0x01, 0xc8, 0x0b, 0x38, 0xee, 0xc0, 0x69, 0x6d, 0x50, 0x87, 0xc1, 0x65, 0x70, 0x35, 0x4a, 0x9e,
+ 0xf9, 0xec, 0xa2, 0x49, 0x92, 0x0b, 0x38, 0xd2, 0xac, 0xe0, 0xd4, 0x54, 0x0a, 0xc3, 0xbd, 0x16,
+ 0xf1, 0x98, 0x88, 0x1e, 0x60, 0xd0, 0x09, 0x3e, 0x87, 0xfe, 0x0a, 0x69, 0x8e, 0xca, 0x09, 0xb9,
+ 0x88, 0x84, 0x70, 0x28, 0x69, 0x5d, 0x0a, 0x9a, 0x3b, 0xbe, 0x0f, 0x1b, 0x6d, 0xfc, 0x69, 0x90,
+ 0x6b, 0x26, 0x78, 0xd8, 0xb3, 0xda, 0x5d, 0x22, 0xfa, 0x15, 0x40, 0xf8, 0xde, 0x2f, 0xf9, 0xb1,
+ 0xd5, 0xba, 0xf1, 0x45, 0x32, 0x05, 0xe2, 0x54, 0x96, 0x1b, 0xa6, 0x59, 0xca, 0x4a, 0x66, 0x6a,
+ 0xd7, 0xf8, 0xd4, 0x55, 0xee, 0xbb, 0x02, 0x79, 0x05, 0xa3, 0xce, 0xaf, 0x25, 0xb3, 0x83, 0x0c,
+ 0xe7, 0x67, 0xd6, 0x1c, 0x1d, 0x77, 0x6d, 0x6e, 0x3f, 0x24, 0xc3, 0x0e, 0x78, 0x9b, 0x47, 0x7f,
+ 0xb6, 0x67, 0xf0, 0x9b, 0xde, 0xb9, 0xf1, 0xcf, 0xe1, 0x80, 0x71, 0x59, 0x19, 0xd7, 0xd6, 0x06,
+ 0xe4, 0x1e, 0x46, 0x5f, 0x15, 0xe5, 0x9a, 0x21, 0x37, 0x9f, 0xa9, 0x0c, 0xf7, 0x2e, 0x7b, 0x57,
+ 0xc3, 0xf9, 0x7c, 0xa7, 0xd5, 0x3f, 0x6a, 0xf1, 0x36, 0xe9, 0x86, 0x1b, 0x55, 0x27, 0x4f, 0x74,
+ 0x26, 0x6f, 0xe1, 0x74, 0x07, 0x42, 0xc6, 0xd0, 0x5b, 0xa3, 0xdd, 0xfb, 0x28, 0x69, 0xfe, 0x36,
+ 0x43, 0x6d, 0x68, 0x59, 0xf9, 0x5b, 0xd9, 0xe0, 0xcd, 0xde, 0xeb, 0x20, 0xfa, 0x1d, 0xc0, 0x49,
+ 0xd7, 0xfd, 0x5d, 0x66, 0x1a, 0x1b, 0x43, 0x38, 0x54, 0xa8, 0xab, 0xd2, 0xf8, 0xeb, 0xfb, 0xb0,
+ 0xb9, 0x26, 0x6e, 0x90, 0x1b, 0xed, 0x84, 0x5c, 0x44, 0xae, 0x61, 0xe0, 0x3f, 0xad, 0xf6, 0x64,
+ 0xc3, 0xf9, 0xd8, 0xaf, 0x96, 0xb8, 0x7c, 0xd2, 0x21, 0x76, 0x7c, 0xdf, 0xff, 0x3f, 0xdf, 0x3f,
+ 0xed, 0x0f, 0x0e, 0xc6, 0xfd, 0x64, 0x6c, 0xc4, 0x1a, 0xf9, 0x52, 0x48, 0x54, 0xb4, 0x19, 0x57,
+ 0x2f, 0x32, 0x88, 0x84, 0x2a, 0xe2, 0x55, 0x2d, 0x51, 0x95, 0x98, 0x17, 0xa8, 0xe2, 0xef, 0x34,
+ 0x55, 0x2c, 0xf3, 0x8a, 0xcd, 0x23, 0x58, 0x9c, 0x3c, 0x7a, 0x9b, 0xad, 0x69, 0x81, 0x0f, 0xd7,
+ 0x05, 0x33, 0xab, 0x2a, 0x8d, 0x33, 0xf1, 0x63, 0xb6, 0xc5, 0x9d, 0x59, 0xee, 0xd4, 0x72, 0xa7,
+ 0x85, 0x98, 0x35, 0xf4, 0xd4, 0xbe, 0xb3, 0x97, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x97, 0xa6,
+ 0x18, 0x3f, 0x85, 0x03, 0x00, 0x00,
+}
diff --git a/peer/proposal_response.pb.go b/peer/proposal_response.pb.go
new file mode 100644
index 0000000..41d9a14
--- /dev/null
+++ b/peer/proposal_response.pb.go
@@ -0,0 +1,337 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/proposal_response.proto
+
+package peer
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ timestamp "github.com/golang/protobuf/ptypes/timestamp"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// A ProposalResponse is returned from an endorser to the proposal submitter.
+// The idea is that this message contains the endorser's response to the
+// request of a client to perform an action over a chaincode (or more
+// generically on the ledger); the response might be success/error (conveyed in
+// the Response field) together with a description of the action and a
+// signature over it by that endorser. If a sufficient number of distinct
+// endorsers agree on the same action and produce signature to that effect, a
+// transaction can be generated and sent for ordering.
+type ProposalResponse struct {
+ // Version indicates message protocol version
+ Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
+ // Timestamp is the time that the message
+ // was created as defined by the sender
+ Timestamp *timestamp.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+ // A response message indicating whether the
+ // endorsement of the action was successful
+ Response *Response `protobuf:"bytes,4,opt,name=response,proto3" json:"response,omitempty"`
+ // The payload of response. It is the bytes of ProposalResponsePayload
+ Payload []byte `protobuf:"bytes,5,opt,name=payload,proto3" json:"payload,omitempty"`
+ // The endorsement of the proposal, basically
+ // the endorser's signature over the payload
+ Endorsement *Endorsement `protobuf:"bytes,6,opt,name=endorsement,proto3" json:"endorsement,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ProposalResponse) Reset() { *m = ProposalResponse{} }
+func (m *ProposalResponse) String() string { return proto.CompactTextString(m) }
+func (*ProposalResponse) ProtoMessage() {}
+func (*ProposalResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_2ed51030656d961a, []int{0}
+}
+
+func (m *ProposalResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ProposalResponse.Unmarshal(m, b)
+}
+func (m *ProposalResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ProposalResponse.Marshal(b, m, deterministic)
+}
+func (m *ProposalResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ProposalResponse.Merge(m, src)
+}
+func (m *ProposalResponse) XXX_Size() int {
+ return xxx_messageInfo_ProposalResponse.Size(m)
+}
+func (m *ProposalResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_ProposalResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ProposalResponse proto.InternalMessageInfo
+
+func (m *ProposalResponse) GetVersion() int32 {
+ if m != nil {
+ return m.Version
+ }
+ return 0
+}
+
+func (m *ProposalResponse) GetTimestamp() *timestamp.Timestamp {
+ if m != nil {
+ return m.Timestamp
+ }
+ return nil
+}
+
+func (m *ProposalResponse) GetResponse() *Response {
+ if m != nil {
+ return m.Response
+ }
+ return nil
+}
+
+func (m *ProposalResponse) GetPayload() []byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+func (m *ProposalResponse) GetEndorsement() *Endorsement {
+ if m != nil {
+ return m.Endorsement
+ }
+ return nil
+}
+
+// A response with a representation similar to an HTTP response that can
+// be used within another message.
+type Response struct {
+ // A status code that should follow the HTTP status codes.
+ Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
+ // A message associated with the response code.
+ Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
+ // A payload that can be used to include metadata with this response.
+ Payload []byte `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Response) Reset() { *m = Response{} }
+func (m *Response) String() string { return proto.CompactTextString(m) }
+func (*Response) ProtoMessage() {}
+func (*Response) Descriptor() ([]byte, []int) {
+ return fileDescriptor_2ed51030656d961a, []int{1}
+}
+
+func (m *Response) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Response.Unmarshal(m, b)
+}
+func (m *Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Response.Marshal(b, m, deterministic)
+}
+func (m *Response) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Response.Merge(m, src)
+}
+func (m *Response) XXX_Size() int {
+ return xxx_messageInfo_Response.Size(m)
+}
+func (m *Response) XXX_DiscardUnknown() {
+ xxx_messageInfo_Response.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Response proto.InternalMessageInfo
+
+func (m *Response) GetStatus() int32 {
+ if m != nil {
+ return m.Status
+ }
+ return 0
+}
+
+func (m *Response) GetMessage() string {
+ if m != nil {
+ return m.Message
+ }
+ return ""
+}
+
+func (m *Response) GetPayload() []byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+// ProposalResponsePayload is the payload of a proposal response. This message
+// is the "bridge" between the client's request and the endorser's action in
+// response to that request. Concretely, for chaincodes, it contains a hashed
+// representation of the proposal (proposalHash) and a representation of the
+// chaincode state changes and events inside the extension field.
+type ProposalResponsePayload struct {
+ // Hash of the proposal that triggered this response. The hash is used to
+ // link a response with its proposal, both for bookeeping purposes on an
+ // asynchronous system and for security reasons (accountability,
+ // non-repudiation). The hash usually covers the entire Proposal message
+ // (byte-by-byte). However this implies that the hash can only be verified
+ // if the entire proposal message is available when ProposalResponsePayload is
+ // included in a transaction or stored in the ledger. For confidentiality
+ // reasons, with chaincodes it might be undesirable to store the proposal
+ // payload in the ledger. If the type is CHAINCODE, this is handled by
+ // separating the proposal's header and
+ // the payload: the header is always hashed in its entirety whereas the
+ // payload can either be hashed fully, or only its hash may be hashed, or
+ // nothing from the payload can be hashed. The PayloadVisibility field in the
+ // Header's extension controls to which extent the proposal payload is
+ // "visible" in the sense that was just explained.
+ ProposalHash []byte `protobuf:"bytes,1,opt,name=proposal_hash,json=proposalHash,proto3" json:"proposal_hash,omitempty"`
+ // Extension should be unmarshaled to a type-specific message. The type of
+ // the extension in any proposal response depends on the type of the proposal
+ // that the client selected when the proposal was initially sent out. In
+ // particular, this information is stored in the type field of a Header. For
+ // chaincode, it's a ChaincodeAction message
+ Extension []byte `protobuf:"bytes,2,opt,name=extension,proto3" json:"extension,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ProposalResponsePayload) Reset() { *m = ProposalResponsePayload{} }
+func (m *ProposalResponsePayload) String() string { return proto.CompactTextString(m) }
+func (*ProposalResponsePayload) ProtoMessage() {}
+func (*ProposalResponsePayload) Descriptor() ([]byte, []int) {
+ return fileDescriptor_2ed51030656d961a, []int{2}
+}
+
+func (m *ProposalResponsePayload) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ProposalResponsePayload.Unmarshal(m, b)
+}
+func (m *ProposalResponsePayload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ProposalResponsePayload.Marshal(b, m, deterministic)
+}
+func (m *ProposalResponsePayload) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ProposalResponsePayload.Merge(m, src)
+}
+func (m *ProposalResponsePayload) XXX_Size() int {
+ return xxx_messageInfo_ProposalResponsePayload.Size(m)
+}
+func (m *ProposalResponsePayload) XXX_DiscardUnknown() {
+ xxx_messageInfo_ProposalResponsePayload.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ProposalResponsePayload proto.InternalMessageInfo
+
+func (m *ProposalResponsePayload) GetProposalHash() []byte {
+ if m != nil {
+ return m.ProposalHash
+ }
+ return nil
+}
+
+func (m *ProposalResponsePayload) GetExtension() []byte {
+ if m != nil {
+ return m.Extension
+ }
+ return nil
+}
+
+// An endorsement is a signature of an endorser over a proposal response. By
+// producing an endorsement message, an endorser implicitly "approves" that
+// proposal response and the actions contained therein. When enough
+// endorsements have been collected, a transaction can be generated out of a
+// set of proposal responses. Note that this message only contains an identity
+// and a signature but no signed payload. This is intentional because
+// endorsements are supposed to be collected in a transaction, and they are all
+// expected to endorse a single proposal response/action (many endorsements
+// over a single proposal response)
+type Endorsement struct {
+ // Identity of the endorser (e.g. its certificate)
+ Endorser []byte `protobuf:"bytes,1,opt,name=endorser,proto3" json:"endorser,omitempty"`
+ // Signature of the payload included in ProposalResponse concatenated with
+ // the endorser's certificate; ie, sign(ProposalResponse.payload + endorser)
+ Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Endorsement) Reset() { *m = Endorsement{} }
+func (m *Endorsement) String() string { return proto.CompactTextString(m) }
+func (*Endorsement) ProtoMessage() {}
+func (*Endorsement) Descriptor() ([]byte, []int) {
+ return fileDescriptor_2ed51030656d961a, []int{3}
+}
+
+func (m *Endorsement) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Endorsement.Unmarshal(m, b)
+}
+func (m *Endorsement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Endorsement.Marshal(b, m, deterministic)
+}
+func (m *Endorsement) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Endorsement.Merge(m, src)
+}
+func (m *Endorsement) XXX_Size() int {
+ return xxx_messageInfo_Endorsement.Size(m)
+}
+func (m *Endorsement) XXX_DiscardUnknown() {
+ xxx_messageInfo_Endorsement.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Endorsement proto.InternalMessageInfo
+
+func (m *Endorsement) GetEndorser() []byte {
+ if m != nil {
+ return m.Endorser
+ }
+ return nil
+}
+
+func (m *Endorsement) GetSignature() []byte {
+ if m != nil {
+ return m.Signature
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*ProposalResponse)(nil), "protos.ProposalResponse")
+ proto.RegisterType((*Response)(nil), "protos.Response")
+ proto.RegisterType((*ProposalResponsePayload)(nil), "protos.ProposalResponsePayload")
+ proto.RegisterType((*Endorsement)(nil), "protos.Endorsement")
+}
+
+func init() { proto.RegisterFile("peer/proposal_response.proto", fileDescriptor_2ed51030656d961a) }
+
+var fileDescriptor_2ed51030656d961a = []byte{
+ // 371 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0x41, 0x6b, 0xe3, 0x30,
+ 0x10, 0x85, 0x71, 0x76, 0x93, 0x4d, 0x94, 0x2c, 0x04, 0x2f, 0xec, 0x9a, 0x10, 0xd8, 0xe0, 0x5e,
+ 0x72, 0x48, 0x64, 0x68, 0x29, 0xf4, 0x1c, 0x28, 0xed, 0x31, 0x88, 0xd2, 0x43, 0x29, 0x14, 0x39,
+ 0x99, 0xc8, 0x26, 0xb6, 0x25, 0x34, 0x72, 0x69, 0x7e, 0x70, 0xff, 0x47, 0xb1, 0x6c, 0x39, 0x6e,
+ 0xe9, 0xc9, 0xbc, 0xf1, 0xd3, 0x37, 0xf3, 0x46, 0x22, 0x73, 0x05, 0xa0, 0x23, 0xa5, 0xa5, 0x92,
+ 0xc8, 0xb3, 0x17, 0x0d, 0xa8, 0x64, 0x81, 0x40, 0x95, 0x96, 0x46, 0xfa, 0x03, 0xfb, 0xc1, 0xd9,
+ 0x7f, 0x21, 0xa5, 0xc8, 0x20, 0xb2, 0x32, 0x2e, 0x0f, 0x91, 0x49, 0x73, 0x40, 0xc3, 0x73, 0x55,
+ 0x1b, 0xc3, 0x77, 0x8f, 0x4c, 0xb7, 0x0d, 0x84, 0x35, 0x0c, 0x3f, 0x20, 0xbf, 0x5e, 0x41, 0x63,
+ 0x2a, 0x8b, 0xc0, 0x5b, 0x78, 0xcb, 0x3e, 0x73, 0xd2, 0xbf, 0x21, 0xa3, 0x96, 0x10, 0xf4, 0x16,
+ 0xde, 0x72, 0x7c, 0x39, 0xa3, 0x75, 0x0f, 0xea, 0x7a, 0xd0, 0x07, 0xe7, 0x60, 0x67, 0xb3, 0xbf,
+ 0x22, 0x43, 0x37, 0x63, 0xf0, 0xd3, 0x1e, 0x9c, 0xd6, 0x27, 0x90, 0xba, 0xbe, 0xac, 0x75, 0x54,
+ 0x13, 0x28, 0x7e, 0xca, 0x24, 0xdf, 0x07, 0xfd, 0x85, 0xb7, 0x9c, 0x30, 0x27, 0xfd, 0x6b, 0x32,
+ 0x86, 0x62, 0x2f, 0x35, 0x42, 0x0e, 0x85, 0x09, 0x06, 0x16, 0xf5, 0xc7, 0xa1, 0x6e, 0xcf, 0xbf,
+ 0x58, 0xd7, 0x17, 0x3e, 0x92, 0x61, 0x1b, 0xef, 0x2f, 0x19, 0xa0, 0xe1, 0xa6, 0xc4, 0x26, 0x5d,
+ 0xa3, 0xaa, 0xa6, 0x39, 0x20, 0x72, 0x01, 0x36, 0xda, 0x88, 0x39, 0xd9, 0x1d, 0xe7, 0xc7, 0xa7,
+ 0x71, 0xc2, 0x67, 0xf2, 0xef, 0xeb, 0xfa, 0xb6, 0xcd, 0xa4, 0x17, 0xe4, 0x77, 0x7b, 0x3d, 0x09,
+ 0xc7, 0xc4, 0x76, 0x9b, 0xb0, 0x89, 0x2b, 0xde, 0x73, 0x4c, 0xfc, 0x39, 0x19, 0xc1, 0x9b, 0x81,
+ 0xc2, 0x2e, 0xbb, 0x67, 0x0d, 0xe7, 0x42, 0x78, 0x47, 0xc6, 0x9d, 0x44, 0xfe, 0x8c, 0x0c, 0x9b,
+ 0x4c, 0xba, 0x81, 0xb5, 0xba, 0x02, 0x61, 0x2a, 0x0a, 0x6e, 0x4a, 0x0d, 0x0e, 0xd4, 0x16, 0x36,
+ 0x47, 0x12, 0x4a, 0x2d, 0x68, 0x72, 0x52, 0xa0, 0x33, 0xd8, 0x0b, 0xd0, 0xf4, 0xc0, 0x63, 0x9d,
+ 0xee, 0xdc, 0xe2, 0xaa, 0xd7, 0xb4, 0xf9, 0x26, 0xca, 0xee, 0xc8, 0x05, 0x3c, 0xad, 0x44, 0x6a,
+ 0x92, 0x32, 0xa6, 0x3b, 0x99, 0x47, 0x1d, 0x46, 0x54, 0x33, 0xd6, 0x35, 0x63, 0x2d, 0x64, 0x54,
+ 0x61, 0xe2, 0xfa, 0xf1, 0x5d, 0x7d, 0x04, 0x00, 0x00, 0xff, 0xff, 0xbf, 0xd6, 0x97, 0x69, 0xa3,
+ 0x02, 0x00, 0x00,
+}
diff --git a/peer/query.pb.go b/peer/query.pb.go
new file mode 100644
index 0000000..1ad3b27
--- /dev/null
+++ b/peer/query.pb.go
@@ -0,0 +1,279 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/query.proto
+
+package peer
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// ChaincodeQueryResponse returns information about each chaincode that pertains
+// to a query in lscc.go, such as GetChaincodes (returns all chaincodes
+// instantiated on a channel), and GetInstalledChaincodes (returns all chaincodes
+// installed on a peer)
+type ChaincodeQueryResponse struct {
+ Chaincodes []*ChaincodeInfo `protobuf:"bytes,1,rep,name=chaincodes,proto3" json:"chaincodes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeQueryResponse) Reset() { *m = ChaincodeQueryResponse{} }
+func (m *ChaincodeQueryResponse) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeQueryResponse) ProtoMessage() {}
+func (*ChaincodeQueryResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d45bcf7fe2423301, []int{0}
+}
+
+func (m *ChaincodeQueryResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeQueryResponse.Unmarshal(m, b)
+}
+func (m *ChaincodeQueryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeQueryResponse.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeQueryResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeQueryResponse.Merge(m, src)
+}
+func (m *ChaincodeQueryResponse) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeQueryResponse.Size(m)
+}
+func (m *ChaincodeQueryResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeQueryResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeQueryResponse proto.InternalMessageInfo
+
+func (m *ChaincodeQueryResponse) GetChaincodes() []*ChaincodeInfo {
+ if m != nil {
+ return m.Chaincodes
+ }
+ return nil
+}
+
+// ChaincodeInfo contains general information about an installed/instantiated
+// chaincode
+type ChaincodeInfo struct {
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
+ // the path as specified by the install/instantiate transaction
+ Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
+ // the chaincode function upon instantiation and its arguments. This will be
+ // blank if the query is returning information about installed chaincodes.
+ Input string `protobuf:"bytes,4,opt,name=input,proto3" json:"input,omitempty"`
+ // the name of the ESCC for this chaincode. This will be
+ // blank if the query is returning information about installed chaincodes.
+ Escc string `protobuf:"bytes,5,opt,name=escc,proto3" json:"escc,omitempty"`
+ // the name of the VSCC for this chaincode. This will be
+ // blank if the query is returning information about installed chaincodes.
+ Vscc string `protobuf:"bytes,6,opt,name=vscc,proto3" json:"vscc,omitempty"`
+ // the chaincode unique id.
+ // computed as: H(
+ // H(name || version) ||
+ // H(CodePackage)
+ // )
+ Id []byte `protobuf:"bytes,7,opt,name=id,proto3" json:"id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeInfo) Reset() { *m = ChaincodeInfo{} }
+func (m *ChaincodeInfo) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeInfo) ProtoMessage() {}
+func (*ChaincodeInfo) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d45bcf7fe2423301, []int{1}
+}
+
+func (m *ChaincodeInfo) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeInfo.Unmarshal(m, b)
+}
+func (m *ChaincodeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeInfo.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeInfo.Merge(m, src)
+}
+func (m *ChaincodeInfo) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeInfo.Size(m)
+}
+func (m *ChaincodeInfo) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeInfo proto.InternalMessageInfo
+
+func (m *ChaincodeInfo) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *ChaincodeInfo) GetVersion() string {
+ if m != nil {
+ return m.Version
+ }
+ return ""
+}
+
+func (m *ChaincodeInfo) GetPath() string {
+ if m != nil {
+ return m.Path
+ }
+ return ""
+}
+
+func (m *ChaincodeInfo) GetInput() string {
+ if m != nil {
+ return m.Input
+ }
+ return ""
+}
+
+func (m *ChaincodeInfo) GetEscc() string {
+ if m != nil {
+ return m.Escc
+ }
+ return ""
+}
+
+func (m *ChaincodeInfo) GetVscc() string {
+ if m != nil {
+ return m.Vscc
+ }
+ return ""
+}
+
+func (m *ChaincodeInfo) GetId() []byte {
+ if m != nil {
+ return m.Id
+ }
+ return nil
+}
+
+// ChannelQueryResponse returns information about each channel that pertains
+// to a query in lscc.go, such as GetChannels (returns all channels for a
+// given peer)
+type ChannelQueryResponse struct {
+ Channels []*ChannelInfo `protobuf:"bytes,1,rep,name=channels,proto3" json:"channels,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChannelQueryResponse) Reset() { *m = ChannelQueryResponse{} }
+func (m *ChannelQueryResponse) String() string { return proto.CompactTextString(m) }
+func (*ChannelQueryResponse) ProtoMessage() {}
+func (*ChannelQueryResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d45bcf7fe2423301, []int{2}
+}
+
+func (m *ChannelQueryResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChannelQueryResponse.Unmarshal(m, b)
+}
+func (m *ChannelQueryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChannelQueryResponse.Marshal(b, m, deterministic)
+}
+func (m *ChannelQueryResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChannelQueryResponse.Merge(m, src)
+}
+func (m *ChannelQueryResponse) XXX_Size() int {
+ return xxx_messageInfo_ChannelQueryResponse.Size(m)
+}
+func (m *ChannelQueryResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChannelQueryResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChannelQueryResponse proto.InternalMessageInfo
+
+func (m *ChannelQueryResponse) GetChannels() []*ChannelInfo {
+ if m != nil {
+ return m.Channels
+ }
+ return nil
+}
+
+// ChannelInfo contains general information about channels
+type ChannelInfo struct {
+ ChannelId string `protobuf:"bytes,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChannelInfo) Reset() { *m = ChannelInfo{} }
+func (m *ChannelInfo) String() string { return proto.CompactTextString(m) }
+func (*ChannelInfo) ProtoMessage() {}
+func (*ChannelInfo) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d45bcf7fe2423301, []int{3}
+}
+
+func (m *ChannelInfo) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChannelInfo.Unmarshal(m, b)
+}
+func (m *ChannelInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChannelInfo.Marshal(b, m, deterministic)
+}
+func (m *ChannelInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChannelInfo.Merge(m, src)
+}
+func (m *ChannelInfo) XXX_Size() int {
+ return xxx_messageInfo_ChannelInfo.Size(m)
+}
+func (m *ChannelInfo) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChannelInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChannelInfo proto.InternalMessageInfo
+
+func (m *ChannelInfo) GetChannelId() string {
+ if m != nil {
+ return m.ChannelId
+ }
+ return ""
+}
+
+func init() {
+ proto.RegisterType((*ChaincodeQueryResponse)(nil), "protos.ChaincodeQueryResponse")
+ proto.RegisterType((*ChaincodeInfo)(nil), "protos.ChaincodeInfo")
+ proto.RegisterType((*ChannelQueryResponse)(nil), "protos.ChannelQueryResponse")
+ proto.RegisterType((*ChannelInfo)(nil), "protos.ChannelInfo")
+}
+
+func init() { proto.RegisterFile("peer/query.proto", fileDescriptor_d45bcf7fe2423301) }
+
+var fileDescriptor_d45bcf7fe2423301 = []byte{
+ // 300 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x91, 0xcd, 0x6a, 0xeb, 0x30,
+ 0x10, 0x85, 0x71, 0x7e, 0x6f, 0x26, 0xb7, 0xa5, 0xa8, 0x69, 0xd1, 0xa6, 0x10, 0xbc, 0xca, 0x22,
+ 0xb1, 0xa1, 0xa5, 0x2f, 0xd0, 0x2c, 0x4a, 0x56, 0xa5, 0x5e, 0x76, 0x53, 0x1c, 0x79, 0x62, 0x0b,
+ 0x12, 0x49, 0x95, 0xec, 0x40, 0x9e, 0xa6, 0xaf, 0x5a, 0x46, 0x8a, 0x83, 0xb3, 0xf2, 0xcc, 0x77,
+ 0x3e, 0x61, 0x8e, 0x04, 0x77, 0x06, 0xd1, 0xa6, 0x3f, 0x0d, 0xda, 0x53, 0x62, 0xac, 0xae, 0x35,
+ 0x1b, 0xf9, 0x8f, 0x8b, 0x3f, 0xe0, 0x71, 0x5d, 0xe5, 0x52, 0x09, 0x5d, 0xe0, 0x27, 0xe5, 0x19,
+ 0x3a, 0xa3, 0x95, 0x43, 0xf6, 0x0a, 0x20, 0xda, 0xc4, 0xf1, 0x68, 0xde, 0x5f, 0x4c, 0x9f, 0x1f,
+ 0xc2, 0x69, 0x97, 0x5c, 0xce, 0x6c, 0xd4, 0x4e, 0x67, 0x1d, 0x31, 0xfe, 0x8d, 0xe0, 0xe6, 0x2a,
+ 0x65, 0x0c, 0x06, 0x2a, 0x3f, 0x20, 0x8f, 0xe6, 0xd1, 0x62, 0x92, 0xf9, 0x99, 0x71, 0x18, 0x1f,
+ 0xd1, 0x3a, 0xa9, 0x15, 0xef, 0x79, 0xdc, 0xae, 0x64, 0x9b, 0xbc, 0xae, 0x78, 0x3f, 0xd8, 0x34,
+ 0xb3, 0x19, 0x0c, 0xa5, 0x32, 0x4d, 0xcd, 0x07, 0x1e, 0x86, 0x85, 0x4c, 0x74, 0x42, 0xf0, 0x61,
+ 0x30, 0x69, 0x26, 0x76, 0x24, 0x36, 0x0a, 0x8c, 0x66, 0x76, 0x0b, 0x3d, 0x59, 0xf0, 0xf1, 0x3c,
+ 0x5a, 0xfc, 0xcf, 0x7a, 0xb2, 0x88, 0xdf, 0x61, 0xb6, 0xae, 0x72, 0xa5, 0x70, 0x7f, 0x5d, 0x38,
+ 0x85, 0x7f, 0x22, 0xf0, 0xb6, 0xee, 0x7d, 0xa7, 0x2e, 0x71, 0x5f, 0xf6, 0x22, 0xc5, 0x4b, 0x98,
+ 0x76, 0x02, 0xf6, 0xe4, 0x2f, 0x8c, 0xd6, 0x6f, 0x59, 0x9c, 0xdb, 0x4e, 0xce, 0x64, 0x53, 0xbc,
+ 0x65, 0x10, 0x6b, 0x5b, 0x26, 0xd5, 0xc9, 0xa0, 0xdd, 0x63, 0x51, 0xa2, 0x4d, 0x76, 0xf9, 0xd6,
+ 0x4a, 0xd1, 0xfe, 0x84, 0xde, 0xe8, 0x6b, 0x59, 0xca, 0xba, 0x6a, 0xb6, 0x89, 0xd0, 0x87, 0xb4,
+ 0xa3, 0xa6, 0x41, 0x5d, 0x05, 0x75, 0x55, 0xea, 0x94, 0xec, 0x6d, 0x78, 0xc5, 0x97, 0xbf, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0x22, 0x43, 0xb6, 0x12, 0xe0, 0x01, 0x00, 0x00,
+}
diff --git a/peer/resources.pb.go b/peer/resources.pb.go
new file mode 100644
index 0000000..abd54c9
--- /dev/null
+++ b/peer/resources.pb.go
@@ -0,0 +1,292 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/resources.proto
+
+package peer
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ common "github.com/hyperledger/fabric-protos-go/common"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// ChaincodeIdentifier identifies a piece of chaincode. For a peer to accept invocations of
+// this chaincode, the hash of the installed code must match, as must the version string
+// included with the install command.
+type ChaincodeIdentifier struct {
+ Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
+ Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeIdentifier) Reset() { *m = ChaincodeIdentifier{} }
+func (m *ChaincodeIdentifier) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeIdentifier) ProtoMessage() {}
+func (*ChaincodeIdentifier) Descriptor() ([]byte, []int) {
+ return fileDescriptor_4991d8496920b696, []int{0}
+}
+
+func (m *ChaincodeIdentifier) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeIdentifier.Unmarshal(m, b)
+}
+func (m *ChaincodeIdentifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeIdentifier.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeIdentifier) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeIdentifier.Merge(m, src)
+}
+func (m *ChaincodeIdentifier) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeIdentifier.Size(m)
+}
+func (m *ChaincodeIdentifier) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeIdentifier.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeIdentifier proto.InternalMessageInfo
+
+func (m *ChaincodeIdentifier) GetHash() []byte {
+ if m != nil {
+ return m.Hash
+ }
+ return nil
+}
+
+func (m *ChaincodeIdentifier) GetVersion() string {
+ if m != nil {
+ return m.Version
+ }
+ return ""
+}
+
+// ChaincodeValidation instructs the peer how transactions for this chaincode should be
+// validated. The only validation mechanism which ships with fabric today is the standard
+// 'vscc' validation mechanism. This built in validation method utilizes an endorsement policy
+// which checks that a sufficient number of signatures have been included. The 'arguement'
+// field encodes any parameters required by the validation implementation.
+type ChaincodeValidation struct {
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Argument []byte `protobuf:"bytes,2,opt,name=argument,proto3" json:"argument,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeValidation) Reset() { *m = ChaincodeValidation{} }
+func (m *ChaincodeValidation) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeValidation) ProtoMessage() {}
+func (*ChaincodeValidation) Descriptor() ([]byte, []int) {
+ return fileDescriptor_4991d8496920b696, []int{1}
+}
+
+func (m *ChaincodeValidation) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeValidation.Unmarshal(m, b)
+}
+func (m *ChaincodeValidation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeValidation.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeValidation) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeValidation.Merge(m, src)
+}
+func (m *ChaincodeValidation) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeValidation.Size(m)
+}
+func (m *ChaincodeValidation) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeValidation.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeValidation proto.InternalMessageInfo
+
+func (m *ChaincodeValidation) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *ChaincodeValidation) GetArgument() []byte {
+ if m != nil {
+ return m.Argument
+ }
+ return nil
+}
+
+// VSCCArgs is passed (marshaled) as a parameter to the VSCC imlementation via the
+// argument field of the ChaincodeValidation message.
+type VSCCArgs struct {
+ EndorsementPolicyRef string `protobuf:"bytes,1,opt,name=endorsement_policy_ref,json=endorsementPolicyRef,proto3" json:"endorsement_policy_ref,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *VSCCArgs) Reset() { *m = VSCCArgs{} }
+func (m *VSCCArgs) String() string { return proto.CompactTextString(m) }
+func (*VSCCArgs) ProtoMessage() {}
+func (*VSCCArgs) Descriptor() ([]byte, []int) {
+ return fileDescriptor_4991d8496920b696, []int{2}
+}
+
+func (m *VSCCArgs) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_VSCCArgs.Unmarshal(m, b)
+}
+func (m *VSCCArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_VSCCArgs.Marshal(b, m, deterministic)
+}
+func (m *VSCCArgs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_VSCCArgs.Merge(m, src)
+}
+func (m *VSCCArgs) XXX_Size() int {
+ return xxx_messageInfo_VSCCArgs.Size(m)
+}
+func (m *VSCCArgs) XXX_DiscardUnknown() {
+ xxx_messageInfo_VSCCArgs.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_VSCCArgs proto.InternalMessageInfo
+
+func (m *VSCCArgs) GetEndorsementPolicyRef() string {
+ if m != nil {
+ return m.EndorsementPolicyRef
+ }
+ return ""
+}
+
+// ChaincodeEndorsement instructs the peer how transactions should be endorsed. The only
+// endorsement mechanism which ships with the fabric today is the standard 'escc' mechanism.
+// This code simply simulates the proposal to generate a RW set, then signs the result
+// using the peer's local signing identity.
+type ChaincodeEndorsement struct {
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeEndorsement) Reset() { *m = ChaincodeEndorsement{} }
+func (m *ChaincodeEndorsement) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeEndorsement) ProtoMessage() {}
+func (*ChaincodeEndorsement) Descriptor() ([]byte, []int) {
+ return fileDescriptor_4991d8496920b696, []int{3}
+}
+
+func (m *ChaincodeEndorsement) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeEndorsement.Unmarshal(m, b)
+}
+func (m *ChaincodeEndorsement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeEndorsement.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeEndorsement) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeEndorsement.Merge(m, src)
+}
+func (m *ChaincodeEndorsement) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeEndorsement.Size(m)
+}
+func (m *ChaincodeEndorsement) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeEndorsement.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeEndorsement proto.InternalMessageInfo
+
+func (m *ChaincodeEndorsement) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+// ConfigTree encapsulates channel and resources configuration of a channel.
+// Both configurations are represented as common.Config
+type ConfigTree struct {
+ ChannelConfig *common.Config `protobuf:"bytes,1,opt,name=channel_config,json=channelConfig,proto3" json:"channel_config,omitempty"`
+ ResourcesConfig *common.Config `protobuf:"bytes,2,opt,name=resources_config,json=resourcesConfig,proto3" json:"resources_config,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigTree) Reset() { *m = ConfigTree{} }
+func (m *ConfigTree) String() string { return proto.CompactTextString(m) }
+func (*ConfigTree) ProtoMessage() {}
+func (*ConfigTree) Descriptor() ([]byte, []int) {
+ return fileDescriptor_4991d8496920b696, []int{4}
+}
+
+func (m *ConfigTree) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigTree.Unmarshal(m, b)
+}
+func (m *ConfigTree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigTree.Marshal(b, m, deterministic)
+}
+func (m *ConfigTree) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigTree.Merge(m, src)
+}
+func (m *ConfigTree) XXX_Size() int {
+ return xxx_messageInfo_ConfigTree.Size(m)
+}
+func (m *ConfigTree) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigTree.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigTree proto.InternalMessageInfo
+
+func (m *ConfigTree) GetChannelConfig() *common.Config {
+ if m != nil {
+ return m.ChannelConfig
+ }
+ return nil
+}
+
+func (m *ConfigTree) GetResourcesConfig() *common.Config {
+ if m != nil {
+ return m.ResourcesConfig
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*ChaincodeIdentifier)(nil), "protos.ChaincodeIdentifier")
+ proto.RegisterType((*ChaincodeValidation)(nil), "protos.ChaincodeValidation")
+ proto.RegisterType((*VSCCArgs)(nil), "protos.VSCCArgs")
+ proto.RegisterType((*ChaincodeEndorsement)(nil), "protos.ChaincodeEndorsement")
+ proto.RegisterType((*ConfigTree)(nil), "protos.ConfigTree")
+}
+
+func init() { proto.RegisterFile("peer/resources.proto", fileDescriptor_4991d8496920b696) }
+
+var fileDescriptor_4991d8496920b696 = []byte{
+ // 327 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x91, 0x3f, 0x4f, 0xc3, 0x30,
+ 0x10, 0xc5, 0xd5, 0x0a, 0x41, 0x6b, 0x4a, 0x41, 0xa6, 0xa0, 0xaa, 0x53, 0x95, 0xa9, 0x42, 0x34,
+ 0x91, 0xf8, 0x33, 0xb0, 0x01, 0x51, 0x07, 0x36, 0x64, 0x50, 0x07, 0x96, 0xca, 0x75, 0x2e, 0x8e,
+ 0xa5, 0xc4, 0x8e, 0xce, 0x29, 0xa2, 0x0b, 0x9f, 0x1d, 0xc5, 0x6e, 0x43, 0x86, 0x4e, 0xbe, 0xf3,
+ 0xfb, 0xdd, 0xd3, 0xe9, 0x1d, 0x19, 0x95, 0x00, 0x18, 0x21, 0x58, 0xb3, 0x41, 0x01, 0x36, 0x2c,
+ 0xd1, 0x54, 0x86, 0x1e, 0xbb, 0xc7, 0x4e, 0xae, 0x84, 0x29, 0x0a, 0xa3, 0x23, 0x61, 0x74, 0xaa,
+ 0x64, 0xf5, 0xe3, 0xe5, 0x20, 0x26, 0x97, 0x71, 0xc6, 0x95, 0x16, 0x26, 0x81, 0xb7, 0x04, 0x74,
+ 0xa5, 0x52, 0x05, 0x48, 0x29, 0x39, 0xca, 0xb8, 0xcd, 0xc6, 0x9d, 0x69, 0x67, 0x36, 0x60, 0xae,
+ 0xa6, 0x63, 0x72, 0xf2, 0x0d, 0x68, 0x95, 0xd1, 0xe3, 0xee, 0xb4, 0x33, 0xeb, 0xb3, 0x7d, 0x1b,
+ 0x2c, 0x5a, 0x26, 0x4b, 0x9e, 0xab, 0x84, 0x57, 0xca, 0xe8, 0xda, 0x44, 0xf3, 0x02, 0x9c, 0x49,
+ 0x9f, 0xb9, 0x9a, 0x4e, 0x48, 0x8f, 0xa3, 0xdc, 0x14, 0xa0, 0x2b, 0xe7, 0x32, 0x60, 0x4d, 0x1f,
+ 0x3c, 0x93, 0xde, 0xf2, 0x23, 0x8e, 0x5f, 0x50, 0x5a, 0xfa, 0x40, 0xae, 0x41, 0x27, 0x06, 0x2d,
+ 0xd4, 0xd2, 0xaa, 0x34, 0xb9, 0x12, 0xdb, 0x15, 0x42, 0xba, 0x73, 0x1b, 0xb5, 0xd4, 0x77, 0x27,
+ 0x32, 0x48, 0x83, 0x1b, 0x32, 0x6a, 0x16, 0x59, 0xfc, 0x03, 0x87, 0x36, 0x09, 0x7e, 0x09, 0x89,
+ 0x5d, 0x16, 0x9f, 0x08, 0x40, 0x1f, 0xc9, 0x50, 0x64, 0x5c, 0x6b, 0xc8, 0x57, 0x3e, 0x21, 0xc7,
+ 0x9e, 0xde, 0x0d, 0x43, 0x9f, 0x5b, 0xe8, 0x59, 0x76, 0xb6, 0xa3, 0x7c, 0x4b, 0x9f, 0xc8, 0x45,
+ 0x13, 0xf8, 0x7e, 0xb0, 0x7b, 0x70, 0xf0, 0xbc, 0xe1, 0xfc, 0xc7, 0x2b, 0x23, 0x81, 0x41, 0x19,
+ 0x66, 0xdb, 0x12, 0x30, 0x87, 0x44, 0x02, 0x86, 0x29, 0x5f, 0xa3, 0x12, 0xfe, 0x32, 0x36, 0xac,
+ 0xcf, 0xf9, 0x75, 0x2b, 0x55, 0x95, 0x6d, 0xd6, 0xb5, 0x59, 0xd4, 0x42, 0x23, 0x8f, 0xce, 0x3d,
+ 0x3a, 0x97, 0x26, 0xaa, 0xe9, 0xb5, 0x3f, 0xf6, 0xfd, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xae,
+ 0x32, 0x27, 0x0c, 0x0b, 0x02, 0x00, 0x00,
+}
diff --git a/peer/signed_cc_dep_spec.pb.go b/peer/signed_cc_dep_spec.pb.go
new file mode 100644
index 0000000..460d8ba
--- /dev/null
+++ b/peer/signed_cc_dep_spec.pb.go
@@ -0,0 +1,112 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/signed_cc_dep_spec.proto
+
+package peer
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// SignedChaincodeDeploymentSpec carries the CDS along with endorsements
+type SignedChaincodeDeploymentSpec struct {
+ // This is the bytes of the ChaincodeDeploymentSpec
+ ChaincodeDeploymentSpec []byte `protobuf:"bytes,1,opt,name=chaincode_deployment_spec,json=chaincodeDeploymentSpec,proto3" json:"chaincode_deployment_spec,omitempty"`
+ // This is the instantiation policy which is identical in structure
+ // to endorsement policy. This policy is checked by the VSCC at commit
+ // time on the instantiation (all peers will get the same policy as it
+ // will be part of the LSCC instantation record and will be part of the
+ // hash as well)
+ InstantiationPolicy []byte `protobuf:"bytes,2,opt,name=instantiation_policy,json=instantiationPolicy,proto3" json:"instantiation_policy,omitempty"`
+ // The endorsements of the above deployment spec, the owner's signature over
+ // chaincode_deployment_spec and Endorsement.endorser.
+ OwnerEndorsements []*Endorsement `protobuf:"bytes,3,rep,name=owner_endorsements,json=ownerEndorsements,proto3" json:"owner_endorsements,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SignedChaincodeDeploymentSpec) Reset() { *m = SignedChaincodeDeploymentSpec{} }
+func (m *SignedChaincodeDeploymentSpec) String() string { return proto.CompactTextString(m) }
+func (*SignedChaincodeDeploymentSpec) ProtoMessage() {}
+func (*SignedChaincodeDeploymentSpec) Descriptor() ([]byte, []int) {
+ return fileDescriptor_e007a7c0644e7e6f, []int{0}
+}
+
+func (m *SignedChaincodeDeploymentSpec) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SignedChaincodeDeploymentSpec.Unmarshal(m, b)
+}
+func (m *SignedChaincodeDeploymentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SignedChaincodeDeploymentSpec.Marshal(b, m, deterministic)
+}
+func (m *SignedChaincodeDeploymentSpec) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SignedChaincodeDeploymentSpec.Merge(m, src)
+}
+func (m *SignedChaincodeDeploymentSpec) XXX_Size() int {
+ return xxx_messageInfo_SignedChaincodeDeploymentSpec.Size(m)
+}
+func (m *SignedChaincodeDeploymentSpec) XXX_DiscardUnknown() {
+ xxx_messageInfo_SignedChaincodeDeploymentSpec.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SignedChaincodeDeploymentSpec proto.InternalMessageInfo
+
+func (m *SignedChaincodeDeploymentSpec) GetChaincodeDeploymentSpec() []byte {
+ if m != nil {
+ return m.ChaincodeDeploymentSpec
+ }
+ return nil
+}
+
+func (m *SignedChaincodeDeploymentSpec) GetInstantiationPolicy() []byte {
+ if m != nil {
+ return m.InstantiationPolicy
+ }
+ return nil
+}
+
+func (m *SignedChaincodeDeploymentSpec) GetOwnerEndorsements() []*Endorsement {
+ if m != nil {
+ return m.OwnerEndorsements
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*SignedChaincodeDeploymentSpec)(nil), "protos.SignedChaincodeDeploymentSpec")
+}
+
+func init() { proto.RegisterFile("peer/signed_cc_dep_spec.proto", fileDescriptor_e007a7c0644e7e6f) }
+
+var fileDescriptor_e007a7c0644e7e6f = []byte{
+ // 258 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x90, 0x41, 0x4b, 0xf3, 0x40,
+ 0x10, 0x86, 0xc9, 0x57, 0xf8, 0x0e, 0xab, 0x17, 0x53, 0xc1, 0x28, 0x16, 0x4a, 0x4f, 0x3d, 0xd8,
+ 0x04, 0xf5, 0xe6, 0xb1, 0xea, 0x5d, 0xd2, 0x9b, 0x97, 0x25, 0x99, 0x8c, 0xc9, 0x42, 0xba, 0x33,
+ 0xcc, 0xac, 0x48, 0xfe, 0xa6, 0xbf, 0x48, 0xb2, 0xb1, 0x58, 0x0f, 0x9e, 0x16, 0xf6, 0x79, 0xde,
+ 0x99, 0xe1, 0x35, 0x0b, 0x46, 0x94, 0x42, 0x5d, 0xeb, 0xb1, 0xb1, 0x00, 0xb6, 0x41, 0xb6, 0xca,
+ 0x08, 0x39, 0x0b, 0x05, 0x4a, 0xff, 0xc7, 0x47, 0xaf, 0xae, 0xa3, 0xc6, 0x42, 0x4c, 0x5a, 0xf5,
+ 0x56, 0x50, 0x99, 0xbc, 0xe2, 0x64, 0xad, 0x3e, 0x13, 0xb3, 0xd8, 0xc5, 0x11, 0x8f, 0x5d, 0xe5,
+ 0x3c, 0x50, 0x83, 0x4f, 0xc8, 0x3d, 0x0d, 0x7b, 0xf4, 0x61, 0xc7, 0x08, 0xe9, 0x83, 0xb9, 0x84,
+ 0x03, 0x1a, 0x77, 0x7c, 0xb3, 0xb8, 0x2a, 0x4b, 0x96, 0xc9, 0xfa, 0xb4, 0xbc, 0x80, 0x3f, 0xb2,
+ 0xb7, 0xe6, 0xdc, 0x79, 0x0d, 0x95, 0x0f, 0xae, 0x0a, 0x8e, 0xbc, 0x65, 0xea, 0x1d, 0x0c, 0xd9,
+ 0xbf, 0x18, 0x9b, 0xff, 0x62, 0x2f, 0x11, 0xa5, 0x5b, 0x93, 0xd2, 0x87, 0x47, 0xb1, 0xe8, 0x1b,
+ 0x12, 0xc5, 0x71, 0x96, 0x66, 0xb3, 0xe5, 0x6c, 0x7d, 0x72, 0x37, 0x9f, 0x8e, 0xd6, 0xfc, 0xf9,
+ 0x87, 0x95, 0x67, 0x51, 0x3f, 0xfa, 0xd1, 0x6d, 0x69, 0x56, 0x24, 0x6d, 0xde, 0x0d, 0x8c, 0xd2,
+ 0x63, 0xd3, 0xa2, 0xe4, 0x6f, 0x55, 0x2d, 0x0e, 0x0e, 0xf9, 0xb1, 0x92, 0xd7, 0x9b, 0xd6, 0x85,
+ 0xee, 0xbd, 0xce, 0x81, 0xf6, 0xc5, 0x91, 0x5a, 0x4c, 0xea, 0x66, 0x52, 0x37, 0x2d, 0x15, 0xa3,
+ 0x5d, 0x4f, 0x75, 0xde, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0xa0, 0xc6, 0x22, 0xdb, 0x76, 0x01,
+ 0x00, 0x00,
+}
diff --git a/peer/transaction.pb.go b/peer/transaction.pb.go
new file mode 100644
index 0000000..d0ee843
--- /dev/null
+++ b/peer/transaction.pb.go
@@ -0,0 +1,552 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: peer/transaction.proto
+
+package peer
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ common "github.com/hyperledger/fabric-protos-go/common"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type TxValidationCode int32
+
+const (
+ TxValidationCode_VALID TxValidationCode = 0
+ TxValidationCode_NIL_ENVELOPE TxValidationCode = 1
+ TxValidationCode_BAD_PAYLOAD TxValidationCode = 2
+ TxValidationCode_BAD_COMMON_HEADER TxValidationCode = 3
+ TxValidationCode_BAD_CREATOR_SIGNATURE TxValidationCode = 4
+ TxValidationCode_INVALID_ENDORSER_TRANSACTION TxValidationCode = 5
+ TxValidationCode_INVALID_CONFIG_TRANSACTION TxValidationCode = 6
+ TxValidationCode_UNSUPPORTED_TX_PAYLOAD TxValidationCode = 7
+ TxValidationCode_BAD_PROPOSAL_TXID TxValidationCode = 8
+ TxValidationCode_DUPLICATE_TXID TxValidationCode = 9
+ TxValidationCode_ENDORSEMENT_POLICY_FAILURE TxValidationCode = 10
+ TxValidationCode_MVCC_READ_CONFLICT TxValidationCode = 11
+ TxValidationCode_PHANTOM_READ_CONFLICT TxValidationCode = 12
+ TxValidationCode_UNKNOWN_TX_TYPE TxValidationCode = 13
+ TxValidationCode_TARGET_CHAIN_NOT_FOUND TxValidationCode = 14
+ TxValidationCode_MARSHAL_TX_ERROR TxValidationCode = 15
+ TxValidationCode_NIL_TXACTION TxValidationCode = 16
+ TxValidationCode_EXPIRED_CHAINCODE TxValidationCode = 17
+ TxValidationCode_CHAINCODE_VERSION_CONFLICT TxValidationCode = 18
+ TxValidationCode_BAD_HEADER_EXTENSION TxValidationCode = 19
+ TxValidationCode_BAD_CHANNEL_HEADER TxValidationCode = 20
+ TxValidationCode_BAD_RESPONSE_PAYLOAD TxValidationCode = 21
+ TxValidationCode_BAD_RWSET TxValidationCode = 22
+ TxValidationCode_ILLEGAL_WRITESET TxValidationCode = 23
+ TxValidationCode_INVALID_WRITESET TxValidationCode = 24
+ TxValidationCode_INVALID_CHAINCODE TxValidationCode = 25
+ TxValidationCode_NOT_VALIDATED TxValidationCode = 254
+ TxValidationCode_INVALID_OTHER_REASON TxValidationCode = 255
+)
+
+var TxValidationCode_name = map[int32]string{
+ 0: "VALID",
+ 1: "NIL_ENVELOPE",
+ 2: "BAD_PAYLOAD",
+ 3: "BAD_COMMON_HEADER",
+ 4: "BAD_CREATOR_SIGNATURE",
+ 5: "INVALID_ENDORSER_TRANSACTION",
+ 6: "INVALID_CONFIG_TRANSACTION",
+ 7: "UNSUPPORTED_TX_PAYLOAD",
+ 8: "BAD_PROPOSAL_TXID",
+ 9: "DUPLICATE_TXID",
+ 10: "ENDORSEMENT_POLICY_FAILURE",
+ 11: "MVCC_READ_CONFLICT",
+ 12: "PHANTOM_READ_CONFLICT",
+ 13: "UNKNOWN_TX_TYPE",
+ 14: "TARGET_CHAIN_NOT_FOUND",
+ 15: "MARSHAL_TX_ERROR",
+ 16: "NIL_TXACTION",
+ 17: "EXPIRED_CHAINCODE",
+ 18: "CHAINCODE_VERSION_CONFLICT",
+ 19: "BAD_HEADER_EXTENSION",
+ 20: "BAD_CHANNEL_HEADER",
+ 21: "BAD_RESPONSE_PAYLOAD",
+ 22: "BAD_RWSET",
+ 23: "ILLEGAL_WRITESET",
+ 24: "INVALID_WRITESET",
+ 25: "INVALID_CHAINCODE",
+ 254: "NOT_VALIDATED",
+ 255: "INVALID_OTHER_REASON",
+}
+
+var TxValidationCode_value = map[string]int32{
+ "VALID": 0,
+ "NIL_ENVELOPE": 1,
+ "BAD_PAYLOAD": 2,
+ "BAD_COMMON_HEADER": 3,
+ "BAD_CREATOR_SIGNATURE": 4,
+ "INVALID_ENDORSER_TRANSACTION": 5,
+ "INVALID_CONFIG_TRANSACTION": 6,
+ "UNSUPPORTED_TX_PAYLOAD": 7,
+ "BAD_PROPOSAL_TXID": 8,
+ "DUPLICATE_TXID": 9,
+ "ENDORSEMENT_POLICY_FAILURE": 10,
+ "MVCC_READ_CONFLICT": 11,
+ "PHANTOM_READ_CONFLICT": 12,
+ "UNKNOWN_TX_TYPE": 13,
+ "TARGET_CHAIN_NOT_FOUND": 14,
+ "MARSHAL_TX_ERROR": 15,
+ "NIL_TXACTION": 16,
+ "EXPIRED_CHAINCODE": 17,
+ "CHAINCODE_VERSION_CONFLICT": 18,
+ "BAD_HEADER_EXTENSION": 19,
+ "BAD_CHANNEL_HEADER": 20,
+ "BAD_RESPONSE_PAYLOAD": 21,
+ "BAD_RWSET": 22,
+ "ILLEGAL_WRITESET": 23,
+ "INVALID_WRITESET": 24,
+ "INVALID_CHAINCODE": 25,
+ "NOT_VALIDATED": 254,
+ "INVALID_OTHER_REASON": 255,
+}
+
+func (x TxValidationCode) String() string {
+ return proto.EnumName(TxValidationCode_name, int32(x))
+}
+
+func (TxValidationCode) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_25804bbfb0752368, []int{0}
+}
+
+// Reserved entries in the key-level metadata map
+type MetaDataKeys int32
+
+const (
+ MetaDataKeys_VALIDATION_PARAMETER MetaDataKeys = 0
+ MetaDataKeys_VALIDATION_PARAMETER_V2 MetaDataKeys = 1
+)
+
+var MetaDataKeys_name = map[int32]string{
+ 0: "VALIDATION_PARAMETER",
+ 1: "VALIDATION_PARAMETER_V2",
+}
+
+var MetaDataKeys_value = map[string]int32{
+ "VALIDATION_PARAMETER": 0,
+ "VALIDATION_PARAMETER_V2": 1,
+}
+
+func (x MetaDataKeys) String() string {
+ return proto.EnumName(MetaDataKeys_name, int32(x))
+}
+
+func (MetaDataKeys) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_25804bbfb0752368, []int{1}
+}
+
+// This message is necessary to facilitate the verification of the signature
+// (in the signature field) over the bytes of the transaction (in the
+// transactionBytes field).
+type SignedTransaction struct {
+ // The bytes of the Transaction. NDD
+ TransactionBytes []byte `protobuf:"bytes,1,opt,name=transaction_bytes,json=transactionBytes,proto3" json:"transaction_bytes,omitempty"`
+ // Signature of the transactionBytes The public key of the signature is in
+ // the header field of TransactionAction There might be multiple
+ // TransactionAction, so multiple headers, but there should be same
+ // transactor identity (cert) in all headers
+ Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SignedTransaction) Reset() { *m = SignedTransaction{} }
+func (m *SignedTransaction) String() string { return proto.CompactTextString(m) }
+func (*SignedTransaction) ProtoMessage() {}
+func (*SignedTransaction) Descriptor() ([]byte, []int) {
+ return fileDescriptor_25804bbfb0752368, []int{0}
+}
+
+func (m *SignedTransaction) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SignedTransaction.Unmarshal(m, b)
+}
+func (m *SignedTransaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SignedTransaction.Marshal(b, m, deterministic)
+}
+func (m *SignedTransaction) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SignedTransaction.Merge(m, src)
+}
+func (m *SignedTransaction) XXX_Size() int {
+ return xxx_messageInfo_SignedTransaction.Size(m)
+}
+func (m *SignedTransaction) XXX_DiscardUnknown() {
+ xxx_messageInfo_SignedTransaction.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SignedTransaction proto.InternalMessageInfo
+
+func (m *SignedTransaction) GetTransactionBytes() []byte {
+ if m != nil {
+ return m.TransactionBytes
+ }
+ return nil
+}
+
+func (m *SignedTransaction) GetSignature() []byte {
+ if m != nil {
+ return m.Signature
+ }
+ return nil
+}
+
+// ProcessedTransaction wraps an Envelope that includes a transaction along with an indication
+// of whether the transaction was validated or invalidated by committing peer.
+// The use case is that GetTransactionByID API needs to retrieve the transaction Envelope
+// from block storage, and return it to a client, and indicate whether the transaction
+// was validated or invalidated by committing peer. So that the originally submitted
+// transaction Envelope is not modified, the ProcessedTransaction wrapper is returned.
+type ProcessedTransaction struct {
+ // An Envelope which includes a processed transaction
+ TransactionEnvelope *common.Envelope `protobuf:"bytes,1,opt,name=transactionEnvelope,proto3" json:"transactionEnvelope,omitempty"`
+ // An indication of whether the transaction was validated or invalidated by committing peer
+ ValidationCode int32 `protobuf:"varint,2,opt,name=validationCode,proto3" json:"validationCode,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ProcessedTransaction) Reset() { *m = ProcessedTransaction{} }
+func (m *ProcessedTransaction) String() string { return proto.CompactTextString(m) }
+func (*ProcessedTransaction) ProtoMessage() {}
+func (*ProcessedTransaction) Descriptor() ([]byte, []int) {
+ return fileDescriptor_25804bbfb0752368, []int{1}
+}
+
+func (m *ProcessedTransaction) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ProcessedTransaction.Unmarshal(m, b)
+}
+func (m *ProcessedTransaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ProcessedTransaction.Marshal(b, m, deterministic)
+}
+func (m *ProcessedTransaction) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ProcessedTransaction.Merge(m, src)
+}
+func (m *ProcessedTransaction) XXX_Size() int {
+ return xxx_messageInfo_ProcessedTransaction.Size(m)
+}
+func (m *ProcessedTransaction) XXX_DiscardUnknown() {
+ xxx_messageInfo_ProcessedTransaction.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ProcessedTransaction proto.InternalMessageInfo
+
+func (m *ProcessedTransaction) GetTransactionEnvelope() *common.Envelope {
+ if m != nil {
+ return m.TransactionEnvelope
+ }
+ return nil
+}
+
+func (m *ProcessedTransaction) GetValidationCode() int32 {
+ if m != nil {
+ return m.ValidationCode
+ }
+ return 0
+}
+
+// The transaction to be sent to the ordering service. A transaction contains
+// one or more TransactionAction. Each TransactionAction binds a proposal to
+// potentially multiple actions. The transaction is atomic meaning that either
+// all actions in the transaction will be committed or none will. Note that
+// while a Transaction might include more than one Header, the Header.creator
+// field must be the same in each.
+// A single client is free to issue a number of independent Proposal, each with
+// their header (Header) and request payload (ChaincodeProposalPayload). Each
+// proposal is independently endorsed generating an action
+// (ProposalResponsePayload) with one signature per Endorser. Any number of
+// independent proposals (and their action) might be included in a transaction
+// to ensure that they are treated atomically.
+type Transaction struct {
+ // The payload is an array of TransactionAction. An array is necessary to
+ // accommodate multiple actions per transaction
+ Actions []*TransactionAction `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Transaction) Reset() { *m = Transaction{} }
+func (m *Transaction) String() string { return proto.CompactTextString(m) }
+func (*Transaction) ProtoMessage() {}
+func (*Transaction) Descriptor() ([]byte, []int) {
+ return fileDescriptor_25804bbfb0752368, []int{2}
+}
+
+func (m *Transaction) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Transaction.Unmarshal(m, b)
+}
+func (m *Transaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Transaction.Marshal(b, m, deterministic)
+}
+func (m *Transaction) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Transaction.Merge(m, src)
+}
+func (m *Transaction) XXX_Size() int {
+ return xxx_messageInfo_Transaction.Size(m)
+}
+func (m *Transaction) XXX_DiscardUnknown() {
+ xxx_messageInfo_Transaction.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Transaction proto.InternalMessageInfo
+
+func (m *Transaction) GetActions() []*TransactionAction {
+ if m != nil {
+ return m.Actions
+ }
+ return nil
+}
+
+// TransactionAction binds a proposal to its action. The type field in the
+// header dictates the type of action to be applied to the ledger.
+type TransactionAction struct {
+ // The header of the proposal action, which is the proposal header
+ Header []byte `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
+ // The payload of the action as defined by the type in the header For
+ // chaincode, it's the bytes of ChaincodeActionPayload
+ Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *TransactionAction) Reset() { *m = TransactionAction{} }
+func (m *TransactionAction) String() string { return proto.CompactTextString(m) }
+func (*TransactionAction) ProtoMessage() {}
+func (*TransactionAction) Descriptor() ([]byte, []int) {
+ return fileDescriptor_25804bbfb0752368, []int{3}
+}
+
+func (m *TransactionAction) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_TransactionAction.Unmarshal(m, b)
+}
+func (m *TransactionAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_TransactionAction.Marshal(b, m, deterministic)
+}
+func (m *TransactionAction) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TransactionAction.Merge(m, src)
+}
+func (m *TransactionAction) XXX_Size() int {
+ return xxx_messageInfo_TransactionAction.Size(m)
+}
+func (m *TransactionAction) XXX_DiscardUnknown() {
+ xxx_messageInfo_TransactionAction.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_TransactionAction proto.InternalMessageInfo
+
+func (m *TransactionAction) GetHeader() []byte {
+ if m != nil {
+ return m.Header
+ }
+ return nil
+}
+
+func (m *TransactionAction) GetPayload() []byte {
+ if m != nil {
+ return m.Payload
+ }
+ return nil
+}
+
+// ChaincodeActionPayload is the message to be used for the TransactionAction's
+// payload when the Header's type is set to CHAINCODE. It carries the
+// chaincodeProposalPayload and an endorsed action to apply to the ledger.
+type ChaincodeActionPayload struct {
+ // This field contains the bytes of the ChaincodeProposalPayload message from
+ // the original invocation (essentially the arguments) after the application
+ // of the visibility function. The main visibility modes are "full" (the
+ // entire ChaincodeProposalPayload message is included here), "hash" (only
+ // the hash of the ChaincodeProposalPayload message is included) or
+ // "nothing". This field will be used to check the consistency of
+ // ProposalResponsePayload.proposalHash. For the CHAINCODE type,
+ // ProposalResponsePayload.proposalHash is supposed to be H(ProposalHeader ||
+ // f(ChaincodeProposalPayload)) where f is the visibility function.
+ ChaincodeProposalPayload []byte `protobuf:"bytes,1,opt,name=chaincode_proposal_payload,json=chaincodeProposalPayload,proto3" json:"chaincode_proposal_payload,omitempty"`
+ // The list of actions to apply to the ledger
+ Action *ChaincodeEndorsedAction `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeActionPayload) Reset() { *m = ChaincodeActionPayload{} }
+func (m *ChaincodeActionPayload) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeActionPayload) ProtoMessage() {}
+func (*ChaincodeActionPayload) Descriptor() ([]byte, []int) {
+ return fileDescriptor_25804bbfb0752368, []int{4}
+}
+
+func (m *ChaincodeActionPayload) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeActionPayload.Unmarshal(m, b)
+}
+func (m *ChaincodeActionPayload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeActionPayload.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeActionPayload) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeActionPayload.Merge(m, src)
+}
+func (m *ChaincodeActionPayload) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeActionPayload.Size(m)
+}
+func (m *ChaincodeActionPayload) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeActionPayload.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeActionPayload proto.InternalMessageInfo
+
+func (m *ChaincodeActionPayload) GetChaincodeProposalPayload() []byte {
+ if m != nil {
+ return m.ChaincodeProposalPayload
+ }
+ return nil
+}
+
+func (m *ChaincodeActionPayload) GetAction() *ChaincodeEndorsedAction {
+ if m != nil {
+ return m.Action
+ }
+ return nil
+}
+
+// ChaincodeEndorsedAction carries information about the endorsement of a
+// specific proposal
+type ChaincodeEndorsedAction struct {
+ // This is the bytes of the ProposalResponsePayload message signed by the
+ // endorsers. Recall that for the CHAINCODE type, the
+ // ProposalResponsePayload's extenstion field carries a ChaincodeAction
+ ProposalResponsePayload []byte `protobuf:"bytes,1,opt,name=proposal_response_payload,json=proposalResponsePayload,proto3" json:"proposal_response_payload,omitempty"`
+ // The endorsement of the proposal, basically the endorser's signature over
+ // proposalResponsePayload
+ Endorsements []*Endorsement `protobuf:"bytes,2,rep,name=endorsements,proto3" json:"endorsements,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChaincodeEndorsedAction) Reset() { *m = ChaincodeEndorsedAction{} }
+func (m *ChaincodeEndorsedAction) String() string { return proto.CompactTextString(m) }
+func (*ChaincodeEndorsedAction) ProtoMessage() {}
+func (*ChaincodeEndorsedAction) Descriptor() ([]byte, []int) {
+ return fileDescriptor_25804bbfb0752368, []int{5}
+}
+
+func (m *ChaincodeEndorsedAction) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChaincodeEndorsedAction.Unmarshal(m, b)
+}
+func (m *ChaincodeEndorsedAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChaincodeEndorsedAction.Marshal(b, m, deterministic)
+}
+func (m *ChaincodeEndorsedAction) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChaincodeEndorsedAction.Merge(m, src)
+}
+func (m *ChaincodeEndorsedAction) XXX_Size() int {
+ return xxx_messageInfo_ChaincodeEndorsedAction.Size(m)
+}
+func (m *ChaincodeEndorsedAction) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChaincodeEndorsedAction.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChaincodeEndorsedAction proto.InternalMessageInfo
+
+func (m *ChaincodeEndorsedAction) GetProposalResponsePayload() []byte {
+ if m != nil {
+ return m.ProposalResponsePayload
+ }
+ return nil
+}
+
+func (m *ChaincodeEndorsedAction) GetEndorsements() []*Endorsement {
+ if m != nil {
+ return m.Endorsements
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterEnum("protos.TxValidationCode", TxValidationCode_name, TxValidationCode_value)
+ proto.RegisterEnum("protos.MetaDataKeys", MetaDataKeys_name, MetaDataKeys_value)
+ proto.RegisterType((*SignedTransaction)(nil), "protos.SignedTransaction")
+ proto.RegisterType((*ProcessedTransaction)(nil), "protos.ProcessedTransaction")
+ proto.RegisterType((*Transaction)(nil), "protos.Transaction")
+ proto.RegisterType((*TransactionAction)(nil), "protos.TransactionAction")
+ proto.RegisterType((*ChaincodeActionPayload)(nil), "protos.ChaincodeActionPayload")
+ proto.RegisterType((*ChaincodeEndorsedAction)(nil), "protos.ChaincodeEndorsedAction")
+}
+
+func init() { proto.RegisterFile("peer/transaction.proto", fileDescriptor_25804bbfb0752368) }
+
+var fileDescriptor_25804bbfb0752368 = []byte{
+ // 877 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x55, 0x5f, 0x6f, 0xe2, 0xc6,
+ 0x17, 0x5d, 0xb2, 0xbf, 0x24, 0xbf, 0x5c, 0x48, 0x32, 0x0c, 0x84, 0x00, 0x8d, 0xda, 0x15, 0x0f,
+ 0xd5, 0x6a, 0xdb, 0x05, 0x29, 0xfb, 0x50, 0xa9, 0xea, 0xcb, 0x60, 0x4f, 0x82, 0xb5, 0x66, 0xc6,
+ 0x1a, 0x0f, 0x84, 0xf4, 0xa1, 0x23, 0x07, 0x66, 0x09, 0x2a, 0xb1, 0x91, 0xcd, 0xae, 0x9a, 0xd7,
+ 0x7e, 0x80, 0xf6, 0x83, 0xf4, 0x3b, 0xb6, 0xd5, 0xf8, 0x0f, 0x90, 0xec, 0xf6, 0x05, 0x33, 0xe7,
+ 0x9c, 0x7b, 0xef, 0xb9, 0xf7, 0xc2, 0x18, 0x1a, 0x2b, 0xad, 0xe3, 0xde, 0x3a, 0x0e, 0xc2, 0x24,
+ 0x98, 0xae, 0x17, 0x51, 0xd8, 0x5d, 0xc5, 0xd1, 0x3a, 0xc2, 0x07, 0xe9, 0x23, 0x69, 0x5f, 0xa4,
+ 0xfc, 0x2a, 0x8e, 0x56, 0x51, 0x12, 0x2c, 0x55, 0xac, 0x93, 0x55, 0x14, 0x26, 0x3a, 0x53, 0xb5,
+ 0x6b, 0xd3, 0xe8, 0xe1, 0x21, 0x0a, 0x7b, 0xd9, 0x23, 0x03, 0x3b, 0xbf, 0x40, 0xd5, 0x5f, 0xcc,
+ 0x43, 0x3d, 0x93, 0xdb, 0xac, 0xf8, 0x3b, 0xa8, 0xee, 0x14, 0x51, 0x77, 0x8f, 0x6b, 0x9d, 0x34,
+ 0x4b, 0xaf, 0x4a, 0xaf, 0x2b, 0x02, 0xed, 0x10, 0x7d, 0x83, 0xe3, 0x0b, 0x38, 0x4a, 0x16, 0xf3,
+ 0x30, 0x58, 0x7f, 0x8c, 0x75, 0x73, 0x2f, 0x15, 0x6d, 0x81, 0xce, 0xef, 0x25, 0xa8, 0x7b, 0x71,
+ 0x34, 0xd5, 0x49, 0xf2, 0xb4, 0x46, 0x1f, 0x6a, 0x3b, 0xa9, 0x68, 0xf8, 0x49, 0x2f, 0xa3, 0x95,
+ 0x4e, 0xab, 0x94, 0x2f, 0x51, 0x37, 0x37, 0x59, 0xe0, 0xe2, 0x4b, 0x62, 0xfc, 0x2d, 0x9c, 0x7c,
+ 0x0a, 0x96, 0x8b, 0x59, 0x60, 0x50, 0x2b, 0x9a, 0x65, 0xf5, 0xf7, 0xc5, 0x33, 0xb4, 0xd3, 0x87,
+ 0xf2, 0x6e, 0xe9, 0x77, 0x70, 0x98, 0x7d, 0x33, 0x4d, 0xbd, 0x7c, 0x5d, 0xbe, 0x6c, 0x65, 0xc3,
+ 0x48, 0xba, 0x3b, 0x2a, 0x92, 0x7e, 0x8a, 0x42, 0xd9, 0xa1, 0x50, 0xfd, 0x8c, 0xc5, 0x0d, 0x38,
+ 0xb8, 0xd7, 0xc1, 0x4c, 0xc7, 0xf9, 0x74, 0xf2, 0x13, 0x6e, 0xc2, 0xe1, 0x2a, 0x78, 0x5c, 0x46,
+ 0xc1, 0x2c, 0x9f, 0x48, 0x71, 0xec, 0xfc, 0x59, 0x82, 0x86, 0x75, 0x1f, 0x2c, 0xc2, 0x69, 0x34,
+ 0xd3, 0x59, 0x16, 0x2f, 0xa3, 0xf0, 0x4f, 0xd0, 0x9e, 0x16, 0x8c, 0xda, 0x2c, 0xb1, 0xc8, 0x93,
+ 0x15, 0x68, 0x6e, 0x14, 0x5e, 0x2e, 0x28, 0xa2, 0x7f, 0x80, 0x83, 0xcc, 0x5a, 0x5a, 0xb1, 0x7c,
+ 0xf9, 0x4d, 0xd1, 0xd3, 0xa6, 0x1a, 0x0d, 0x67, 0x51, 0x9c, 0xe8, 0x59, 0xde, 0x59, 0x2e, 0xef,
+ 0xfc, 0x51, 0x82, 0xf3, 0xff, 0xd0, 0xe0, 0x1f, 0xa1, 0xf5, 0xd9, 0xaf, 0xe9, 0x99, 0xa3, 0xf3,
+ 0x42, 0x20, 0x72, 0x7e, 0x6b, 0xa8, 0xa2, 0xb3, 0x6c, 0x0f, 0x3a, 0x5c, 0x27, 0xcd, 0xbd, 0x74,
+ 0xd4, 0xb5, 0xc2, 0x16, 0xdd, 0x72, 0xe2, 0x89, 0xf0, 0xcd, 0x5f, 0xfb, 0x80, 0xe4, 0x6f, 0xe3,
+ 0x27, 0x2b, 0xc4, 0x47, 0xb0, 0x3f, 0x26, 0xae, 0x63, 0xa3, 0x17, 0x18, 0x41, 0x85, 0x39, 0xae,
+ 0xa2, 0x6c, 0x4c, 0x5d, 0xee, 0x51, 0x54, 0xc2, 0xa7, 0x50, 0xee, 0x13, 0x5b, 0x79, 0xe4, 0xd6,
+ 0xe5, 0xc4, 0x46, 0x7b, 0xf8, 0x0c, 0xaa, 0x06, 0xb0, 0xf8, 0x70, 0xc8, 0x99, 0x1a, 0x50, 0x62,
+ 0x53, 0x81, 0x5e, 0xe2, 0x16, 0x9c, 0xa5, 0xb0, 0xa0, 0x44, 0x72, 0xa1, 0x7c, 0xe7, 0x9a, 0x11,
+ 0x39, 0x12, 0x14, 0xfd, 0x0f, 0xbf, 0x82, 0x0b, 0x87, 0xa5, 0x15, 0x14, 0x65, 0x36, 0x17, 0x3e,
+ 0x15, 0x4a, 0x0a, 0xc2, 0x7c, 0x62, 0x49, 0x87, 0x33, 0xb4, 0x8f, 0xbf, 0x86, 0x76, 0xa1, 0xb0,
+ 0x38, 0xbb, 0x72, 0xae, 0x9f, 0xf0, 0x07, 0xb8, 0x0d, 0x8d, 0x11, 0xf3, 0x47, 0x9e, 0xc7, 0x85,
+ 0xa4, 0xb6, 0x92, 0x93, 0x8d, 0x9f, 0xc3, 0xc2, 0x8f, 0x27, 0xb8, 0xc7, 0x7d, 0xe2, 0x2a, 0x39,
+ 0x71, 0x6c, 0xf4, 0x7f, 0x8c, 0xe1, 0xc4, 0x1e, 0x79, 0xae, 0x63, 0x11, 0x49, 0x33, 0xec, 0xc8,
+ 0x94, 0xc9, 0x0d, 0x0c, 0x29, 0x93, 0xca, 0xe3, 0xae, 0x63, 0xdd, 0xaa, 0x2b, 0xe2, 0xb8, 0xc6,
+ 0x28, 0xe0, 0x06, 0xe0, 0xe1, 0xd8, 0xb2, 0x94, 0xa0, 0x24, 0x33, 0xe2, 0x3a, 0x96, 0x44, 0x65,
+ 0xd3, 0x9b, 0x37, 0x20, 0x4c, 0xf2, 0xe1, 0x33, 0xaa, 0x82, 0x6b, 0x70, 0x3a, 0x62, 0xef, 0x19,
+ 0xbf, 0x61, 0xc6, 0x95, 0xbc, 0xf5, 0x28, 0x3a, 0x36, 0x76, 0x25, 0x11, 0xd7, 0x54, 0x2a, 0x6b,
+ 0x40, 0x1c, 0xa6, 0x18, 0x97, 0xea, 0x8a, 0x8f, 0x98, 0x8d, 0x4e, 0x70, 0x1d, 0xd0, 0x90, 0x08,
+ 0x7f, 0x90, 0x3a, 0x55, 0x54, 0x08, 0x2e, 0xd0, 0x69, 0x31, 0x77, 0x39, 0xc9, 0x5b, 0x46, 0xa6,
+ 0x2d, 0x3a, 0xf1, 0x1c, 0x41, 0xed, 0x2c, 0x89, 0xc5, 0x6d, 0x8a, 0xaa, 0xa6, 0x85, 0xcd, 0x51,
+ 0x8d, 0xa9, 0xf0, 0x1d, 0xce, 0xb6, 0x7e, 0x30, 0x6e, 0x42, 0xdd, 0x4c, 0x23, 0x5b, 0x8b, 0xa2,
+ 0x13, 0x49, 0x99, 0x91, 0xa0, 0x9a, 0x69, 0x2e, 0x5d, 0xd0, 0x80, 0x30, 0x46, 0xdd, 0x62, 0x71,
+ 0xf5, 0x22, 0x42, 0x50, 0xdf, 0xe3, 0xcc, 0xa7, 0x9b, 0xc9, 0x9e, 0xe1, 0x63, 0x38, 0x4a, 0x99,
+ 0x1b, 0x9f, 0x4a, 0xd4, 0x30, 0xce, 0x1d, 0xd7, 0xa5, 0xd7, 0xc4, 0x55, 0x37, 0xc2, 0x91, 0xd4,
+ 0xa0, 0xe7, 0x29, 0x9a, 0xaf, 0x6e, 0x83, 0x36, 0x8d, 0xfb, 0xcd, 0x42, 0x37, 0xee, 0x5b, 0x18,
+ 0xc3, 0xb1, 0x99, 0x45, 0x4a, 0x10, 0x49, 0x6d, 0xf4, 0x77, 0x09, 0xb7, 0xa0, 0x5e, 0x48, 0xb9,
+ 0x1c, 0x50, 0x61, 0x46, 0xec, 0x73, 0x86, 0xfe, 0x29, 0xbd, 0xa1, 0x50, 0x19, 0xea, 0x75, 0x60,
+ 0x07, 0xeb, 0xe0, 0xbd, 0x7e, 0x4c, 0x8c, 0xd5, 0x3c, 0xd4, 0x74, 0xed, 0x11, 0x41, 0x86, 0x54,
+ 0x52, 0x81, 0x5e, 0xe0, 0xaf, 0xe0, 0xfc, 0x4b, 0x8c, 0x1a, 0x5f, 0xa2, 0x52, 0xff, 0x03, 0x74,
+ 0xa2, 0x78, 0xde, 0xbd, 0x7f, 0x5c, 0xe9, 0x78, 0xa9, 0x67, 0x73, 0x1d, 0x77, 0x3f, 0x04, 0x77,
+ 0xf1, 0x62, 0x5a, 0xfc, 0x5f, 0xcc, 0xd5, 0xde, 0xc7, 0x3b, 0x57, 0x90, 0x17, 0x4c, 0x7f, 0x0d,
+ 0xe6, 0xfa, 0xe7, 0xef, 0xe7, 0x8b, 0xf5, 0xfd, 0xc7, 0x3b, 0x73, 0x63, 0xf6, 0x76, 0xc2, 0x7b,
+ 0x59, 0xf8, 0xdb, 0x2c, 0xfc, 0xed, 0x3c, 0xea, 0x99, 0x0c, 0x77, 0xd9, 0xab, 0xe2, 0xdd, 0xbf,
+ 0x01, 0x00, 0x00, 0xff, 0xff, 0x62, 0x8e, 0xaf, 0x03, 0x4b, 0x06, 0x00, 0x00,
+}
diff --git a/transientstore/transientstore.pb.go b/transientstore/transientstore.pb.go
new file mode 100644
index 0000000..ca51874
--- /dev/null
+++ b/transientstore/transientstore.pb.go
@@ -0,0 +1,115 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: transientstore/transientstore.proto
+
+package transientstore
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ common "github.com/hyperledger/fabric-protos-go/common"
+ rwset "github.com/hyperledger/fabric-protos-go/ledger/rwset"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// TxPvtReadWriteSetWithConfigInfo encapsulates the transaction's private
+// read-write set and additional information about the configurations such as
+// the latest collection config when the transaction is simulated
+type TxPvtReadWriteSetWithConfigInfo struct {
+ EndorsedAt uint64 `protobuf:"varint,1,opt,name=endorsed_at,json=endorsedAt,proto3" json:"endorsed_at,omitempty"`
+ PvtRwset *rwset.TxPvtReadWriteSet `protobuf:"bytes,2,opt,name=pvt_rwset,json=pvtRwset,proto3" json:"pvt_rwset,omitempty"`
+ CollectionConfigs map[string]*common.CollectionConfigPackage `protobuf:"bytes,3,rep,name=collection_configs,json=collectionConfigs,proto3" json:"collection_configs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *TxPvtReadWriteSetWithConfigInfo) Reset() { *m = TxPvtReadWriteSetWithConfigInfo{} }
+func (m *TxPvtReadWriteSetWithConfigInfo) String() string { return proto.CompactTextString(m) }
+func (*TxPvtReadWriteSetWithConfigInfo) ProtoMessage() {}
+func (*TxPvtReadWriteSetWithConfigInfo) Descriptor() ([]byte, []int) {
+ return fileDescriptor_fca243668b157b9e, []int{0}
+}
+
+func (m *TxPvtReadWriteSetWithConfigInfo) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_TxPvtReadWriteSetWithConfigInfo.Unmarshal(m, b)
+}
+func (m *TxPvtReadWriteSetWithConfigInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_TxPvtReadWriteSetWithConfigInfo.Marshal(b, m, deterministic)
+}
+func (m *TxPvtReadWriteSetWithConfigInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TxPvtReadWriteSetWithConfigInfo.Merge(m, src)
+}
+func (m *TxPvtReadWriteSetWithConfigInfo) XXX_Size() int {
+ return xxx_messageInfo_TxPvtReadWriteSetWithConfigInfo.Size(m)
+}
+func (m *TxPvtReadWriteSetWithConfigInfo) XXX_DiscardUnknown() {
+ xxx_messageInfo_TxPvtReadWriteSetWithConfigInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_TxPvtReadWriteSetWithConfigInfo proto.InternalMessageInfo
+
+func (m *TxPvtReadWriteSetWithConfigInfo) GetEndorsedAt() uint64 {
+ if m != nil {
+ return m.EndorsedAt
+ }
+ return 0
+}
+
+func (m *TxPvtReadWriteSetWithConfigInfo) GetPvtRwset() *rwset.TxPvtReadWriteSet {
+ if m != nil {
+ return m.PvtRwset
+ }
+ return nil
+}
+
+func (m *TxPvtReadWriteSetWithConfigInfo) GetCollectionConfigs() map[string]*common.CollectionConfigPackage {
+ if m != nil {
+ return m.CollectionConfigs
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*TxPvtReadWriteSetWithConfigInfo)(nil), "transientstore.TxPvtReadWriteSetWithConfigInfo")
+ proto.RegisterMapType((map[string]*common.CollectionConfigPackage)(nil), "transientstore.TxPvtReadWriteSetWithConfigInfo.CollectionConfigsEntry")
+}
+
+func init() {
+ proto.RegisterFile("transientstore/transientstore.proto", fileDescriptor_fca243668b157b9e)
+}
+
+var fileDescriptor_fca243668b157b9e = []byte{
+ // 323 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0x5f, 0x4b, 0xfb, 0x30,
+ 0x14, 0xa5, 0xdb, 0xef, 0x27, 0x2e, 0x03, 0xd1, 0x3c, 0x68, 0xd9, 0xcb, 0x86, 0xbe, 0xec, 0xc1,
+ 0xa5, 0x30, 0x99, 0x88, 0x6f, 0x3a, 0x14, 0x7c, 0x1b, 0x51, 0x18, 0xf8, 0x32, 0xb2, 0xf4, 0xb6,
+ 0x0b, 0xeb, 0x92, 0x92, 0xdc, 0x55, 0xf7, 0x49, 0xfd, 0x3a, 0xd2, 0xc6, 0x7f, 0xeb, 0x04, 0x5f,
+ 0x4a, 0x73, 0xee, 0x39, 0xf7, 0xdc, 0x73, 0x13, 0x72, 0x86, 0x56, 0x68, 0xa7, 0x40, 0xa3, 0x43,
+ 0x63, 0x21, 0xda, 0x3e, 0xb2, 0xdc, 0x1a, 0x34, 0xf4, 0x60, 0x1b, 0xed, 0x84, 0x19, 0xc4, 0x29,
+ 0xd8, 0xc8, 0xbe, 0x38, 0x40, 0xff, 0xf5, 0xcc, 0xce, 0x89, 0x34, 0xab, 0x95, 0xd1, 0x91, 0x34,
+ 0x59, 0x06, 0x12, 0x95, 0xd1, 0xbe, 0x70, 0xfa, 0xd6, 0x20, 0xdd, 0xa7, 0xd7, 0x49, 0x81, 0x1c,
+ 0x44, 0x3c, 0xb5, 0x0a, 0xe1, 0x11, 0x70, 0xaa, 0x70, 0x31, 0x36, 0x3a, 0x51, 0xe9, 0x83, 0x4e,
+ 0x0c, 0xed, 0x92, 0x36, 0xe8, 0xd8, 0x58, 0x07, 0xf1, 0x4c, 0x60, 0x18, 0xf4, 0x82, 0xfe, 0x3f,
+ 0x4e, 0x3e, 0xa1, 0x1b, 0xa4, 0x23, 0xd2, 0xca, 0x0b, 0x9c, 0x55, 0x86, 0x61, 0xa3, 0x17, 0xf4,
+ 0xdb, 0xc3, 0x90, 0x79, 0xfb, 0x9d, 0xde, 0x7c, 0x3f, 0x2f, 0x90, 0x97, 0x35, 0xba, 0x26, 0xf4,
+ 0x7b, 0x9e, 0x99, 0xac, 0x0c, 0x5d, 0xd8, 0xec, 0x35, 0xfb, 0xed, 0xe1, 0x3d, 0xab, 0x25, 0xfe,
+ 0x63, 0x48, 0x36, 0xfe, 0xea, 0xe4, 0x41, 0x77, 0xa7, 0xd1, 0x6e, 0xf8, 0x91, 0xac, 0xe3, 0x1d,
+ 0x20, 0xc7, 0xbf, 0x93, 0xe9, 0x21, 0x69, 0x2e, 0x61, 0x53, 0x05, 0x6c, 0xf1, 0xf2, 0x97, 0x8e,
+ 0xc8, 0xff, 0x42, 0x64, 0x6b, 0xf8, 0x48, 0xd5, 0x65, 0x7e, 0x8f, 0x3b, 0x6e, 0x13, 0x21, 0x97,
+ 0x22, 0x05, 0xee, 0xd9, 0xd7, 0x8d, 0xab, 0xe0, 0x36, 0x21, 0xe7, 0xc6, 0xa6, 0x6c, 0xb1, 0xc9,
+ 0xc1, 0xfa, 0x7b, 0x61, 0x89, 0x98, 0x5b, 0x25, 0xfd, 0xe6, 0x5d, 0x2d, 0xe0, 0xf3, 0x65, 0xaa,
+ 0x70, 0xb1, 0x9e, 0x97, 0x0e, 0xd1, 0x0f, 0x51, 0xe4, 0x45, 0x03, 0x2f, 0x1a, 0xa4, 0xa6, 0xf6,
+ 0x14, 0xe6, 0x7b, 0x55, 0xe5, 0xe2, 0x3d, 0x00, 0x00, 0xff, 0xff, 0x25, 0x09, 0x8a, 0xed, 0x32,
+ 0x02, 0x00, 0x00,
+}