...

Package service

import "github.com/hyperledger/fabric/gossip/service"
Overview
Index

Overview ▾

func InitGossipService

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

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

type ApplicationOrgs

ApplicationOrgs defines a mapping from ApplicationOrg by ID.

type ApplicationOrgs map[string]channelconfig.ApplicationOrg

type Config

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
}

type ConfigProcessor

ConfigProcessor receives config updates

type ConfigProcessor interface {
    // ProcessConfig should be invoked whenever a channel's configuration is initialized or updated
    ProcessConfigUpdate(config Config)
}

type DataStoreSupport

DataStoreSupport aggregates interfaces capable of handling either incoming blocks or private data

type DataStoreSupport struct {
    committer.Committer
    privdata2.TransientStore
}

type DeliveryServiceFactory

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)
}

type GossipService

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

func GetGossipService() GossipService

GetGossipService returns an instance of gossip service

type OrdererAddressConfig

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
}

type Support

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
}