func InitGossipService( peerIdentity []byte, metricsProvider metrics.Provider, endpoint string, s *grpc.Server, certs *gossipCommon.TLSCertificates, mcs api.MessageCryptoService, secAdv api.SecurityAdvisor, secureDialOpts api.PeerSecureDialOpts, bootPeers ...string, ) error
InitGossipService initialize gossip service
func InitGossipServiceCustomDeliveryFactory( peerIdentity []byte, metricsProvider metrics.Provider, endpoint string, s *grpc.Server, certs *gossipCommon.TLSCertificates, factory DeliveryServiceFactory, mcs api.MessageCryptoService, secAdv api.SecurityAdvisor, secureDialOpts api.PeerSecureDialOpts, bootPeers ...string, ) error
InitGossipServiceCustomDeliveryFactory initialize gossip service with customize delivery factory implementation, might be useful for testing and mocking purposes
ApplicationOrgs defines a mapping from ApplicationOrg by ID.
type ApplicationOrgs map[string]channelconfig.ApplicationOrg
Config enumerates the configuration methods required by gossip
type Config interface { // ChainID returns the chainID for this channel ChainID() string // OrdererOrgs returns the organizations of the orderers OrdererOrgs() []string // OrdererAddressesByOrgs returns a mapping from the organization ID // to the endpoints of the orderers OrdererAddressesByOrgs() map[string][]string // ApplicationOrgs returns a map of org ID to ApplicationOrgConfig ApplicationOrgs() ApplicationOrgs // Sequence should return the sequence number of the current configuration Sequence() uint64 // OrdererAddresses returns the list of valid orderer addresses to connect to to invoke Broadcast/Deliver OrdererAddresses() []string }
ConfigProcessor receives config updates
type ConfigProcessor interface { // ProcessConfig should be invoked whenever a channel's configuration is initialized or updated ProcessConfigUpdate(config Config) }
DataStoreSupport aggregates interfaces capable of handling either incoming blocks or private data
type DataStoreSupport struct { committer.Committer privdata2.TransientStore }
DeliveryServiceFactory factory to create and initialize delivery service instance
type DeliveryServiceFactory interface { // Returns an instance of delivery client Service(g GossipService, oac OrdererAddressConfig, msc api.MessageCryptoService) (deliverclient.DeliverService, error) }
GossipService encapsulates gossip and state capabilities into single interface
type GossipService interface { gossip.Gossip // DistributePrivateData distributes private data to the peers in the collections // according to policies induced by the PolicyStore and PolicyParser DistributePrivateData(chainID string, txID string, privateData *transientstore.TxPvtReadWriteSetWithConfigInfo, blkHt uint64) error // NewConfigEventer creates a ConfigProcessor which the channelconfig.BundleSource can ultimately route config updates to NewConfigEventer() ConfigProcessor // InitializeChannel allocates the state provider and should be invoked once per channel per execution InitializeChannel(chainID string, oac OrdererAddressConfig, support Support) // AddPayload appends message payload to for given chain AddPayload(chainID string, payload *gproto.Payload) error }
func GetGossipService() GossipService
GetGossipService returns an instance of gossip service
OrdererAddressConfig defines the addresses of the ordering service nodes
type OrdererAddressConfig struct { Addresses []string AddressesByOrg map[string][]string Organizations []string AddressOverrides map[string]*comm.OrdererEndpoint }
Support aggregates functionality of several interfaces required by gossip service
type Support struct { Validator txvalidator.Validator Committer committer.Committer Store privdata2.TransientStore Cs privdata.CollectionStore IdDeserializeFactory privdata2.IdentityDeserializerFactory CapabilityProvider privdata2.CapabilityProvider }