Package org.ldk.structs
Class RoutingMessageHandler
- java.lang.Object
-
- org.ldk.structs.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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
RoutingMessageHandler.RoutingMessageHandlerInterface
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
finalize()
MessageSendEventsProvider
get_message_send_events_provider()
Gets the underlying MessageSendEventsProvider.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.NodeAnnouncement[]
get_next_node_announcements(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. 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.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.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.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.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.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.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.static RoutingMessageHandler
new_impl(RoutingMessageHandler.RoutingMessageHandlerInterface arg, MessageSendEventsProvider.MessageSendEventsProviderInterface MessageSendEventsProvider_impl)
void
sync_routing_table(byte[] their_node_id, Init init)
Called when a connection is established with a peer.
-
-
-
Method Detail
-
finalize
protected void finalize() throws Throwable
-
new_impl
public static RoutingMessageHandler new_impl(RoutingMessageHandler.RoutingMessageHandlerInterface arg, MessageSendEventsProvider.MessageSendEventsProviderInterface MessageSendEventsProvider_impl)
-
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.
-
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.
-
-