...

Package discovery

import "github.com/hyperledger/fabric/discovery"
Overview
Index
Subdirectories

Overview ▾

func NewService

func NewService(config Config, sup Support) *service

NewService creates a new discovery service instance

type AccessControlSupport

AccessControlSupport checks if clients are eligible of being serviced

type AccessControlSupport interface {
    // Eligible returns whether the given peer is eligible for receiving
    // service from the discovery service for a given channel
    EligibleForService(channel string, data common2.SignedData) error
}

type Config

Config defines the configuration of the discovery service

type Config struct {
    TLS                          bool
    AuthCacheEnabled             bool
    AuthCacheMaxSize             int
    AuthCachePurgeRetentionRatio float64
}

func (Config) String

func (c Config) String() string

String returns a string representation of this Config

type ConfigSequenceSupport

ConfigSequenceSupport returns the config sequence of the given channel

type ConfigSequenceSupport interface {
    // ConfigSequence returns the configuration sequence of the a given channel
    ConfigSequence(channel string) uint64
}

type ConfigSupport

ConfigSupport provides access to channel configuration

type ConfigSupport interface {
    // Config returns the channel's configuration
    Config(channel string) (*discprotos.ConfigResult, error)
}

type EndorsementSupport

EndorsementSupport provides knowledge of endorsement policy selection for chaincodes

type EndorsementSupport interface {
    // PeersForEndorsement returns an EndorsementDescriptor for a given set of peers, channel, and chaincode
    PeersForEndorsement(channel common.ChainID, interest *discprotos.ChaincodeInterest) (*discprotos.EndorsementDescriptor, error)

    // PeersAuthorizedByCriteria returns the peers of the channel that are authorized by the given chaincode interest
    // That is - taking in account if the chaincode(s) in the interest are installed on the peers, and also
    // taking in account whether the peers are part of the collections of the chaincodes.
    // If a nil interest, or an empty interest is passed - no filtering is done.
    PeersAuthorizedByCriteria(chainID common.ChainID, interest *discprotos.ChaincodeInterest) (discovery.Members, error)
}

type GossipSupport

GossipSupport aggregates abilities that the gossip module provides to the discovery service, such as knowing information about peers

type GossipSupport interface {
    // ChannelExists returns whether a given channel exists or not
    ChannelExists(channel string) bool

    // PeersOfChannel returns the NetworkMembers considered alive
    // and also subscribed to the channel given
    PeersOfChannel(common.ChainID) discovery.Members

    // Peers returns the NetworkMembers considered alive
    Peers() discovery.Members

    // IdentityInfo returns identity information about peers
    IdentityInfo() api.PeerIdentitySet
}

type Support

Support defines an interface that allows the discovery service to obtain information that other peer components have

type Support interface {
    AccessControlSupport
    GossipSupport
    EndorsementSupport
    ConfigSupport
    ConfigSequenceSupport
}

Subdirectories

Name Synopsis
..
client
cmd
mocks Code generated by mockery v1.0.0.
endorsement
support
acl
chaincode
config
gossip
mocks Code generated by counterfeiter.