fabric: github.com/hyperledger/fabric/gossip/gossip/channel Index | Files

package channel

import "github.com/hyperledger/fabric/gossip/gossip/channel"


Package Files



const DefMsgExpirationTimeout = election.DefLeaderAliveThreshold * 10

func GenerateMAC Uses

func GenerateMAC(pkiID common.PKIidType, channelID common.ChannelID) []byte

GenerateMAC returns a byte slice that is derived from the peer's PKI-ID and a channel name

type Adapter Uses

type Adapter interface {
    Sign(msg *proto.GossipMessage) (*protoext.SignedGossipMessage, error)

    // GetConf returns the configuration that this GossipChannel will posses
    GetConf() Config

    // Gossip gossips a message in the channel
    Gossip(message *protoext.SignedGossipMessage)

    // Forward sends a message to the next hops
    Forward(message protoext.ReceivedMessage)

    // DeMultiplex de-multiplexes an item to subscribers

    // GetMembership returns the known alive peers and their information
    GetMembership() []discovery.NetworkMember

    // Lookup returns a network member, or nil if not found
    Lookup(PKIID common.PKIidType) *discovery.NetworkMember

    // Send sends a message to a list of peers
    Send(msg *protoext.SignedGossipMessage, peers ...*comm.RemotePeer)

    // ValidateStateInfoMessage returns an error if a message
    // hasn't been signed correctly, nil otherwise.
    ValidateStateInfoMessage(message *protoext.SignedGossipMessage) error

    // 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 Uses

type Config struct {
    ID                          string
    PublishStateInfoInterval    time.Duration
    MaxBlockCountToStore        int
    PullPeerNum                 int
    PullInterval                time.Duration
    RequestStateInfoInterval    time.Duration
    BlockExpirationInterval     time.Duration
    StateInfoCacheSweepInterval time.Duration
    TimeForMembershipTracker    time.Duration
    DigestWaitTime              time.Duration
    RequestWaitTime             time.Duration
    ResponseWaitTime            time.Duration
    MsgExpirationTimeout        time.Duration

Config is a configuration item of the channel store

type GossipChannel Uses

type GossipChannel interface {
    // Self returns a StateInfoMessage about the peer
    Self() *protoext.SignedGossipMessage

    // GetPeers returns a list of peers with metadata as published by them
    GetPeers() []discovery.NetworkMember

    // PeerFilter receives a SubChannelSelectionCriteria and returns a RoutingFilter that selects
    // only peer identities that match the given criteria
    PeerFilter(api.SubChannelSelectionCriteria) filter.RoutingFilter

    // IsMemberInChan checks whether the given member is eligible to be in the channel
    IsMemberInChan(member discovery.NetworkMember) bool

    // UpdateLedgerHeight updates the ledger height the peer
    // publishes to other peers in the channel
    UpdateLedgerHeight(height uint64)

    // UpdateChaincodes updates the chaincodes the peer publishes
    // to other peers in the channel
    UpdateChaincodes(chaincode []*proto.Chaincode)

    // 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

    // AddToMsgStore adds a given GossipMessage to the message store
    AddToMsgStore(msg *protoext.SignedGossipMessage)

    // ConfigureChannel (re)configures the list of organizations
    // that are eligible to be in the channel
    ConfigureChannel(joinMsg api.JoinChannelMessage)

    // LeaveChannel makes the peer leave the channel

    // Stop stops the channel's activity

GossipChannel defines an object that deals with all channel-related messages

func NewGossipChannel Uses

func NewGossipChannel(pkiID common.PKIidType, org api.OrgIdentityType, mcs api.MessageCryptoService,
    channelID common.ChannelID, adapter Adapter, joinMsg api.JoinChannelMessage,
    metrics *metrics.MembershipMetrics, logger util.Logger) GossipChannel

NewGossipChannel creates a new GossipChannel

Package channel imports 22 packages (graph) and is imported by 13 packages. Updated 2020-07-11. Refresh now. Tools for package owners.