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 interfaceRoutingMessageHandler.RoutingMessageHandlerInterface
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidfinalize()MessageSendEventsProviderget_message_send_events_provider()Gets the underlying MessageSendEventsProvider.Option_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZget_next_channel_announcement(long starting_point)Gets 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 announcements for a single channel.NodeAnnouncementget_next_node_announcement(byte[] starting_point)Gets a node announcement required to dump our routing table to a remote node, starting at the node *after* the provided pubkey and including up to one announcement immediately higher (as defined by::cmp) than starting_point. Result_boolLightningErrorZhandle_channel_announcement(ChannelAnnouncement msg)Handle a channel_announcement message, returning true if it should be forwarded on, false or returning an Err otherwise.Result_boolLightningErrorZhandle_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_boolLightningErrorZhandle_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_NoneLightningErrorZhandle_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_NoneLightningErrorZhandle_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_NoneLightningErrorZhandle_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_NoneLightningErrorZhandle_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 RoutingMessageHandlernew_impl(RoutingMessageHandler.RoutingMessageHandlerInterface arg, MessageSendEventsProvider.MessageSendEventsProviderInterface MessageSendEventsProvider_impl)voidpeer_connected(byte[] their_node_id, Init init)Called when a connection is established with a peer.InitFeaturesprovided_init_features(byte[] their_node_id)Gets the init feature flags which should be sent to the given peer.NodeFeaturesprovided_node_features()Gets the node feature flags which this handler itself supports.
-
-
-
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_announcement
public Option_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ get_next_channel_announcement(long starting_point)
Gets 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 announcements for a single channel.
-
get_next_node_announcement
@Nullable public NodeAnnouncement get_next_node_announcement(@Nullable byte[] starting_point)
Gets a node announcement required to dump our routing table to a remote node, starting at the node *after* the provided pubkey and including up to one announcement 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 Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None
-
peer_connected
public void peer_connected(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.
-
provided_node_features
public NodeFeatures provided_node_features()
Gets the node feature flags which this handler itself supports. All available handlers are queried similarly and their feature flags are OR'd together to form the [`NodeFeatures`] which are broadcasted in our [`NodeAnnouncement`] message.
-
provided_init_features
public InitFeatures provided_init_features(byte[] their_node_id)
Gets the init feature flags which should be sent to the given peer. All available handlers are queried similarly and their feature flags are OR'd together to form the [`InitFeatures`] which are sent in our [`Init`] message. Note that this method is called before [`Self::peer_connected`].
-
-