Documentation ¶
Overview ¶
Package invoke provides the handlers for performing chaincode invocations.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CCFilter ¶
CCFilter returns true if the given chaincode should be included in the invocation chain when computing endorsers.
func NewChainedCCFilter ¶
NewChainedCCFilter returns a chaincode filter that chains multiple filters together. False is returned if at least one of the filters in the chain returns false.
type ClientContext ¶
type ClientContext struct { CryptoSuite core.CryptoSuite Discovery fab.DiscoveryService Selection fab.SelectionService Membership fab.ChannelMembership Transactor fab.Transactor EventService fab.EventService }
ClientContext contains context parameters for handler execution
type CommitTxHandler ¶
type CommitTxHandler struct {
// contains filtered or unexported fields
}
CommitTxHandler for committing transactions
func NewCommitHandler ¶
func NewCommitHandler(next ...Handler) *CommitTxHandler
NewCommitHandler returns a handler that commits transaction propsal responses
func (*CommitTxHandler) Handle ¶
func (c *CommitTxHandler) Handle(requestContext *RequestContext, clientContext *ClientContext)
Handle handles commit tx
type EndorsementHandler ¶
type EndorsementHandler struct {
// contains filtered or unexported fields
}
EndorsementHandler for handling endorse transactions
func NewEndorsementHandler ¶
func NewEndorsementHandler(next ...Handler) *EndorsementHandler
NewEndorsementHandler returns a handler that endorses a transaction proposal
func NewEndorsementHandlerWithOpts ¶
func NewEndorsementHandlerWithOpts(next Handler, provider TxnHeaderOptsProvider) *EndorsementHandler
NewEndorsementHandlerWithOpts returns a handler that endorses a transaction proposal
func (*EndorsementHandler) Handle ¶
func (e *EndorsementHandler) Handle(requestContext *RequestContext, clientContext *ClientContext)
Handle for endorsing transactions
type EndorsementValidationHandler ¶
type EndorsementValidationHandler struct {
// contains filtered or unexported fields
}
EndorsementValidationHandler for transaction proposal response filtering
func NewEndorsementValidationHandler ¶
func NewEndorsementValidationHandler(next ...Handler) *EndorsementValidationHandler
NewEndorsementValidationHandler returns a handler that validates an endorsement
func (*EndorsementValidationHandler) Handle ¶
func (f *EndorsementValidationHandler) Handle(requestContext *RequestContext, clientContext *ClientContext)
Handle for Filtering proposal response
type Handler ¶
type Handler interface {
Handle(context *RequestContext, clientContext *ClientContext)
}
Handler for chaining transaction executions
func NewExecuteHandler ¶
NewExecuteHandler returns execute handler with chain of SelectAndEndorseHandler, EndorsementValidationHandler, SignatureValidationHandler and CommitHandler
func NewQueryHandler ¶
NewQueryHandler returns query handler with chain of ProposalProcessorHandler, EndorsementHandler, EndorsementValidationHandler and SignatureValidationHandler
func NewSelectAndEndorseHandler ¶
NewSelectAndEndorseHandler returns a new SelectAndEndorseHandler
type Opts ¶
type Opts struct { Targets []fab.Peer // targets TargetFilter fab.TargetFilter TargetSorter fab.TargetSorter Retry retry.Opts BeforeRetry retry.BeforeRetryHandler Timeouts map[fab.TimeoutType]time.Duration ParentContext reqContext.Context //parent grpc context CCFilter CCFilter }
Opts allows the user to specify more advanced options
type ProposalProcessorHandler ¶
type ProposalProcessorHandler struct {
// contains filtered or unexported fields
}
ProposalProcessorHandler for selecting proposal processors
func NewProposalProcessorHandler ¶
func NewProposalProcessorHandler(next ...Handler) *ProposalProcessorHandler
NewProposalProcessorHandler returns a handler that selects proposal processors
func (*ProposalProcessorHandler) Handle ¶
func (h *ProposalProcessorHandler) Handle(requestContext *RequestContext, clientContext *ClientContext)
Handle selects proposal processors
type Request ¶
type Request struct { ChaincodeID string Fcn string Args [][]byte TransientMap map[string][]byte // InvocationChain contains meta-data that's used by some Selection Service implementations // to choose endorsers that satisfy the endorsement policies of all chaincodes involved // in an invocation chain (i.e. for CC-to-CC invocations). // Each chaincode may also be associated with a set of private data collection names // which are used by some Selection Services (e.g. Fabric Selection) to exclude endorsers // that do NOT have read access to the collections. // The invoked chaincode (specified by ChaincodeID) may optionally be added to the invocation // chain along with any collections, otherwise it may be omitted. InvocationChain []*fab.ChaincodeCall IsInit bool }
Request contains the parameters to execute transaction
type RequestContext ¶
type RequestContext struct { Request Request Opts Opts Response Response Error error RetryHandler retry.Handler Ctx reqContext.Context SelectionFilter selectopts.PeerFilter PeerSorter selectopts.PeerSorter }
RequestContext contains request, opts, response parameters for handler execution
type Response ¶
type Response struct { Proposal *fab.TransactionProposal Responses []*fab.TransactionProposalResponse TransactionID fab.TransactionID TxValidationCode pb.TxValidationCode ChaincodeStatus int32 Payload []byte }
Response contains response parameters for query and execute transaction
type SelectAndEndorseHandler ¶
type SelectAndEndorseHandler struct { *EndorsementHandler // contains filtered or unexported fields }
SelectAndEndorseHandler selects endorsers according to the policies of the chaincodes in the provided invocation chain and then sends the proposal to those endorsers. The read/write sets from the responses are then checked to see if additional chaincodes were invoked that were not in the original invocation chain. If so, a new endorser set is computed with the additional chaincodes and (if necessary) endorsements are requested from those additional endorsers.
func (*SelectAndEndorseHandler) Handle ¶
func (e *SelectAndEndorseHandler) Handle(requestContext *RequestContext, clientContext *ClientContext)
Handle selects endorsers and sends proposals to the endorsers
type SignatureValidationHandler ¶
type SignatureValidationHandler struct {
// contains filtered or unexported fields
}
SignatureValidationHandler for transaction proposal response filtering
func NewSignatureValidationHandler ¶
func NewSignatureValidationHandler(next ...Handler) *SignatureValidationHandler
NewSignatureValidationHandler returns a handler that validates an endorsement
func (*SignatureValidationHandler) Handle ¶
func (f *SignatureValidationHandler) Handle(requestContext *RequestContext, clientContext *ClientContext)
Handle for Filtering proposal response
type TxnHeaderOptsProvider ¶
type TxnHeaderOptsProvider func() []fab.TxnHeaderOpt
TxnHeaderOptsProvider provides transaction header options which allow the provider to specify a custom creator and/or nonce.