comm

package
v0.0.0-...-99016a9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 9, 2020 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateCertificatesOrPanic

func GenerateCertificatesOrPanic() tls.Certificate

func SetDialTimeout

func SetDialTimeout(timeout time.Duration)

SetDialTimeout sets the dial timeout

Types

type ChannelDeMultiplexer

type ChannelDeMultiplexer struct {
	// contains filtered or unexported fields
}

ChannelDeMultiplexer is a struct that can receive channel registrations (AddChannel) and publications (DeMultiplex) and it broadcasts the publications to registrations according to their predicate

func NewChannelDemultiplexer

func NewChannelDemultiplexer() *ChannelDeMultiplexer

NewChannelDemultiplexer creates a new ChannelDeMultiplexer

func (*ChannelDeMultiplexer) AddChannel

func (m *ChannelDeMultiplexer) AddChannel(predicate common.MessageAcceptor) chan interface{}

AddChannel registers a channel with a certain predicate

func (*ChannelDeMultiplexer) Close

func (m *ChannelDeMultiplexer) Close()

Close closes this channel, which makes all channels registered before to close as well.

func (*ChannelDeMultiplexer) DeMultiplex

func (m *ChannelDeMultiplexer) DeMultiplex(msg interface{})

DeMultiplex broadcasts the message to all channels that were returned by AddChannel calls and that hold the respected predicates.

type Comm

type Comm interface {

	// GetPKIid returns this instance's PKI id
	GetPKIid() common.PKIidType

	// Send sends a message to remote peers
	Send(msg *proto.SignedGossipMessage, peers ...*RemotePeer)

	// Probe probes a remote node and returns nil if its responsive,
	// and an error if it's not.
	Probe(peer *RemotePeer) error

	// Handshake authenticates a remote peer and returns
	// (its identity, nil) on success and (nil, error)
	Handshake(peer *RemotePeer) (api.PeerIdentityType, error)

	// Accept returns a dedicated read-only channel for messages sent by other nodes that match a certain predicate.
	// Each message from the channel can be used to send a reply back to the sender
	Accept(common.MessageAcceptor) <-chan proto.ReceivedMessage

	// PresumedDead returns a read-only channel for node endpoints that are suspected to be offline
	PresumedDead() <-chan common.PKIidType

	// CloseConn closes a connection to a certain endpoint
	CloseConn(peer *RemotePeer)

	// Stop stops the module
	Stop()
}

Comm is an object that enables to communicate with other peers that also embed a CommModule.

func NewCommInstance

func NewCommInstance(s *grpc.Server, cert *tls.Certificate, idStore identity.Mapper,
	peerIdentity api.PeerIdentityType, secureDialOpts api.PeerSecureDialOpts,
	dialOpts ...grpc.DialOption) (Comm, error)

NewCommInstance creates a new comm instance that binds itself to the given gRPC server

func NewCommInstanceWithServer

func NewCommInstanceWithServer(port int, idMapper identity.Mapper, peerIdentity api.PeerIdentityType,
	secureDialOpts api.PeerSecureDialOpts, dialOpts ...grpc.DialOption) (Comm, error)

NewCommInstanceWithServer creates a comm instance that creates an underlying gRPC server

type ReceivedMessageImpl

type ReceivedMessageImpl struct {
	*proto.SignedGossipMessage
	// contains filtered or unexported fields
}

ReceivedMessageImpl is an implementation of ReceivedMessage

func (*ReceivedMessageImpl) GetConnectionInfo

func (m *ReceivedMessageImpl) GetConnectionInfo() *proto.ConnectionInfo

GetConnectionInfo returns information about the remote peer that send the message

func (*ReceivedMessageImpl) GetGossipMessage

func (m *ReceivedMessageImpl) GetGossipMessage() *proto.SignedGossipMessage

GetGossipMessage returns the inner GossipMessage

func (*ReceivedMessageImpl) GetSourceEnvelope

func (m *ReceivedMessageImpl) GetSourceEnvelope() *proto.Envelope

GetSourceEnvelope Returns the Envelope the ReceivedMessage was constructed with

func (*ReceivedMessageImpl) Respond

func (m *ReceivedMessageImpl) Respond(msg *proto.GossipMessage)

Respond sends a msg to the source that sent the ReceivedMessageImpl

type RemotePeer

type RemotePeer struct {
	Endpoint string
	PKIID    common.PKIidType
}

RemotePeer defines a peer's endpoint and its PKIid

func (*RemotePeer) String

func (p *RemotePeer) String() string

String converts a RemotePeer to a string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL