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
}