Documentation ¶
Overview ¶
Package peer is a generated protocol buffer package.
It is generated from these files:
peer/admin.proto peer/chaincode.proto peer/chaincodeevent.proto peer/configuration.proto peer/events.proto peer/peer.proto peer/proposal.proto peer/proposal_response.proto peer/transaction.proto
It has these top-level messages:
ServerStatus LogLevelRequest LogLevelResponse ChaincodeID ChaincodeInput ChaincodeSpec ChaincodeDeploymentSpec ChaincodeInvocationSpec ChaincodeProposalContext ChaincodeMessage PutStateInfo RangeQueryState RangeQueryStateNext RangeQueryStateClose RangeQueryStateKeyValue RangeQueryStateResponse ChaincodeEvent AnchorPeers AnchorPeer ChaincodeReg Interest Register Rejection Unregister Event PeerID PeerEndpoint BlockchainInfo SignedProposal Proposal ChaincodeHeaderExtension ChaincodeProposalPayload ChaincodeAction ProposalResponse Response ProposalResponsePayload Endorsement SignedTransaction InvalidTransaction Transaction TransactionAction ChaincodeActionPayload ChaincodeEndorsedAction
Index ¶
- Variables
- func RegisterAdminServer(s *grpc.Server, srv AdminServer)
- func RegisterChaincodeSupportServer(s *grpc.Server, srv ChaincodeSupportServer)
- func RegisterEndorserServer(s *grpc.Server, srv EndorserServer)
- func RegisterEventsServer(s *grpc.Server, srv EventsServer)
- type AdminClient
- type AdminServer
- type AnchorPeer
- type AnchorPeers
- type BlockchainInfo
- type ChaincodeAction
- type ChaincodeActionPayload
- type ChaincodeDeploymentSpec
- func (*ChaincodeDeploymentSpec) Descriptor() ([]byte, []int)
- func (m *ChaincodeDeploymentSpec) GetChaincodeSpec() *ChaincodeSpec
- func (m *ChaincodeDeploymentSpec) GetEffectiveDate() *google_protobuf1.Timestamp
- func (*ChaincodeDeploymentSpec) ProtoMessage()
- func (m *ChaincodeDeploymentSpec) Reset()
- func (m *ChaincodeDeploymentSpec) String() string
- type ChaincodeDeploymentSpec_ExecutionEnvironment
- type ChaincodeEndorsedAction
- type ChaincodeEvent
- type ChaincodeHeaderExtension
- type ChaincodeID
- type ChaincodeInput
- type ChaincodeInvocationSpec
- type ChaincodeMessage
- func (*ChaincodeMessage) Descriptor() ([]byte, []int)
- func (m *ChaincodeMessage) GetChaincodeEvent() *ChaincodeEvent
- func (m *ChaincodeMessage) GetProposalContext() *ChaincodeProposalContext
- func (m *ChaincodeMessage) GetTimestamp() *google_protobuf1.Timestamp
- func (*ChaincodeMessage) ProtoMessage()
- func (m *ChaincodeMessage) Reset()
- func (m *ChaincodeMessage) String() string
- type ChaincodeMessage_Type
- type ChaincodeProposalContext
- type ChaincodeProposalPayload
- type ChaincodeReg
- type ChaincodeSpec
- type ChaincodeSpec_Type
- type ChaincodeSupportClient
- type ChaincodeSupportServer
- type ChaincodeSupport_RegisterClient
- type ChaincodeSupport_RegisterServer
- type ConfidentialityLevel
- type Endorsement
- type EndorserClient
- type EndorserServer
- type Event
- func (*Event) Descriptor() ([]byte, []int)
- func (m *Event) GetBlock() *common.Block
- func (m *Event) GetChaincodeEvent() *ChaincodeEvent
- func (m *Event) GetEvent() isEvent_Event
- func (m *Event) GetRegister() *Register
- func (m *Event) GetRejection() *Rejection
- func (m *Event) GetUnregister() *Unregister
- func (*Event) ProtoMessage()
- func (m *Event) Reset()
- func (m *Event) String() string
- func (*Event) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, ...)
- type EventType
- type Event_Block
- type Event_ChaincodeEvent
- type Event_Register
- type Event_Rejection
- type Event_Unregister
- type EventsClient
- type EventsServer
- type Events_ChatClient
- type Events_ChatServer
- type ExecuteQueryState
- type Interest
- func (*Interest) Descriptor() ([]byte, []int)
- func (m *Interest) GetChaincodeRegInfo() *ChaincodeReg
- func (m *Interest) GetRegInfo() isInterest_RegInfo
- func (*Interest) ProtoMessage()
- func (m *Interest) Reset()
- func (m *Interest) String() string
- func (*Interest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, ...)
- type Interest_ChaincodeRegInfo
- type InvalidTransaction
- type InvalidTransaction_Cause
- type LogLevelRequest
- type LogLevelResponse
- type PeerEndpoint
- type PeerID
- type Proposal
- type ProposalResponse
- func (*ProposalResponse) Descriptor() ([]byte, []int)
- func (m *ProposalResponse) GetEndorsement() *Endorsement
- func (m *ProposalResponse) GetResponse() *Response
- func (m *ProposalResponse) GetTimestamp() *google_protobuf1.Timestamp
- func (*ProposalResponse) ProtoMessage()
- func (m *ProposalResponse) Reset()
- func (m *ProposalResponse) String() string
- type ProposalResponsePayload
- type PutStateInfo
- type QueryStateClose
- type QueryStateKeyValue
- type QueryStateNext
- type QueryStateResponse
- type RangeQueryState
- type Register
- type Rejection
- type Response
- type ServerStatus
- type ServerStatus_StatusCode
- type SignedProposal
- type SignedTransaction
- type Transaction
- type TransactionAction
- type Unregister
Constants ¶
This section is empty.
Variables ¶
var ChaincodeDeploymentSpec_ExecutionEnvironment_name = map[int32]string{
0: "DOCKER",
1: "SYSTEM",
}
var ChaincodeDeploymentSpec_ExecutionEnvironment_value = map[string]int32{
"DOCKER": 0,
"SYSTEM": 1,
}
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: "RANGE_QUERY_STATE",
15: "EXECUTE_QUERY_STATE",
16: "QUERY_STATE_NEXT",
17: "QUERY_STATE_CLOSE",
18: "KEEPALIVE",
}
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,
"RANGE_QUERY_STATE": 14,
"EXECUTE_QUERY_STATE": 15,
"QUERY_STATE_NEXT": 16,
"QUERY_STATE_CLOSE": 17,
"KEEPALIVE": 18,
}
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,
}
var ConfidentialityLevel_name = map[int32]string{
0: "PUBLIC",
1: "CONFIDENTIAL",
}
var ConfidentialityLevel_value = map[string]int32{
"PUBLIC": 0,
"CONFIDENTIAL": 1,
}
var EventType_name = map[int32]string{
0: "REGISTER",
1: "BLOCK",
2: "CHAINCODE",
3: "REJECTION",
}
var EventType_value = map[string]int32{
"REGISTER": 0,
"BLOCK": 1,
"CHAINCODE": 2,
"REJECTION": 3,
}
var InvalidTransaction_Cause_name = map[int32]string{
0: "TxIdAlreadyExists",
1: "RWConflictDuringCommit",
}
var InvalidTransaction_Cause_value = map[string]int32{
"TxIdAlreadyExists": 0,
"RWConflictDuringCommit": 1,
}
var ServerStatus_StatusCode_name = map[int32]string{
0: "UNDEFINED",
1: "STARTED",
2: "STOPPED",
3: "PAUSED",
4: "ERROR",
5: "UNKNOWN",
}
var ServerStatus_StatusCode_value = map[string]int32{
"UNDEFINED": 0,
"STARTED": 1,
"STOPPED": 2,
"PAUSED": 3,
"ERROR": 4,
"UNKNOWN": 5,
}
Functions ¶
func RegisterAdminServer ¶
func RegisterAdminServer(s *grpc.Server, srv AdminServer)
func RegisterChaincodeSupportServer ¶
func RegisterChaincodeSupportServer(s *grpc.Server, srv ChaincodeSupportServer)
func RegisterEndorserServer ¶
func RegisterEndorserServer(s *grpc.Server, srv EndorserServer)
func RegisterEventsServer ¶
func RegisterEventsServer(s *grpc.Server, srv EventsServer)
Types ¶
type AdminClient ¶
type AdminClient interface { // Return the serve status. GetStatus(ctx context.Context, in *google_protobuf.Empty, opts ...grpc.CallOption) (*ServerStatus, error) StartServer(ctx context.Context, in *google_protobuf.Empty, opts ...grpc.CallOption) (*ServerStatus, error) StopServer(ctx context.Context, in *google_protobuf.Empty, opts ...grpc.CallOption) (*ServerStatus, error) GetModuleLogLevel(ctx context.Context, in *LogLevelRequest, opts ...grpc.CallOption) (*LogLevelResponse, error) SetModuleLogLevel(ctx context.Context, in *LogLevelRequest, opts ...grpc.CallOption) (*LogLevelResponse, error) }
func NewAdminClient ¶
func NewAdminClient(cc *grpc.ClientConn) AdminClient
type AdminServer ¶
type AdminServer interface { // Return the serve status. GetStatus(context.Context, *google_protobuf.Empty) (*ServerStatus, error) StartServer(context.Context, *google_protobuf.Empty) (*ServerStatus, error) StopServer(context.Context, *google_protobuf.Empty) (*ServerStatus, error) GetModuleLogLevel(context.Context, *LogLevelRequest) (*LogLevelResponse, error) SetModuleLogLevel(context.Context, *LogLevelRequest) (*LogLevelResponse, error) }
type AnchorPeer ¶
type AnchorPeer struct { // DNS host name of the anchor peer Host string `protobuf:"bytes,1,opt,name=Host" json:"Host,omitempty"` // The port number Port int32 `protobuf:"varint,2,opt,name=Port" json:"Port,omitempty"` // SSL certificate to be used to maintain mutual TLS // connection with anchor peer Cert []byte `protobuf:"bytes,3,opt,name=Cert,proto3" json:"Cert,omitempty"` }
AnchorPeer message structure which provides information about anchor peer, it includes host name, port number and peer certificate.
func (*AnchorPeer) Descriptor ¶
func (*AnchorPeer) Descriptor() ([]byte, []int)
func (*AnchorPeer) ProtoMessage ¶
func (*AnchorPeer) ProtoMessage()
func (*AnchorPeer) Reset ¶
func (m *AnchorPeer) Reset()
func (*AnchorPeer) String ¶
func (m *AnchorPeer) String() string
type AnchorPeers ¶
type AnchorPeers struct {
AnchorPeers []*AnchorPeer `protobuf:"bytes,1,rep,name=anchorPeers" json:"anchorPeers,omitempty"`
}
AnchorPeers simply represents list of anchor peers which is used in ConfigurationItem
func (*AnchorPeers) Descriptor ¶
func (*AnchorPeers) Descriptor() ([]byte, []int)
func (*AnchorPeers) GetAnchorPeers ¶
func (m *AnchorPeers) GetAnchorPeers() []*AnchorPeer
func (*AnchorPeers) ProtoMessage ¶
func (*AnchorPeers) ProtoMessage()
func (*AnchorPeers) Reset ¶
func (m *AnchorPeers) Reset()
func (*AnchorPeers) String ¶
func (m *AnchorPeers) String() string
type BlockchainInfo ¶
type BlockchainInfo struct { Height uint64 `protobuf:"varint,1,opt,name=height" 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"` }
Contains information about the blockchain ledger such as height, current block hash, and previous block hash.
func (*BlockchainInfo) Descriptor ¶
func (*BlockchainInfo) Descriptor() ([]byte, []int)
func (*BlockchainInfo) ProtoMessage ¶
func (*BlockchainInfo) ProtoMessage()
func (*BlockchainInfo) Reset ¶
func (m *BlockchainInfo) Reset()
func (*BlockchainInfo) String ¶
func (m *BlockchainInfo) String() string
type ChaincodeAction ¶
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" json:"response,omitempty"` }
ChaincodeAction contains the actions the events generated by the execution of the chaincode.
func (*ChaincodeAction) Descriptor ¶
func (*ChaincodeAction) Descriptor() ([]byte, []int)
func (*ChaincodeAction) GetResponse ¶
func (m *ChaincodeAction) GetResponse() *Response
func (*ChaincodeAction) ProtoMessage ¶
func (*ChaincodeAction) ProtoMessage()
func (*ChaincodeAction) Reset ¶
func (m *ChaincodeAction) Reset()
func (*ChaincodeAction) String ¶
func (m *ChaincodeAction) String() string
type ChaincodeActionPayload ¶
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=chaincodeProposalPayload,proto3" json:"chaincodeProposalPayload,omitempty"` // The list of actions to apply to the ledger Action *ChaincodeEndorsedAction `protobuf:"bytes,2,opt,name=action" json:"action,omitempty"` }
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.
func (*ChaincodeActionPayload) Descriptor ¶
func (*ChaincodeActionPayload) Descriptor() ([]byte, []int)
func (*ChaincodeActionPayload) GetAction ¶
func (m *ChaincodeActionPayload) GetAction() *ChaincodeEndorsedAction
func (*ChaincodeActionPayload) ProtoMessage ¶
func (*ChaincodeActionPayload) ProtoMessage()
func (*ChaincodeActionPayload) Reset ¶
func (m *ChaincodeActionPayload) Reset()
func (*ChaincodeActionPayload) String ¶
func (m *ChaincodeActionPayload) String() string
type ChaincodeDeploymentSpec ¶
type ChaincodeDeploymentSpec struct { ChaincodeSpec *ChaincodeSpec `protobuf:"bytes,1,opt,name=chaincodeSpec" json:"chaincodeSpec,omitempty"` // Controls when the chaincode becomes executable. EffectiveDate *google_protobuf1.Timestamp `protobuf:"bytes,2,opt,name=effectiveDate" json:"effectiveDate,omitempty"` CodePackage []byte `protobuf:"bytes,3,opt,name=codePackage,proto3" json:"codePackage,omitempty"` ExecEnv ChaincodeDeploymentSpec_ExecutionEnvironment `protobuf:"varint,4,opt,name=execEnv,enum=protos.ChaincodeDeploymentSpec_ExecutionEnvironment" json:"execEnv,omitempty"` }
Specify the deployment of a chaincode. TODO: Define `codePackage`.
func (*ChaincodeDeploymentSpec) Descriptor ¶
func (*ChaincodeDeploymentSpec) Descriptor() ([]byte, []int)
func (*ChaincodeDeploymentSpec) GetChaincodeSpec ¶
func (m *ChaincodeDeploymentSpec) GetChaincodeSpec() *ChaincodeSpec
func (*ChaincodeDeploymentSpec) GetEffectiveDate ¶
func (m *ChaincodeDeploymentSpec) GetEffectiveDate() *google_protobuf1.Timestamp
func (*ChaincodeDeploymentSpec) ProtoMessage ¶
func (*ChaincodeDeploymentSpec) ProtoMessage()
func (*ChaincodeDeploymentSpec) Reset ¶
func (m *ChaincodeDeploymentSpec) Reset()
func (*ChaincodeDeploymentSpec) String ¶
func (m *ChaincodeDeploymentSpec) String() string
type ChaincodeDeploymentSpec_ExecutionEnvironment ¶
type ChaincodeDeploymentSpec_ExecutionEnvironment int32
const ( ChaincodeDeploymentSpec_DOCKER ChaincodeDeploymentSpec_ExecutionEnvironment = 0 ChaincodeDeploymentSpec_SYSTEM ChaincodeDeploymentSpec_ExecutionEnvironment = 1 )
func (ChaincodeDeploymentSpec_ExecutionEnvironment) EnumDescriptor ¶
func (ChaincodeDeploymentSpec_ExecutionEnvironment) EnumDescriptor() ([]byte, []int)
func (ChaincodeDeploymentSpec_ExecutionEnvironment) String ¶
func (x ChaincodeDeploymentSpec_ExecutionEnvironment) String() string
type ChaincodeEndorsedAction ¶
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=proposalResponsePayload,proto3" json:"proposalResponsePayload,omitempty"` // The endorsement of the proposal, basically the endorser's signature over // proposalResponsePayload Endorsements []*Endorsement `protobuf:"bytes,2,rep,name=endorsements" json:"endorsements,omitempty"` }
ChaincodeEndorsedAction carries information about the endorsement of a specific proposal
func (*ChaincodeEndorsedAction) Descriptor ¶
func (*ChaincodeEndorsedAction) Descriptor() ([]byte, []int)
func (*ChaincodeEndorsedAction) GetEndorsements ¶
func (m *ChaincodeEndorsedAction) GetEndorsements() []*Endorsement
func (*ChaincodeEndorsedAction) ProtoMessage ¶
func (*ChaincodeEndorsedAction) ProtoMessage()
func (*ChaincodeEndorsedAction) Reset ¶
func (m *ChaincodeEndorsedAction) Reset()
func (*ChaincodeEndorsedAction) String ¶
func (m *ChaincodeEndorsedAction) String() string
type ChaincodeEvent ¶
type ChaincodeEvent struct { ChaincodeID string `protobuf:"bytes,1,opt,name=chaincodeID" json:"chaincodeID,omitempty"` TxID string `protobuf:"bytes,2,opt,name=txID" json:"txID,omitempty"` EventName string `protobuf:"bytes,3,opt,name=eventName" json:"eventName,omitempty"` Payload []byte `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"` }
ChaincodeEvent is used for events and registrations that are specific to chaincode string type - "chaincode"
func (*ChaincodeEvent) Descriptor ¶
func (*ChaincodeEvent) Descriptor() ([]byte, []int)
func (*ChaincodeEvent) ProtoMessage ¶
func (*ChaincodeEvent) ProtoMessage()
func (*ChaincodeEvent) Reset ¶
func (m *ChaincodeEvent) Reset()
func (*ChaincodeEvent) String ¶
func (m *ChaincodeEvent) String() string
type ChaincodeHeaderExtension ¶
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=payloadVisibility,proto3" json:"payloadVisibility,omitempty"` // The ID of the chaincode to target. ChaincodeID *ChaincodeID `protobuf:"bytes,2,opt,name=chaincodeID" json:"chaincodeID,omitempty"` }
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.
func (*ChaincodeHeaderExtension) Descriptor ¶
func (*ChaincodeHeaderExtension) Descriptor() ([]byte, []int)
func (*ChaincodeHeaderExtension) GetChaincodeID ¶
func (m *ChaincodeHeaderExtension) GetChaincodeID() *ChaincodeID
func (*ChaincodeHeaderExtension) ProtoMessage ¶
func (*ChaincodeHeaderExtension) ProtoMessage()
func (*ChaincodeHeaderExtension) Reset ¶
func (m *ChaincodeHeaderExtension) Reset()
func (*ChaincodeHeaderExtension) String ¶
func (m *ChaincodeHeaderExtension) String() string
type ChaincodeID ¶
type ChaincodeID struct { // deploy transaction will use the path Path string `protobuf:"bytes,1,opt,name=path" 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" json:"name,omitempty"` }
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
func (*ChaincodeID) Descriptor ¶
func (*ChaincodeID) Descriptor() ([]byte, []int)
func (*ChaincodeID) ProtoMessage ¶
func (*ChaincodeID) ProtoMessage()
func (*ChaincodeID) Reset ¶
func (m *ChaincodeID) Reset()
func (*ChaincodeID) String ¶
func (m *ChaincodeID) String() string
type ChaincodeInput ¶
type ChaincodeInput struct {
Args [][]byte `protobuf:"bytes,1,rep,name=args,proto3" json:"args,omitempty"`
}
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.
func (*ChaincodeInput) Descriptor ¶
func (*ChaincodeInput) Descriptor() ([]byte, []int)
func (*ChaincodeInput) ProtoMessage ¶
func (*ChaincodeInput) ProtoMessage()
func (*ChaincodeInput) Reset ¶
func (m *ChaincodeInput) Reset()
func (*ChaincodeInput) String ¶
func (m *ChaincodeInput) String() string
func (*ChaincodeInput) UnmarshalJSON ¶
func (c *ChaincodeInput) UnmarshalJSON(b []byte) error
UnmarshalJSON converts the string-based REST/JSON input to the []byte-based current ChaincodeInput structure.
type ChaincodeInvocationSpec ¶
type ChaincodeInvocationSpec struct { ChaincodeSpec *ChaincodeSpec `protobuf:"bytes,1,opt,name=chaincodeSpec" json:"chaincodeSpec,omitempty"` // This field can contain a user-specified ID generation algorithm // If supplied, this will be used to generate a ID // If not supplied (left empty), sha256base64 will be used // The algorithm consists of two parts: // 1, a hash function // 2, a decoding used to decode user (string) input to bytes // Currently, SHA256 with BASE64 is supported (e.g. idGenerationAlg='sha256base64') IdGenerationAlg string `protobuf:"bytes,2,opt,name=idGenerationAlg" json:"idGenerationAlg,omitempty"` }
Carries the chaincode function and its arguments.
func (*ChaincodeInvocationSpec) Descriptor ¶
func (*ChaincodeInvocationSpec) Descriptor() ([]byte, []int)
func (*ChaincodeInvocationSpec) GetChaincodeSpec ¶
func (m *ChaincodeInvocationSpec) GetChaincodeSpec() *ChaincodeSpec
func (*ChaincodeInvocationSpec) ProtoMessage ¶
func (*ChaincodeInvocationSpec) ProtoMessage()
func (*ChaincodeInvocationSpec) Reset ¶
func (m *ChaincodeInvocationSpec) Reset()
func (*ChaincodeInvocationSpec) String ¶
func (m *ChaincodeInvocationSpec) String() string
type ChaincodeMessage ¶
type ChaincodeMessage struct { Type ChaincodeMessage_Type `protobuf:"varint,1,opt,name=type,enum=protos.ChaincodeMessage_Type" json:"type,omitempty"` Timestamp *google_protobuf1.Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"` Payload []byte `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"` Txid string `protobuf:"bytes,4,opt,name=txid" json:"txid,omitempty"` ProposalContext *ChaincodeProposalContext `protobuf:"bytes,5,opt,name=proposalContext" json:"proposalContext,omitempty"` // event emmited 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=chaincodeEvent" json:"chaincodeEvent,omitempty"` }
func (*ChaincodeMessage) Descriptor ¶
func (*ChaincodeMessage) Descriptor() ([]byte, []int)
func (*ChaincodeMessage) GetChaincodeEvent ¶
func (m *ChaincodeMessage) GetChaincodeEvent() *ChaincodeEvent
func (*ChaincodeMessage) GetProposalContext ¶
func (m *ChaincodeMessage) GetProposalContext() *ChaincodeProposalContext
func (*ChaincodeMessage) GetTimestamp ¶
func (m *ChaincodeMessage) GetTimestamp() *google_protobuf1.Timestamp
func (*ChaincodeMessage) ProtoMessage ¶
func (*ChaincodeMessage) ProtoMessage()
func (*ChaincodeMessage) Reset ¶
func (m *ChaincodeMessage) Reset()
func (*ChaincodeMessage) String ¶
func (m *ChaincodeMessage) String() string
type ChaincodeMessage_Type ¶
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_RANGE_QUERY_STATE ChaincodeMessage_Type = 14 ChaincodeMessage_EXECUTE_QUERY_STATE ChaincodeMessage_Type = 15 ChaincodeMessage_QUERY_STATE_NEXT ChaincodeMessage_Type = 16 ChaincodeMessage_QUERY_STATE_CLOSE ChaincodeMessage_Type = 17 ChaincodeMessage_KEEPALIVE ChaincodeMessage_Type = 18 )
func (ChaincodeMessage_Type) EnumDescriptor ¶
func (ChaincodeMessage_Type) EnumDescriptor() ([]byte, []int)
func (ChaincodeMessage_Type) String ¶
func (x ChaincodeMessage_Type) String() string
type ChaincodeProposalContext ¶
type ChaincodeProposalContext struct { // Creator corresponds to SignatureHeader.Creator Creator []byte `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` // Transient corresponds to ChaincodeProposalPayload.Transient // TODO: The transient field is supposed to carry application-specific // data. They might be realted to access-control, encryption and so on. // To simply access to this data, replacing bytes with a map // is the next step to be carried. Transient []byte `protobuf:"bytes,2,opt,name=transient,proto3" json:"transient,omitempty"` }
ChaincodeProposalContext contains proposal data that we send to the chaincode container shim and allow the chaincode to access through the shim interface.
func (*ChaincodeProposalContext) Descriptor ¶
func (*ChaincodeProposalContext) Descriptor() ([]byte, []int)
func (*ChaincodeProposalContext) ProtoMessage ¶
func (*ChaincodeProposalContext) ProtoMessage()
func (*ChaincodeProposalContext) Reset ¶
func (m *ChaincodeProposalContext) Reset()
func (*ChaincodeProposalContext) String ¶
func (m *ChaincodeProposalContext) String() string
type ChaincodeProposalPayload ¶
type ChaincodeProposalPayload struct { // Input contains the arguments for this invocation. If this invocation // deploys a new chaincode, ESCC/VSCC are part of this field. Input []byte `protobuf:"bytes,1,opt,name=Input,proto3" json:"Input,omitempty"` // Transient 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. Transient []byte `protobuf:"bytes,2,opt,name=Transient,proto3" json:"Transient,omitempty"` }
ChaincodeProposalPayload is the Proposal's payload message to be used when the Header's type is CHAINCODE. It contains the arguments for this invocation.
func (*ChaincodeProposalPayload) Descriptor ¶
func (*ChaincodeProposalPayload) Descriptor() ([]byte, []int)
func (*ChaincodeProposalPayload) ProtoMessage ¶
func (*ChaincodeProposalPayload) ProtoMessage()
func (*ChaincodeProposalPayload) Reset ¶
func (m *ChaincodeProposalPayload) Reset()
func (*ChaincodeProposalPayload) String ¶
func (m *ChaincodeProposalPayload) String() string
type ChaincodeReg ¶
type ChaincodeReg struct { ChaincodeID string `protobuf:"bytes,1,opt,name=chaincodeID" json:"chaincodeID,omitempty"` EventName string `protobuf:"bytes,2,opt,name=eventName" json:"eventName,omitempty"` }
ChaincodeReg is used for registering chaincode Interests when EventType is CHAINCODE
func (*ChaincodeReg) Descriptor ¶
func (*ChaincodeReg) Descriptor() ([]byte, []int)
func (*ChaincodeReg) ProtoMessage ¶
func (*ChaincodeReg) ProtoMessage()
func (*ChaincodeReg) Reset ¶
func (m *ChaincodeReg) Reset()
func (*ChaincodeReg) String ¶
func (m *ChaincodeReg) String() string
type ChaincodeSpec ¶
type ChaincodeSpec struct { Type ChaincodeSpec_Type `protobuf:"varint,1,opt,name=type,enum=protos.ChaincodeSpec_Type" json:"type,omitempty"` ChaincodeID *ChaincodeID `protobuf:"bytes,2,opt,name=chaincodeID" json:"chaincodeID,omitempty"` Input *ChaincodeInput `protobuf:"bytes,3,opt,name=input" json:"input,omitempty"` Timeout int32 `protobuf:"varint,4,opt,name=timeout" json:"timeout,omitempty"` }
Carries the chaincode specification. This is the actual metadata required for defining a chaincode.
func (*ChaincodeSpec) Descriptor ¶
func (*ChaincodeSpec) Descriptor() ([]byte, []int)
func (*ChaincodeSpec) GetChaincodeID ¶
func (m *ChaincodeSpec) GetChaincodeID() *ChaincodeID
func (*ChaincodeSpec) GetInput ¶
func (m *ChaincodeSpec) GetInput() *ChaincodeInput
func (*ChaincodeSpec) ProtoMessage ¶
func (*ChaincodeSpec) ProtoMessage()
func (*ChaincodeSpec) Reset ¶
func (m *ChaincodeSpec) Reset()
func (*ChaincodeSpec) String ¶
func (m *ChaincodeSpec) String() string
type ChaincodeSpec_Type ¶
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 )
func (ChaincodeSpec_Type) EnumDescriptor ¶
func (ChaincodeSpec_Type) EnumDescriptor() ([]byte, []int)
func (ChaincodeSpec_Type) String ¶
func (x ChaincodeSpec_Type) String() string
type ChaincodeSupportClient ¶
type ChaincodeSupportClient interface {
Register(ctx context.Context, opts ...grpc.CallOption) (ChaincodeSupport_RegisterClient, error)
}
func NewChaincodeSupportClient ¶
func NewChaincodeSupportClient(cc *grpc.ClientConn) ChaincodeSupportClient
type ChaincodeSupportServer ¶
type ChaincodeSupportServer interface {
Register(ChaincodeSupport_RegisterServer) error
}
type ChaincodeSupport_RegisterClient ¶
type ChaincodeSupport_RegisterClient interface { Send(*ChaincodeMessage) error Recv() (*ChaincodeMessage, error) grpc.ClientStream }
type ChaincodeSupport_RegisterServer ¶
type ChaincodeSupport_RegisterServer interface { Send(*ChaincodeMessage) error Recv() (*ChaincodeMessage, error) grpc.ServerStream }
type ConfidentialityLevel ¶
type ConfidentialityLevel int32
Confidentiality Levels
const ( ConfidentialityLevel_PUBLIC ConfidentialityLevel = 0 ConfidentialityLevel_CONFIDENTIAL ConfidentialityLevel = 1 )
func (ConfidentialityLevel) EnumDescriptor ¶
func (ConfidentialityLevel) EnumDescriptor() ([]byte, []int)
func (ConfidentialityLevel) String ¶
func (x ConfidentialityLevel) String() string
type Endorsement ¶
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"` }
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)
func (*Endorsement) Descriptor ¶
func (*Endorsement) Descriptor() ([]byte, []int)
func (*Endorsement) ProtoMessage ¶
func (*Endorsement) ProtoMessage()
func (*Endorsement) Reset ¶
func (m *Endorsement) Reset()
func (*Endorsement) String ¶
func (m *Endorsement) String() string
type EndorserClient ¶
type EndorserClient interface {
ProcessProposal(ctx context.Context, in *SignedProposal, opts ...grpc.CallOption) (*ProposalResponse, error)
}
func NewEndorserClient ¶
func NewEndorserClient(cc *grpc.ClientConn) EndorserClient
type EndorserServer ¶
type EndorserServer interface {
ProcessProposal(context.Context, *SignedProposal) (*ProposalResponse, error)
}
type Event ¶
type Event struct { // Types that are valid to be assigned to Event: // *Event_Register // *Event_Block // *Event_ChaincodeEvent // *Event_Rejection // *Event_Unregister Event isEvent_Event `protobuf_oneof:"Event"` }
Event is used by
- consumers (adapters) to send Register
- producer to advertise supported types and events
func (*Event) Descriptor ¶
func (*Event) GetChaincodeEvent ¶
func (m *Event) GetChaincodeEvent() *ChaincodeEvent
func (*Event) GetRegister ¶
func (*Event) GetRejection ¶
func (*Event) GetUnregister ¶
func (m *Event) GetUnregister() *Unregister
func (*Event) ProtoMessage ¶
func (*Event) ProtoMessage()
type Event_Block ¶
type Event_ChaincodeEvent ¶
type Event_ChaincodeEvent struct {
ChaincodeEvent *ChaincodeEvent `protobuf:"bytes,3,opt,name=chaincodeEvent,oneof"`
}
type Event_Register ¶
type Event_Register struct {
Register *Register `protobuf:"bytes,1,opt,name=register,oneof"`
}
type Event_Rejection ¶
type Event_Rejection struct {
Rejection *Rejection `protobuf:"bytes,4,opt,name=rejection,oneof"`
}
type Event_Unregister ¶
type Event_Unregister struct {
Unregister *Unregister `protobuf:"bytes,5,opt,name=unregister,oneof"`
}
type EventsClient ¶
type EventsClient interface { // event chatting using Event Chat(ctx context.Context, opts ...grpc.CallOption) (Events_ChatClient, error) }
func NewEventsClient ¶
func NewEventsClient(cc *grpc.ClientConn) EventsClient
type EventsServer ¶
type EventsServer interface { // event chatting using Event Chat(Events_ChatServer) error }
type Events_ChatClient ¶
type Events_ChatServer ¶
type ExecuteQueryState ¶
type ExecuteQueryState struct {
Query string `protobuf:"bytes,1,opt,name=query" json:"query,omitempty"`
}
func (*ExecuteQueryState) Descriptor ¶
func (*ExecuteQueryState) Descriptor() ([]byte, []int)
func (*ExecuteQueryState) ProtoMessage ¶
func (*ExecuteQueryState) ProtoMessage()
func (*ExecuteQueryState) Reset ¶
func (m *ExecuteQueryState) Reset()
func (*ExecuteQueryState) String ¶
func (m *ExecuteQueryState) String() string
type Interest ¶
type Interest struct { EventType EventType `protobuf:"varint,1,opt,name=eventType,enum=protos.EventType" json:"eventType,omitempty"` // Ideally we should just have the following oneof for different // Reg types and get rid of EventType. But this is an API change // Additional Reg types may add messages specific to their type // to the oneof. // // Types that are valid to be assigned to RegInfo: // *Interest_ChaincodeRegInfo RegInfo isInterest_RegInfo `protobuf_oneof:"RegInfo"` }
func (*Interest) Descriptor ¶
func (*Interest) GetChaincodeRegInfo ¶
func (m *Interest) GetChaincodeRegInfo() *ChaincodeReg
func (*Interest) GetRegInfo ¶
func (m *Interest) GetRegInfo() isInterest_RegInfo
func (*Interest) ProtoMessage ¶
func (*Interest) ProtoMessage()
type Interest_ChaincodeRegInfo ¶
type Interest_ChaincodeRegInfo struct {
ChaincodeRegInfo *ChaincodeReg `protobuf:"bytes,2,opt,name=chaincodeRegInfo,oneof"`
}
type InvalidTransaction ¶
type InvalidTransaction struct { Transaction *Transaction `protobuf:"bytes,1,opt,name=transaction" json:"transaction,omitempty"` Cause InvalidTransaction_Cause `protobuf:"varint,2,opt,name=cause,enum=protos.InvalidTransaction_Cause" json:"cause,omitempty"` }
This is used to wrap an invalid Transaction with the cause
func (*InvalidTransaction) Descriptor ¶
func (*InvalidTransaction) Descriptor() ([]byte, []int)
func (*InvalidTransaction) GetTransaction ¶
func (m *InvalidTransaction) GetTransaction() *Transaction
func (*InvalidTransaction) ProtoMessage ¶
func (*InvalidTransaction) ProtoMessage()
func (*InvalidTransaction) Reset ¶
func (m *InvalidTransaction) Reset()
func (*InvalidTransaction) String ¶
func (m *InvalidTransaction) String() string
type InvalidTransaction_Cause ¶
type InvalidTransaction_Cause int32
const ( InvalidTransaction_TxIdAlreadyExists InvalidTransaction_Cause = 0 InvalidTransaction_RWConflictDuringCommit InvalidTransaction_Cause = 1 )
func (InvalidTransaction_Cause) EnumDescriptor ¶
func (InvalidTransaction_Cause) EnumDescriptor() ([]byte, []int)
func (InvalidTransaction_Cause) String ¶
func (x InvalidTransaction_Cause) String() string
type LogLevelRequest ¶
type LogLevelRequest struct { LogModule string `protobuf:"bytes,1,opt,name=logModule" json:"logModule,omitempty"` LogLevel string `protobuf:"bytes,2,opt,name=logLevel" json:"logLevel,omitempty"` }
func (*LogLevelRequest) Descriptor ¶
func (*LogLevelRequest) Descriptor() ([]byte, []int)
func (*LogLevelRequest) ProtoMessage ¶
func (*LogLevelRequest) ProtoMessage()
func (*LogLevelRequest) Reset ¶
func (m *LogLevelRequest) Reset()
func (*LogLevelRequest) String ¶
func (m *LogLevelRequest) String() string
type LogLevelResponse ¶
type LogLevelResponse struct { LogModule string `protobuf:"bytes,1,opt,name=logModule" json:"logModule,omitempty"` LogLevel string `protobuf:"bytes,2,opt,name=logLevel" json:"logLevel,omitempty"` }
func (*LogLevelResponse) Descriptor ¶
func (*LogLevelResponse) Descriptor() ([]byte, []int)
func (*LogLevelResponse) ProtoMessage ¶
func (*LogLevelResponse) ProtoMessage()
func (*LogLevelResponse) Reset ¶
func (m *LogLevelResponse) Reset()
func (*LogLevelResponse) String ¶
func (m *LogLevelResponse) String() string
type PeerEndpoint ¶
type PeerEndpoint struct { ID *PeerID `protobuf:"bytes,1,opt,name=ID" json:"ID,omitempty"` Address string `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"` }
func (*PeerEndpoint) Descriptor ¶
func (*PeerEndpoint) Descriptor() ([]byte, []int)
func (*PeerEndpoint) GetID ¶
func (m *PeerEndpoint) GetID() *PeerID
func (*PeerEndpoint) ProtoMessage ¶
func (*PeerEndpoint) ProtoMessage()
func (*PeerEndpoint) Reset ¶
func (m *PeerEndpoint) Reset()
func (*PeerEndpoint) String ¶
func (m *PeerEndpoint) String() string
type PeerID ¶
type PeerID struct {
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
}
func (*PeerID) Descriptor ¶
func (*PeerID) ProtoMessage ¶
func (*PeerID) ProtoMessage()
type Proposal ¶
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"` }
A Proposal is sent to an endorser for endorsement. The proposal contains:
- 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.
- A payload whose type depends on the header's type field.
- 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:
- The header is a Header message whose extensions field is a ChaincodeHeaderExtension message.
- The payload is a ChaincodeProposalPayload message.
- The extension is a ChaincodeAction that might be used to ask the endorsers to endorse a specific ChaincodeAction, thus emulating the submitting peer model.
func (*Proposal) Descriptor ¶
func (*Proposal) ProtoMessage ¶
func (*Proposal) ProtoMessage()
type ProposalResponse ¶
type ProposalResponse struct { // Version indicates message protocol version Version int32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` // Timestamp is the time that the message // was created as defined by the sender Timestamp *google_protobuf1.Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"` // A response message indicating whether the // endorsement of the action was successful Response *Response `protobuf:"bytes,4,opt,name=response" 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" json:"endorsement,omitempty"` }
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.
func (*ProposalResponse) Descriptor ¶
func (*ProposalResponse) Descriptor() ([]byte, []int)
func (*ProposalResponse) GetEndorsement ¶
func (m *ProposalResponse) GetEndorsement() *Endorsement
func (*ProposalResponse) GetResponse ¶
func (m *ProposalResponse) GetResponse() *Response
func (*ProposalResponse) GetTimestamp ¶
func (m *ProposalResponse) GetTimestamp() *google_protobuf1.Timestamp
func (*ProposalResponse) ProtoMessage ¶
func (*ProposalResponse) ProtoMessage()
func (*ProposalResponse) Reset ¶
func (m *ProposalResponse) Reset()
func (*ProposalResponse) String ¶
func (m *ProposalResponse) String() string
type ProposalResponsePayload ¶
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=proposalHash,proto3" json:"proposalHash,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"` }
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.
func (*ProposalResponsePayload) Descriptor ¶
func (*ProposalResponsePayload) Descriptor() ([]byte, []int)
func (*ProposalResponsePayload) ProtoMessage ¶
func (*ProposalResponsePayload) ProtoMessage()
func (*ProposalResponsePayload) Reset ¶
func (m *ProposalResponsePayload) Reset()
func (*ProposalResponsePayload) String ¶
func (m *ProposalResponsePayload) String() string
type PutStateInfo ¶
type PutStateInfo struct { Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` }
func (*PutStateInfo) Descriptor ¶
func (*PutStateInfo) Descriptor() ([]byte, []int)
func (*PutStateInfo) ProtoMessage ¶
func (*PutStateInfo) ProtoMessage()
func (*PutStateInfo) Reset ¶
func (m *PutStateInfo) Reset()
func (*PutStateInfo) String ¶
func (m *PutStateInfo) String() string
type QueryStateClose ¶
type QueryStateClose struct {
ID string `protobuf:"bytes,1,opt,name=ID" json:"ID,omitempty"`
}
func (*QueryStateClose) Descriptor ¶
func (*QueryStateClose) Descriptor() ([]byte, []int)
func (*QueryStateClose) ProtoMessage ¶
func (*QueryStateClose) ProtoMessage()
func (*QueryStateClose) Reset ¶
func (m *QueryStateClose) Reset()
func (*QueryStateClose) String ¶
func (m *QueryStateClose) String() string
type QueryStateKeyValue ¶
type QueryStateKeyValue struct { Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` }
func (*QueryStateKeyValue) Descriptor ¶
func (*QueryStateKeyValue) Descriptor() ([]byte, []int)
func (*QueryStateKeyValue) ProtoMessage ¶
func (*QueryStateKeyValue) ProtoMessage()
func (*QueryStateKeyValue) Reset ¶
func (m *QueryStateKeyValue) Reset()
func (*QueryStateKeyValue) String ¶
func (m *QueryStateKeyValue) String() string
type QueryStateNext ¶
type QueryStateNext struct {
ID string `protobuf:"bytes,1,opt,name=ID" json:"ID,omitempty"`
}
func (*QueryStateNext) Descriptor ¶
func (*QueryStateNext) Descriptor() ([]byte, []int)
func (*QueryStateNext) ProtoMessage ¶
func (*QueryStateNext) ProtoMessage()
func (*QueryStateNext) Reset ¶
func (m *QueryStateNext) Reset()
func (*QueryStateNext) String ¶
func (m *QueryStateNext) String() string
type QueryStateResponse ¶
type QueryStateResponse struct { KeysAndValues []*QueryStateKeyValue `protobuf:"bytes,1,rep,name=keysAndValues" json:"keysAndValues,omitempty"` HasMore bool `protobuf:"varint,2,opt,name=hasMore" json:"hasMore,omitempty"` ID string `protobuf:"bytes,3,opt,name=ID" json:"ID,omitempty"` }
func (*QueryStateResponse) Descriptor ¶
func (*QueryStateResponse) Descriptor() ([]byte, []int)
func (*QueryStateResponse) GetKeysAndValues ¶
func (m *QueryStateResponse) GetKeysAndValues() []*QueryStateKeyValue
func (*QueryStateResponse) ProtoMessage ¶
func (*QueryStateResponse) ProtoMessage()
func (*QueryStateResponse) Reset ¶
func (m *QueryStateResponse) Reset()
func (*QueryStateResponse) String ¶
func (m *QueryStateResponse) String() string
type RangeQueryState ¶
type RangeQueryState struct { StartKey string `protobuf:"bytes,1,opt,name=startKey" json:"startKey,omitempty"` EndKey string `protobuf:"bytes,2,opt,name=endKey" json:"endKey,omitempty"` }
func (*RangeQueryState) Descriptor ¶
func (*RangeQueryState) Descriptor() ([]byte, []int)
func (*RangeQueryState) ProtoMessage ¶
func (*RangeQueryState) ProtoMessage()
func (*RangeQueryState) Reset ¶
func (m *RangeQueryState) Reset()
func (*RangeQueryState) String ¶
func (m *RangeQueryState) String() string
type Register ¶
type Register struct {
Events []*Interest `protobuf:"bytes,1,rep,name=events" json:"events,omitempty"`
}
---------- consumer events --------- Register is sent by consumers for registering events string type - "register"
func (*Register) Descriptor ¶
func (*Register) ProtoMessage ¶
func (*Register) ProtoMessage()
type Rejection ¶
type Rejection struct { Tx *Transaction `protobuf:"bytes,1,opt,name=tx" json:"tx,omitempty"` ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` }
Rejection is sent by consumers for erroneous transaction rejection events string type - "rejection"
func (*Rejection) Descriptor ¶
func (*Rejection) GetTx ¶
func (m *Rejection) GetTx() *Transaction
func (*Rejection) ProtoMessage ¶
func (*Rejection) ProtoMessage()
type Response ¶
type Response struct { // A status code that should follow the HTTP status codes. Status int32 `protobuf:"varint,1,opt,name=status" json:"status,omitempty"` // A message associated with the response code. Message string `protobuf:"bytes,2,opt,name=message" 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"` }
A response with a representation similar to an HTTP response that can be used within another message.
func (*Response) Descriptor ¶
func (*Response) ProtoMessage ¶
func (*Response) ProtoMessage()
type ServerStatus ¶
type ServerStatus struct {
Status ServerStatus_StatusCode `protobuf:"varint,1,opt,name=status,enum=protos.ServerStatus_StatusCode" json:"status,omitempty"`
}
func (*ServerStatus) Descriptor ¶
func (*ServerStatus) Descriptor() ([]byte, []int)
func (*ServerStatus) ProtoMessage ¶
func (*ServerStatus) ProtoMessage()
func (*ServerStatus) Reset ¶
func (m *ServerStatus) Reset()
func (*ServerStatus) String ¶
func (m *ServerStatus) String() string
type ServerStatus_StatusCode ¶
type ServerStatus_StatusCode int32
const ( ServerStatus_UNDEFINED ServerStatus_StatusCode = 0 ServerStatus_STARTED ServerStatus_StatusCode = 1 ServerStatus_STOPPED ServerStatus_StatusCode = 2 ServerStatus_PAUSED ServerStatus_StatusCode = 3 ServerStatus_ERROR ServerStatus_StatusCode = 4 ServerStatus_UNKNOWN ServerStatus_StatusCode = 5 )
func (ServerStatus_StatusCode) EnumDescriptor ¶
func (ServerStatus_StatusCode) EnumDescriptor() ([]byte, []int)
func (ServerStatus_StatusCode) String ¶
func (x ServerStatus_StatusCode) String() string
type SignedProposal ¶
type SignedProposal struct { // The bytes of Proposal ProposalBytes []byte `protobuf:"bytes,1,opt,name=proposalBytes,proto3" json:"proposalBytes,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"` }
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:
- 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.
- 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);
- Verification that the signature on proposalBytes is valid;
- Detect replay attacks;
func (*SignedProposal) Descriptor ¶
func (*SignedProposal) Descriptor() ([]byte, []int)
func (*SignedProposal) ProtoMessage ¶
func (*SignedProposal) ProtoMessage()
func (*SignedProposal) Reset ¶
func (m *SignedProposal) Reset()
func (*SignedProposal) String ¶
func (m *SignedProposal) String() string
type SignedTransaction ¶
type SignedTransaction struct { // The bytes of the Transaction. NDD TransactionBytes []byte `protobuf:"bytes,1,opt,name=transactionBytes,proto3" json:"transactionBytes,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"` }
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).
func (*SignedTransaction) Descriptor ¶
func (*SignedTransaction) Descriptor() ([]byte, []int)
func (*SignedTransaction) ProtoMessage ¶
func (*SignedTransaction) ProtoMessage()
func (*SignedTransaction) Reset ¶
func (m *SignedTransaction) Reset()
func (*SignedTransaction) String ¶
func (m *SignedTransaction) String() string
type Transaction ¶
type Transaction struct { // Version indicates message protocol version. Version int32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` // Timestamp is the local time that the // message was created by the sender Timestamp *google_protobuf1.Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"` // The payload is an array of TransactionAction. An array is necessary to // accommodate multiple actions per transaction Actions []*TransactionAction `protobuf:"bytes,3,rep,name=actions" json:"actions,omitempty"` }
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.
func (*Transaction) Descriptor ¶
func (*Transaction) Descriptor() ([]byte, []int)
func (*Transaction) GetActions ¶
func (m *Transaction) GetActions() []*TransactionAction
func (*Transaction) GetTimestamp ¶
func (m *Transaction) GetTimestamp() *google_protobuf1.Timestamp
func (*Transaction) ProtoMessage ¶
func (*Transaction) ProtoMessage()
func (*Transaction) Reset ¶
func (m *Transaction) Reset()
func (*Transaction) String ¶
func (m *Transaction) String() string
type TransactionAction ¶
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"` }
TransactionAction binds a proposal to its action. The type field in the header dictates the type of action to be applied to the ledger.
func (*TransactionAction) Descriptor ¶
func (*TransactionAction) Descriptor() ([]byte, []int)
func (*TransactionAction) ProtoMessage ¶
func (*TransactionAction) ProtoMessage()
func (*TransactionAction) Reset ¶
func (m *TransactionAction) Reset()
func (*TransactionAction) String ¶
func (m *TransactionAction) String() string
type Unregister ¶
type Unregister struct {
Events []*Interest `protobuf:"bytes,1,rep,name=events" json:"events,omitempty"`
}
---------- producer events ---------
func (*Unregister) Descriptor ¶
func (*Unregister) Descriptor() ([]byte, []int)
func (*Unregister) GetEvents ¶
func (m *Unregister) GetEvents() []*Interest
func (*Unregister) ProtoMessage ¶
func (*Unregister) ProtoMessage()
func (*Unregister) Reset ¶
func (m *Unregister) Reset()
func (*Unregister) String ¶
func (m *Unregister) String() string