pub trait RoutingMessageHandler: MessageSendEventsProvider {
    fn handle_node_announcement(
        &self,
        msg: &NodeAnnouncement
    ) -> Result<bool, LightningError>; fn handle_channel_announcement(
        &self,
        msg: &ChannelAnnouncement
    ) -> Result<bool, LightningError>; fn handle_channel_update(
        &self,
        msg: &ChannelUpdate
    ) -> Result<bool, LightningError>; fn get_next_channel_announcements(
        &self,
        starting_point: u64,
        batch_amount: u8
    ) -> Vec<(ChannelAnnouncement, Option<ChannelUpdate>, Option<ChannelUpdate>)>Notable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
    A: Allocator
; fn get_next_node_announcements(
        &self,
        starting_point: Option<&PublicKey>,
        batch_amount: u8
    ) -> Vec<NodeAnnouncement>Notable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
    A: Allocator
; fn peer_connected(&self, their_node_id: &PublicKey, init: &Init); fn handle_reply_channel_range(
        &self,
        their_node_id: &PublicKey,
        msg: ReplyChannelRange
    ) -> Result<(), LightningError>; fn handle_reply_short_channel_ids_end(
        &self,
        their_node_id: &PublicKey,
        msg: ReplyShortChannelIdsEnd
    ) -> Result<(), LightningError>; fn handle_query_channel_range(
        &self,
        their_node_id: &PublicKey,
        msg: QueryChannelRange
    ) -> Result<(), LightningError>; fn handle_query_short_channel_ids(
        &self,
        their_node_id: &PublicKey,
        msg: QueryShortChannelIds
    ) -> Result<(), LightningError>; }
Expand description

A trait to describe an object which can receive routing messages.

Implementor DoS Warnings

For gossip_queries messages there are potential DoS vectors when handling inbound queries. Implementors using an on-disk network graph should be aware of repeated disk I/O for queries accessing different parts of the network graph.

Required Methods

Handle an incoming node_announcement message, returning true if it should be forwarded on, false or returning an Err otherwise.

Handle a channel_announcement message, returning true if it should be forwarded on, false or returning an Err otherwise.

Handle an incoming channel_update message, returning true if it should be forwarded on, false or returning an Err otherwise.

Gets a subset of the channel announcements and updates required to dump our routing table to a remote node, starting at the short_channel_id indicated by starting_point and including the batch_amount entries immediately higher in numerical value than starting_point.

Gets a subset of the node announcements required to dump our routing table to a remote node, starting at the node after the provided publickey and including batch_amount entries immediately higher (as defined by ::cmp) than starting_point. If None is provided for starting_point, we start at the first node.

Called when a connection is established with a peer. This can be used to perform routing table synchronization using a strategy defined by the implementor.

Handles the reply of a query we initiated to learn about channels for a given range of blocks. We can expect to receive one or more replies to a single query.

Handles the reply of a query we initiated asking for routing gossip messages for a list of channels. We should receive this message when a node has completed its best effort to send us the pertaining routing gossip messages.

Handles when a peer asks us to send a list of short_channel_ids for the requested range of blocks.

Handles when a peer asks us to send routing gossip messages for a list of short_channel_ids.

Implementors