Documentation ¶
Overview ¶
Package p2pnode encapsulates the libp2p library
Index ¶
- Constants
- type Node
- func (n *Node) AddPeer(ctx context.Context, peerInfo peer.AddrInfo) error
- func (n *Node) CreateStream(ctx context.Context, peerID peer.ID) (libp2pnet.Stream, error)
- func (n *Node) GetIPPort() (string, string, error)
- func (n *Node) GetPeersForProtocol(pid protocol.ID) peer.IDSlice
- func (n *Node) Host() host.Host
- func (n *Node) IsConnected(peerID peer.ID) (bool, error)
- func (n *Node) ListPeers(topic string) []peer.ID
- func (n *Node) PeerManagerComponent() component.Component
- func (n *Node) Publish(ctx context.Context, topic channels.Topic, data []byte) error
- func (n *Node) RemovePeer(peerID peer.ID) error
- func (n *Node) RequestPeerUpdate()
- func (n *Node) Routing() routing.Routing
- func (n *Node) RoutingTable() *kbucket.RoutingTable
- func (n *Node) SetPubSub(ps *pubsub.PubSub)
- func (n *Node) SetRouting(r routing.Routing)
- func (n *Node) Stop() error
- func (n *Node) Subscribe(topic channels.Topic, codec flownet.Codec, peerFilter p2p.PeerFilter, ...) (*pubsub.Subscription, error)
- func (n *Node) UnSubscribe(topic channels.Topic) error
- func (n *Node) WithDefaultUnicastProtocol(defaultHandler libp2pnet.StreamHandler, preferred []unicast.ProtocolName) error
- func (n *Node) WithPeersProvider(peersProvider p2p.PeersProvider)
- type ProtocolPeerCache
Constants ¶
const ( // MaxConnectAttempt is the maximum number of attempts to be made to connect to a remote node for 1-1 direct communication MaxConnectAttempt = 3 // DefaultMaxPubSubMsgSize defines the maximum message size in publish and multicast modes DefaultMaxPubSubMsgSize = 5 * mb // 5 mb )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Node ¶
Node is a wrapper around the LibP2P host.
func NewNode ¶
func NewNode( logger zerolog.Logger, host host.Host, pCache *ProtocolPeerCache, uniMgr *unicast.Manager, peerManager *connection.PeerManager, ) *Node
NewNode creates a new libp2p node and sets its parameters.
func (*Node) AddPeer ¶
AddPeer adds a peer to this node by adding it to this node's peerstore and connecting to it
func (*Node) CreateStream ¶
CreateStream returns an existing stream connected to the peer if it exists, or creates a new stream with it.
func (*Node) IsConnected ¶
IsConnected returns true is address is a direct peer of this node else false
func (*Node) PeerManagerComponent ¶
PeerManagerComponent returns the component interface of the peer manager.
func (*Node) RemovePeer ¶
RemovePeer closes the connection with the peer.
func (*Node) RequestPeerUpdate ¶
func (n *Node) RequestPeerUpdate()
RequestPeerUpdate requests an update to the peer connections of this node using the peer manager.
func (*Node) RoutingTable ¶
func (n *Node) RoutingTable() *kbucket.RoutingTable
func (*Node) SetPubSub ¶
SetPubSub sets the node's pubsub implementation. SetPubSub may be called at most once.
func (*Node) SetRouting ¶
SetRouting sets the node's routing implementation. SetRouting may be called at most once.
func (*Node) Subscribe ¶
func (n *Node) Subscribe(topic channels.Topic, codec flownet.Codec, peerFilter p2p.PeerFilter, slashingViolationsConsumer slashing.ViolationsConsumer, validators ...validator.PubSubMessageValidator) (*pubsub.Subscription, error)
Subscribe subscribes the node to the given topic and returns the subscription Currently only one subscriber is allowed per topic. NOTE: A node will receive its own published messages.
func (*Node) UnSubscribe ¶
UnSubscribe cancels the subscriber and closes the topic.
func (*Node) WithDefaultUnicastProtocol ¶
func (n *Node) WithDefaultUnicastProtocol(defaultHandler libp2pnet.StreamHandler, preferred []unicast.ProtocolName) error
func (*Node) WithPeersProvider ¶
func (n *Node) WithPeersProvider(peersProvider p2p.PeersProvider)
WithPeersProvider sets the PeersProvider for the peer manager. If a peer manager factory is set, this method will set the peer manager's PeersProvider.
type ProtocolPeerCache ¶
ProtocolPeerCache store a mapping from protocol ID to peers who support that protocol
func NewProtocolPeerCache ¶
func (*ProtocolPeerCache) AddProtocols ¶
func (p *ProtocolPeerCache) AddProtocols(peerID peer.ID, protocols []protocol.ID)
func (*ProtocolPeerCache) GetPeers ¶
func (p *ProtocolPeerCache) GetPeers(pid protocol.ID) map[peer.ID]struct{}
func (*ProtocolPeerCache) RemovePeer ¶
func (p *ProtocolPeerCache) RemovePeer(peerID peer.ID)
func (*ProtocolPeerCache) RemoveProtocols ¶
func (p *ProtocolPeerCache) RemoveProtocols(peerID peer.ID, protocols []protocol.ID)