github.com/leonlxy/hyperledger@v1.0.0-alpha.0.20170427033203-34922035d248/protos/peer/proposal.pb.go (about) 1 // Code generated by protoc-gen-go. 2 // source: peer/proposal.proto 3 // DO NOT EDIT! 4 5 package peer 6 7 import proto "github.com/golang/protobuf/proto" 8 import fmt "fmt" 9 import math "math" 10 11 // Reference imports to suppress errors if they are not otherwise used. 12 var _ = proto.Marshal 13 var _ = fmt.Errorf 14 var _ = math.Inf 15 16 // This structure is necessary to sign the proposal which contains the header 17 // and the payload. Without this structure, we would have to concatenate the 18 // header and the payload to verify the signature, which could be expensive 19 // with large payload 20 // 21 // When an endorser receives a SignedProposal message, it should verify the 22 // signature over the proposal bytes. This verification requires the following 23 // steps: 24 // 1. Verification of the validity of the certificate that was used to produce 25 // the signature. The certificate will be available once proposalBytes has 26 // been unmarshalled to a Proposal message, and Proposal.header has been 27 // unmarshalled to a Header message. While this unmarshalling-before-verifying 28 // might not be ideal, it is unavoidable because i) the signature needs to also 29 // protect the signing certificate; ii) it is desirable that Header is created 30 // once by the client and never changed (for the sake of accountability and 31 // non-repudiation). Note also that it is actually impossible to conclusively 32 // verify the validity of the certificate included in a Proposal, because the 33 // proposal needs to first be endorsed and ordered with respect to certificate 34 // expiration transactions. Still, it is useful to pre-filter expired 35 // certificates at this stage. 36 // 2. Verification that the certificate is trusted (signed by a trusted CA) and 37 // that it is allowed to transact with us (with respect to some ACLs); 38 // 3. Verification that the signature on proposalBytes is valid; 39 // 4. Detect replay attacks; 40 type SignedProposal struct { 41 // The bytes of Proposal 42 ProposalBytes []byte `protobuf:"bytes,1,opt,name=proposal_bytes,json=proposalBytes,proto3" json:"proposal_bytes,omitempty"` 43 // Signaure over proposalBytes; this signature is to be verified against 44 // the creator identity contained in the header of the Proposal message 45 // marshaled as proposalBytes 46 Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` 47 } 48 49 func (m *SignedProposal) Reset() { *m = SignedProposal{} } 50 func (m *SignedProposal) String() string { return proto.CompactTextString(m) } 51 func (*SignedProposal) ProtoMessage() {} 52 func (*SignedProposal) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{0} } 53 54 // A Proposal is sent to an endorser for endorsement. The proposal contains: 55 // 1. A header which should be unmarshaled to a Header message. Note that 56 // Header is both the header of a Proposal and of a Transaction, in that i) 57 // both headers should be unmarshaled to this message; and ii) it is used to 58 // compute cryptographic hashes and signatures. The header has fields common 59 // to all proposals/transactions. In addition it has a type field for 60 // additional customization. An example of this is the ChaincodeHeaderExtension 61 // message used to extend the Header for type CHAINCODE. 62 // 2. A payload whose type depends on the header's type field. 63 // 3. An extension whose type depends on the header's type field. 64 // 65 // Let us see an example. For type CHAINCODE (see the Header message), 66 // we have the following: 67 // 1. The header is a Header message whose extensions field is a 68 // ChaincodeHeaderExtension message. 69 // 2. The payload is a ChaincodeProposalPayload message. 70 // 3. The extension is a ChaincodeAction that might be used to ask the 71 // endorsers to endorse a specific ChaincodeAction, thus emulating the 72 // submitting peer model. 73 type Proposal struct { 74 // The header of the proposal. It is the bytes of the Header 75 Header []byte `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` 76 // The payload of the proposal as defined by the type in the proposal 77 // header. 78 Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` 79 // Optional extensions to the proposal. Its content depends on the Header's 80 // type field. For the type CHAINCODE, it might be the bytes of a 81 // ChaincodeAction message. 82 Extension []byte `protobuf:"bytes,3,opt,name=extension,proto3" json:"extension,omitempty"` 83 } 84 85 func (m *Proposal) Reset() { *m = Proposal{} } 86 func (m *Proposal) String() string { return proto.CompactTextString(m) } 87 func (*Proposal) ProtoMessage() {} 88 func (*Proposal) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{1} } 89 90 // ChaincodeHeaderExtension is the Header's extentions message to be used when 91 // the Header's type is CHAINCODE. This extensions is used to specify which 92 // chaincode to invoke and what should appear on the ledger. 93 type ChaincodeHeaderExtension struct { 94 // The PayloadVisibility field controls to what extent the Proposal's payload 95 // (recall that for the type CHAINCODE, it is ChaincodeProposalPayload 96 // message) field will be visible in the final transaction and in the ledger. 97 // Ideally, it would be configurable, supporting at least 3 main visibility 98 // modes: 99 // 1. all bytes of the payload are visible; 100 // 2. only a hash of the payload is visible; 101 // 3. nothing is visible. 102 // Notice that the visibility function may be potentially part of the ESCC. 103 // In that case it overrides PayloadVisibility field. Finally notice that 104 // this field impacts the content of ProposalResponsePayload.proposalHash. 105 PayloadVisibility []byte `protobuf:"bytes,1,opt,name=payload_visibility,json=payloadVisibility,proto3" json:"payload_visibility,omitempty"` 106 // The ID of the chaincode to target. 107 ChaincodeId *ChaincodeID `protobuf:"bytes,2,opt,name=chaincode_id,json=chaincodeId" json:"chaincode_id,omitempty"` 108 } 109 110 func (m *ChaincodeHeaderExtension) Reset() { *m = ChaincodeHeaderExtension{} } 111 func (m *ChaincodeHeaderExtension) String() string { return proto.CompactTextString(m) } 112 func (*ChaincodeHeaderExtension) ProtoMessage() {} 113 func (*ChaincodeHeaderExtension) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{2} } 114 115 func (m *ChaincodeHeaderExtension) GetChaincodeId() *ChaincodeID { 116 if m != nil { 117 return m.ChaincodeId 118 } 119 return nil 120 } 121 122 // ChaincodeProposalPayload is the Proposal's payload message to be used when 123 // the Header's type is CHAINCODE. It contains the arguments for this 124 // invocation. 125 type ChaincodeProposalPayload struct { 126 // Input contains the arguments for this invocation. If this invocation 127 // deploys a new chaincode, ESCC/VSCC are part of this field. 128 Input []byte `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` 129 // TransientMap contains data (e.g. cryptographic material) that might be used 130 // to implement some form of application-level confidentiality. The contents 131 // of this field are supposed to always be omitted from the transaction and 132 // excluded from the ledger. 133 TransientMap map[string][]byte `protobuf:"bytes,2,rep,name=TransientMap" json:"TransientMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value,proto3"` 134 } 135 136 func (m *ChaincodeProposalPayload) Reset() { *m = ChaincodeProposalPayload{} } 137 func (m *ChaincodeProposalPayload) String() string { return proto.CompactTextString(m) } 138 func (*ChaincodeProposalPayload) ProtoMessage() {} 139 func (*ChaincodeProposalPayload) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{3} } 140 141 func (m *ChaincodeProposalPayload) GetTransientMap() map[string][]byte { 142 if m != nil { 143 return m.TransientMap 144 } 145 return nil 146 } 147 148 // ChaincodeAction contains the actions the events generated by the execution 149 // of the chaincode. 150 type ChaincodeAction struct { 151 // This field contains the read set and the write set produced by the 152 // chaincode executing this invocation. 153 Results []byte `protobuf:"bytes,1,opt,name=results,proto3" json:"results,omitempty"` 154 // This field contains the events generated by the chaincode executing this 155 // invocation. 156 Events []byte `protobuf:"bytes,2,opt,name=events,proto3" json:"events,omitempty"` 157 // This field contains the result of executing this invocation. 158 Response *Response `protobuf:"bytes,3,opt,name=response" json:"response,omitempty"` 159 // This field contains the ChaincodeID of executing this invocation. Endorser 160 // will set it with the ChaincodeID called by endorser while simulating proposal. 161 // Committer will validate the version matching with latest chaincode version. 162 // Adding ChaincodeID to keep version opens up the possibility of multiple 163 // ChaincodeAction per transaction. 164 ChaincodeId *ChaincodeID `protobuf:"bytes,4,opt,name=chaincode_id,json=chaincodeId" json:"chaincode_id,omitempty"` 165 } 166 167 func (m *ChaincodeAction) Reset() { *m = ChaincodeAction{} } 168 func (m *ChaincodeAction) String() string { return proto.CompactTextString(m) } 169 func (*ChaincodeAction) ProtoMessage() {} 170 func (*ChaincodeAction) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{4} } 171 172 func (m *ChaincodeAction) GetResponse() *Response { 173 if m != nil { 174 return m.Response 175 } 176 return nil 177 } 178 179 func (m *ChaincodeAction) GetChaincodeId() *ChaincodeID { 180 if m != nil { 181 return m.ChaincodeId 182 } 183 return nil 184 } 185 186 func init() { 187 proto.RegisterType((*SignedProposal)(nil), "protos.SignedProposal") 188 proto.RegisterType((*Proposal)(nil), "protos.Proposal") 189 proto.RegisterType((*ChaincodeHeaderExtension)(nil), "protos.ChaincodeHeaderExtension") 190 proto.RegisterType((*ChaincodeProposalPayload)(nil), "protos.ChaincodeProposalPayload") 191 proto.RegisterType((*ChaincodeAction)(nil), "protos.ChaincodeAction") 192 } 193 194 func init() { proto.RegisterFile("peer/proposal.proto", fileDescriptor7) } 195 196 var fileDescriptor7 = []byte{ 197 // 452 bytes of a gzipped FileDescriptorProto 198 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x8c, 0x53, 0x4d, 0x6f, 0xd3, 0x4c, 199 0x10, 0x96, 0x93, 0xf7, 0xed, 0xc7, 0x24, 0xf4, 0x63, 0x5b, 0x21, 0x2b, 0xea, 0xa1, 0xb2, 0x84, 200 0x54, 0x24, 0xb0, 0xa5, 0x20, 0x21, 0xc4, 0x05, 0x11, 0xa8, 0x44, 0x0f, 0x48, 0x95, 0x81, 0x1e, 201 0x7a, 0x09, 0x6b, 0x7b, 0x70, 0x56, 0x35, 0xbb, 0xab, 0xdd, 0x75, 0x84, 0x8f, 0xfc, 0x1c, 0x7e, 202 0x0a, 0xff, 0x0a, 0xd9, 0xfb, 0xd1, 0x94, 0x5c, 0x38, 0x25, 0x33, 0xf3, 0x3c, 0xcf, 0xcc, 0x3c, 203 0xb3, 0x86, 0x13, 0x89, 0xa8, 0x32, 0xa9, 0x84, 0x14, 0x9a, 0x36, 0xa9, 0x54, 0xc2, 0x08, 0xb2, 204 0x33, 0xfc, 0xe8, 0xd9, 0xe9, 0x50, 0x2c, 0x57, 0x94, 0xf1, 0x52, 0x54, 0x68, 0xab, 0xb3, 0xb3, 205 0x07, 0x94, 0xa5, 0x42, 0x2d, 0x05, 0xd7, 0xae, 0x9a, 0x7c, 0x81, 0x83, 0x4f, 0xac, 0xe6, 0x58, 206 0x5d, 0x3b, 0x00, 0x79, 0x02, 0x07, 0x01, 0x5c, 0x74, 0x06, 0x75, 0x1c, 0x9d, 0x47, 0x17, 0xd3, 207 0xfc, 0x91, 0xcf, 0x2e, 0xfa, 0x24, 0x39, 0x83, 0x7d, 0xcd, 0x6a, 0x4e, 0x4d, 0xab, 0x30, 0x1e, 208 0x0d, 0x88, 0xfb, 0x44, 0x72, 0x0b, 0x7b, 0x41, 0xf0, 0x31, 0xec, 0xac, 0x90, 0x56, 0xa8, 0x9c, 209 0x90, 0x8b, 0x48, 0x0c, 0xbb, 0x92, 0x76, 0x8d, 0xa0, 0x95, 0xe3, 0xfb, 0xb0, 0xd7, 0xc6, 0x1f, 210 0x06, 0xb9, 0x66, 0x82, 0xc7, 0x63, 0xab, 0x1d, 0x12, 0xc9, 0xcf, 0x08, 0xe2, 0x77, 0x7e, 0xc9, 211 0x0f, 0x83, 0xd6, 0xa5, 0x2f, 0x92, 0xe7, 0x40, 0x9c, 0xca, 0x72, 0xcd, 0x34, 0x2b, 0x58, 0xc3, 212 0x4c, 0xe7, 0x1a, 0x1f, 0xbb, 0xca, 0x4d, 0x28, 0x90, 0x97, 0x30, 0x0d, 0x7e, 0x2d, 0x99, 0x1d, 213 0x64, 0x32, 0x3f, 0xb1, 0xe6, 0xe8, 0x34, 0xb4, 0xb9, 0x7a, 0x9f, 0x4f, 0x02, 0xf0, 0xaa, 0x4a, 214 0x7e, 0x6f, 0xce, 0xe0, 0x37, 0xbd, 0x76, 0xe3, 0x9f, 0xc2, 0xff, 0x8c, 0xcb, 0xd6, 0xb8, 0xb6, 215 0x36, 0x20, 0x37, 0x30, 0xfd, 0xac, 0x28, 0xd7, 0x0c, 0xb9, 0xf9, 0x48, 0x65, 0x3c, 0x3a, 0x1f, 216 0x5f, 0x4c, 0xe6, 0xf3, 0xad, 0x56, 0x7f, 0xa9, 0xa5, 0x9b, 0xa4, 0x4b, 0x6e, 0x54, 0x97, 0x3f, 217 0xd0, 0x99, 0xbd, 0x81, 0xe3, 0x2d, 0x08, 0x39, 0x82, 0xf1, 0x1d, 0xda, 0xbd, 0xf7, 0xf3, 0xfe, 218 0x6f, 0x3f, 0xd4, 0x9a, 0x36, 0xad, 0xbf, 0x95, 0x0d, 0x5e, 0x8f, 0x5e, 0x45, 0xc9, 0xaf, 0x08, 219 0x0e, 0x43, 0xf7, 0xb7, 0xa5, 0xe9, 0x6d, 0x8c, 0x61, 0x57, 0xa1, 0x6e, 0x1b, 0xe3, 0xaf, 0xef, 220 0xc3, 0xfe, 0x9a, 0xb8, 0x46, 0x6e, 0xb4, 0x13, 0x72, 0x11, 0x79, 0x06, 0x7b, 0xfe, 0x69, 0x0d, 221 0x27, 0x9b, 0xcc, 0x8f, 0xfc, 0x6a, 0xb9, 0xcb, 0xe7, 0x01, 0xb1, 0xe5, 0xfb, 0x7f, 0xff, 0xe6, 222 0xfb, 0xe2, 0x2b, 0x24, 0x42, 0xd5, 0xe9, 0xaa, 0x93, 0xa8, 0x1a, 0xac, 0x6a, 0x54, 0xe9, 0x37, 223 0x5a, 0x28, 0x56, 0x7a, 0x66, 0xff, 0xd8, 0x17, 0x87, 0xf7, 0x1e, 0x96, 0x77, 0xb4, 0xc6, 0xdb, 224 0xa7, 0x35, 0x33, 0xab, 0xb6, 0x48, 0x4b, 0xf1, 0x3d, 0xdb, 0xe0, 0x66, 0x96, 0x9b, 0x59, 0x6e, 225 0xd6, 0x73, 0x0b, 0xfb, 0x31, 0xbd, 0xf8, 0x13, 0x00, 0x00, 0xff, 0xff, 0x12, 0x75, 0xb6, 0xaf, 226 0x6a, 0x03, 0x00, 0x00, 227 }