Class RoutingMessageHandler


  • public class RoutingMessageHandler
    extends Object
    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.
    • Method Detail

      • get_message_send_events_provider

        public MessageSendEventsProvider get_message_send_events_provider()
        Gets the underlying MessageSendEventsProvider.
      • handle_node_announcement

        public Result_boolLightningErrorZ handle_node_announcement​(NodeAnnouncement msg)
        Handle an incoming node_announcement message, returning true if it should be forwarded on, false or returning an Err otherwise.
      • handle_channel_announcement

        public Result_boolLightningErrorZ handle_channel_announcement​(ChannelAnnouncement msg)
        Handle a channel_announcement message, returning true if it should be forwarded on, false or returning an Err otherwise.
      • handle_channel_update

        public Result_boolLightningErrorZ handle_channel_update​(ChannelUpdate msg)
        Handle an incoming channel_update message, returning true if it should be forwarded on, false or returning an Err otherwise.
      • handle_htlc_fail_channel_update

        public void handle_htlc_fail_channel_update​(HTLCFailChannelUpdate update)
        Handle some updates to the route graph that we learned due to an outbound failed payment.
      • get_next_channel_announcements

        public ThreeTuple<ChannelAnnouncement,​ChannelUpdate,​ChannelUpdate>[] get_next_channel_announcements​(long starting_point,
                                                                                                                        byte batch_amount)
        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.
      • get_next_node_announcements

        public NodeAnnouncement[] get_next_node_announcements​(@Nullable
                                                              byte[] starting_point,
                                                              byte batch_amount)
        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. Note that starting_point (or a relevant inner pointer) may be NULL or all-0s to represent None
      • sync_routing_table

        public void sync_routing_table​(byte[] their_node_id,
                                       Init init)
        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.
      • handle_reply_channel_range

        public Result_NoneLightningErrorZ handle_reply_channel_range​(byte[] their_node_id,
                                                                     ReplyChannelRange msg)
        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.
      • handle_reply_short_channel_ids_end

        public Result_NoneLightningErrorZ handle_reply_short_channel_ids_end​(byte[] their_node_id,
                                                                             ReplyShortChannelIdsEnd msg)
        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.
      • handle_query_channel_range

        public Result_NoneLightningErrorZ handle_query_channel_range​(byte[] their_node_id,
                                                                     QueryChannelRange msg)
        Handles when a peer asks us to send a list of short_channel_ids for the requested range of blocks.
      • handle_query_short_channel_ids

        public Result_NoneLightningErrorZ handle_query_short_channel_ids​(byte[] their_node_id,
                                                                         QueryShortChannelIds msg)
        Handles when a peer asks us to send routing gossip messages for a list of short_channel_ids.