Documentation ¶
Index ¶
Constants ¶
View Source
const DefAliveExpirationCheckInterval = DefAliveExpirationTimeout / 10
View Source
const DefAliveExpirationTimeout = 5 * DefAliveTimeInterval
View Source
const DefAliveTimeInterval = 5 * time.Second
View Source
const DefReconnectInterval = DefAliveExpirationTimeout
Variables ¶
This section is empty.
Functions ¶
func HasExternalEndpoint ¶
func HasExternalEndpoint(member NetworkMember) bool
func SetMaxConnAttempts ¶
func SetMaxConnAttempts(attempts int)
Types ¶
type CommService ¶
type CommService interface { Gossip(msg *protoext.SignedGossipMessage) SendToPeer(peer *NetworkMember, msg *protoext.SignedGossipMessage) Ping(peer *NetworkMember) bool Accept() <-chan protoext.ReceivedMessage PresumedDead() <-chan common.PKIidType CloseConn(peer *NetworkMember) Forward(msg protoext.ReceivedMessage) }
type CryptoService ¶
type CryptoService interface { ValidateAliveMsg(message *protoext.SignedGossipMessage) bool SignMessage(m *proto.GossipMessage, internalEndpoint string) *proto.Envelope }
type DisclosurePolicy ¶
type DisclosurePolicy func(remotePeer *NetworkMember) (Sieve, EnvelopeFilter)
type Discovery ¶
type Discovery interface { Lookup(PKIID common.PKIidType) *NetworkMember Self() NetworkMember UpdateMetadata([]byte) UpdateEndpoint(string) Stop() GetMembership() []NetworkMember InitiateSync(peerNum int) Connect(member NetworkMember, id identifier) }
func NewDiscoveryService ¶
func NewDiscoveryService(self NetworkMember, comm CommService, crypt CryptoService, disPol DisclosurePolicy, config DiscoveryConfig) Discovery
type DiscoveryConfig ¶
type EnvelopeFilter ¶
type EnvelopeFilter func(message *protoext.SignedGossipMessage) *proto.Envelope
type Members ¶
type Members []NetworkMember
func (Members) ByID ¶
func (members Members) ByID() map[string]NetworkMember
func (Members) Filter ¶
func (members Members) Filter(filter func(member NetworkMember) bool) Members
func (Members) Map ¶
func (members Members) Map(f func(member NetworkMember) NetworkMember) Members
type NetworkMember ¶
type NetworkMember struct { Endpoint string Metadata []byte PKIid common.PKIidType InternalEndpoint string Properties *proto.Properties *proto.Envelope }
func (NetworkMember) PreferredEndpoint ¶
func (n NetworkMember) PreferredEndpoint() string
func (NetworkMember) String ¶
func (n NetworkMember) String() string
type PeerIdentification ¶
type Sieve ¶
type Sieve func(message *protoext.SignedGossipMessage) bool
Click to show internal directories.
Click to hide internal directories.