Documentation

Overview

    Package channel enables access to a channel on a Fabric network. A channel client instance provides a handler to interact with peers on specified channel. Channel client can query chaincode, execute chaincode and register/unregister for chaincode events on specific channel. An application that requires interaction with multiple channels should create a separate instance of the channel client for each channel.

    Basic Flow:
    1) Prepare channel client context
    2) Create channel client
    3) Execute chaincode
    4) Query chaincode
    
    Example
    Output:
    
    abc
    

    Index

    Examples

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    type Client

    type Client struct {
    	// contains filtered or unexported fields
    }

      Client enables access to a channel on a Fabric network.

      A channel client instance provides a handler to interact with peers on specified channel. An application that requires interaction with multiple channels should create a separate instance of the channel client for each channel. Channel client supports non-admin functions only.

      func New

      func New(channelProvider context.ChannelProvider, opts ...ClientOption) (*Client, error)

        New returns a Client instance. Channel client can query chaincode, execute chaincode and register/unregister for chaincode events on specific channel.

        Example
        Output:
        
        channel client created
        

        func (*Client) Execute

        func (cc *Client) Execute(request Request, options ...RequestOption) (Response, error)

          Execute prepares and executes transaction using request and optional request options

          Parameters:
          request holds info about mandatory chaincode ID and function
          options holds optional request options
          
          Returns:
          the proposal responses from peer(s)
          
          Example
          Output:
          
          Chaincode transaction completed
          

          func (*Client) InvokeHandler

          func (cc *Client) InvokeHandler(handler invoke.Handler, request Request, options ...RequestOption) (Response, error)

            InvokeHandler invokes handler using request and optional request options provided

            Parameters:
            handler to be invoked
            request holds info about mandatory chaincode ID and function
            options holds optional request options
            
            Returns:
            the proposal responses from peer(s)
            
            Example
            Output:
            
            custom
            

            func (*Client) Query

            func (cc *Client) Query(request Request, options ...RequestOption) (Response, error)

              Query chaincode using request and optional request options

              Parameters:
              request holds info about mandatory chaincode ID and function
              options holds optional request options
              
              Returns:
              the proposal responses from peer(s)
              
              Example
              Output:
              
              chaincode query success
              

              func (*Client) RegisterChaincodeEvent

              func (cc *Client) RegisterChaincodeEvent(chainCodeID string, eventFilter string) (fab.Registration, <-chan *fab.CCEvent, error)

                RegisterChaincodeEvent registers for chaincode events. Unregister must be called when the registration is no longer needed.

                Parameters:
                chaincodeID is the chaincode ID for which events are to be received
                eventFilter is the chaincode event filter (regular expression) for which events are to be received
                
                Returns:
                the registration and a channel that is used to receive events. The channel is closed when Unregister is called.
                
                Example
                Output:
                
                chaincode event registered successfully
                

                func (*Client) UnregisterChaincodeEvent

                func (cc *Client) UnregisterChaincodeEvent(registration fab.Registration)

                  UnregisterChaincodeEvent removes the given registration and closes the event channel.

                  Parameters:
                  registration is the registration handle that was returned from RegisterChaincodeEvent method
                  

                  type ClientOption

                  type ClientOption func(*Client) error

                    ClientOption describes a functional parameter for the New constructor

                    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 query and execute an invocation transaction

                      type RequestOption

                      type RequestOption func(ctx context.Client, opts *requestOptions) error

                        RequestOption func for each Opts argument

                        func WithBeforeRetry

                        func WithBeforeRetry(beforeRetry retry.BeforeRetryHandler) RequestOption

                          WithBeforeRetry specifies a function to call before a retry attempt

                          func WithChaincodeFilter

                          func WithChaincodeFilter(ccFilter invoke.CCFilter) RequestOption

                            WithChaincodeFilter adds a chaincode filter for figuring out additional endorsers

                            func WithParentContext

                            func WithParentContext(parentContext reqContext.Context) RequestOption

                              WithParentContext encapsulates grpc parent context

                              func WithRetry

                              func WithRetry(retryOpt retry.Opts) RequestOption

                                WithRetry option to configure retries

                                func WithTargetEndpoints

                                func WithTargetEndpoints(keys ...string) RequestOption

                                  WithTargetEndpoints allows overriding of the target peers for the request. Targets are specified by name or URL, and the SDK will create the underlying peer objects.

                                  func WithTargetFilter

                                  func WithTargetFilter(filter fab.TargetFilter) RequestOption

                                    WithTargetFilter specifies a per-request target peer-filter

                                    func WithTargetSorter

                                    func WithTargetSorter(sorter fab.TargetSorter) RequestOption

                                      WithTargetSorter specifies a per-request target sorter

                                      func WithTargets

                                      func WithTargets(targets ...fab.Peer) RequestOption

                                        WithTargets allows overriding of the target peers for the request

                                        func WithTimeout

                                        func WithTimeout(timeoutType fab.TimeoutType, timeout time.Duration) RequestOption

                                          WithTimeout encapsulates key value pairs of timeout type, timeout duration to Options

                                          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 an invocation transaction

                                            Directories

                                            Path Synopsis
                                            Package invoke provides the handlers for performing chaincode invocations.
                                            Package invoke provides the handlers for performing chaincode invocations.