pub struct NodeIdMessageRouter<G: Deref<Target = NetworkGraph<L>>, L: Deref, ES: Deref>{ /* private fields */ }Expand description
This message router is similar to DefaultMessageRouter, but it always creates
full-length blinded paths, using the peer’s NodeId.
This message router can only route to a directly connected Destination.
§Privacy
Creating BlindedMessagePaths may affect privacy since, if a suitable path cannot be found,
it will create a one-hop path using the recipient as the introduction node if it is an announced
node. Otherwise, there is no way to find a path to the introduction node in order to send a
message, and thus an Err is returned.
Implementations§
Source§impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, ES: Deref> NodeIdMessageRouter<G, L, ES>
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, ES: Deref> NodeIdMessageRouter<G, L, ES>
Sourcepub fn new(network_graph: G, entropy_source: ES) -> Self
pub fn new(network_graph: G, entropy_source: ES) -> Self
Creates a NodeIdMessageRouter using the given NetworkGraph.
Trait Implementations§
Source§impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, ES: Deref> MessageRouter for NodeIdMessageRouter<G, L, ES>
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, ES: Deref> MessageRouter for NodeIdMessageRouter<G, L, ES>
Source§fn find_path(
&self,
sender: PublicKey,
peers: Vec<PublicKey>,
destination: Destination,
) -> Result<OnionMessagePath, ()>
fn find_path( &self, sender: PublicKey, peers: Vec<PublicKey>, destination: Destination, ) -> Result<OnionMessagePath, ()>
Returns a route for sending an
OnionMessage to the given Destination.Source§fn create_blinded_paths<T: Signing + Verification>(
&self,
recipient: PublicKey,
local_node_receive_key: ReceiveAuthKey,
context: MessageContext,
peers: Vec<MessageForwardNode>,
secp_ctx: &Secp256k1<T>,
) -> Result<Vec<BlindedMessagePath>, ()>
fn create_blinded_paths<T: Signing + Verification>( &self, recipient: PublicKey, local_node_receive_key: ReceiveAuthKey, context: MessageContext, peers: Vec<MessageForwardNode>, secp_ctx: &Secp256k1<T>, ) -> Result<Vec<BlindedMessagePath>, ()>
Creates
BlindedMessagePaths to the recipient node. The nodes in peers are assumed to
be direct peers with the recipient.Auto Trait Implementations§
impl<G, L, ES> Freeze for NodeIdMessageRouter<G, L, ES>
impl<G, L, ES> RefUnwindSafe for NodeIdMessageRouter<G, L, ES>where
G: RefUnwindSafe,
ES: RefUnwindSafe,
impl<G, L, ES> Send for NodeIdMessageRouter<G, L, ES>
impl<G, L, ES> Sync for NodeIdMessageRouter<G, L, ES>
impl<G, L, ES> Unpin for NodeIdMessageRouter<G, L, ES>
impl<G, L, ES> UnwindSafe for NodeIdMessageRouter<G, L, ES>where
G: UnwindSafe,
ES: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more