Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewStateInfoMessageStore ¶
func NewStateInfoMessageStore() msgstore.MessageStore
NewStateInfoMessageStore returns a MessageStore
Types ¶
type Adapter ¶
type Adapter interface { // GetConf returns the configuration that this GossipChannel will posses GetConf() Config // Gossip gossips a message in the channel Gossip(message *proto.SignedGossipMessage) // DeMultiplex de-multiplexes an item to subscribers DeMultiplex(interface{}) // GetMembership returns the known alive peers and their information GetMembership() []discovery.NetworkMember // Send sends a message to a list of peers Send(msg *proto.SignedGossipMessage, peers ...*comm.RemotePeer) // ValidateStateInfoMessage returns an error if a message // hasn't been signed correctly, nil otherwise. ValidateStateInfoMessage(message *proto.SignedGossipMessage) error // OrgByPeerIdentity returns the organization ID of a given peer identity OrgByPeerIdentity(identity api.PeerIdentityType) api.OrgIdentityType // GetOrgOfPeer returns the organization ID of a given peer PKI-ID GetOrgOfPeer(pkiID common.PKIidType) api.OrgIdentityType // GetIdentityByPKIID returns an identity of a peer with a certain // pkiID, or nil if not found GetIdentityByPKIID(pkiID common.PKIidType) api.PeerIdentityType }
Adapter enables the gossipChannel to communicate with gossipServiceImpl.
type Config ¶
type Config struct { ID string PublishStateInfoInterval time.Duration MaxBlockCountToStore int PullPeerNum int PullInterval time.Duration RequestStateInfoInterval time.Duration Identity api.PeerIdentityType }
Config is a configuration item of the channel store
type GossipChannel ¶
type GossipChannel interface { // GetPeers returns a list of peers with metadata as published by them GetPeers() []discovery.NetworkMember // IsMemberInChan checks whether the given member is eligible to be in the channel IsMemberInChan(member discovery.NetworkMember) bool // UpdateStateInfo updates this channel's StateInfo message // that is periodically published UpdateStateInfo(msg *proto.SignedGossipMessage) // IsOrgInChannel returns whether the given organization is in the channel IsOrgInChannel(membersOrg api.OrgIdentityType) bool // EligibleForChannel returns whether the given member should get blocks // for this channel EligibleForChannel(member discovery.NetworkMember) bool // HandleMessage processes a message sent by a remote peer HandleMessage(proto.ReceivedMessage) // AddToMsgStore adds a given GossipMessage to the message store AddToMsgStore(msg *proto.SignedGossipMessage) // ConfigureChannel (re)configures the list of organizations // that are eligible to be in the channel ConfigureChannel(joinMsg api.JoinChannelMessage) // Stop stops the channel's activity Stop() }
GossipChannel defines an object that deals with all channel-related messages
func NewGossipChannel ¶
func NewGossipChannel(mcs api.MessageCryptoService, chainID common.ChainID, adapter Adapter, joinMsg api.JoinChannelMessage) GossipChannel
NewGossipChannel creates a new GossipChannel
Click to show internal directories.
Click to hide internal directories.