Struct lightning::blinded_path::BlindedPath
source · pub struct BlindedPath {
pub introduction_node: IntroductionNode,
pub blinding_point: PublicKey,
pub blinded_hops: Vec<BlindedHop>,
}
Expand description
Onion messages and payments can be sent and received to blinded paths, which serve to hide the identity of the recipient.
Fields§
§introduction_node: IntroductionNode
To send to a blinded path, the sender first finds a route to the unblinded
introduction_node
, which can unblind its encrypted_payload
to find out the onion
message or payment’s next hop and forward it along.
blinding_point: PublicKey
Used by the introduction node to decrypt its encrypted_payload
to forward the onion
message or payment.
blinded_hops: Vec<BlindedHop>
The hops composing the blinded path.
Implementations§
source§impl BlindedPath
impl BlindedPath
sourcepub fn one_hop_for_message<ES: EntropySource + ?Sized, T: Signing + Verification>(
recipient_node_id: PublicKey,
entropy_source: &ES,
secp_ctx: &Secp256k1<T>
) -> Result<Self, ()>
pub fn one_hop_for_message<ES: EntropySource + ?Sized, T: Signing + Verification>( recipient_node_id: PublicKey, entropy_source: &ES, secp_ctx: &Secp256k1<T> ) -> Result<Self, ()>
Create a one-hop blinded path for a message.
sourcepub fn new_for_message<ES: EntropySource + ?Sized, T: Signing + Verification>(
node_pks: &[PublicKey],
entropy_source: &ES,
secp_ctx: &Secp256k1<T>
) -> Result<Self, ()>
pub fn new_for_message<ES: EntropySource + ?Sized, T: Signing + Verification>( node_pks: &[PublicKey], entropy_source: &ES, secp_ctx: &Secp256k1<T> ) -> Result<Self, ()>
Create a blinded path for an onion message, to be forwarded along node_pks
. The last node
pubkey in node_pks
will be the destination node.
Errors if no hops are provided or if node_pk
(s) are invalid.
sourcepub fn one_hop_for_payment<ES: EntropySource + ?Sized, T: Signing + Verification>(
payee_node_id: PublicKey,
payee_tlvs: ReceiveTlvs,
min_final_cltv_expiry_delta: u16,
entropy_source: &ES,
secp_ctx: &Secp256k1<T>
) -> Result<(BlindedPayInfo, Self), ()>
pub fn one_hop_for_payment<ES: EntropySource + ?Sized, T: Signing + Verification>( payee_node_id: PublicKey, payee_tlvs: ReceiveTlvs, min_final_cltv_expiry_delta: u16, entropy_source: &ES, secp_ctx: &Secp256k1<T> ) -> Result<(BlindedPayInfo, Self), ()>
Create a one-hop blinded path for a payment.
sourcepub fn new_for_payment<ES: EntropySource + ?Sized, T: Signing + Verification>(
intermediate_nodes: &[ForwardNode],
payee_node_id: PublicKey,
payee_tlvs: ReceiveTlvs,
htlc_maximum_msat: u64,
min_final_cltv_expiry_delta: u16,
entropy_source: &ES,
secp_ctx: &Secp256k1<T>
) -> Result<(BlindedPayInfo, Self), ()>
pub fn new_for_payment<ES: EntropySource + ?Sized, T: Signing + Verification>( intermediate_nodes: &[ForwardNode], payee_node_id: PublicKey, payee_tlvs: ReceiveTlvs, htlc_maximum_msat: u64, min_final_cltv_expiry_delta: u16, entropy_source: &ES, secp_ctx: &Secp256k1<T> ) -> Result<(BlindedPayInfo, Self), ()>
Create a blinded path for a payment, to be forwarded along intermediate_nodes
.
Errors if:
- a provided node id is invalid
BlindedPayInfo
calculation results in an integer overflow- any unknown features are required in the provided
ForwardTlvs
sourcepub fn public_introduction_node_id<'a>(
&self,
network_graph: &'a ReadOnlyNetworkGraph<'_>
) -> Option<&'a NodeId>
pub fn public_introduction_node_id<'a>( &self, network_graph: &'a ReadOnlyNetworkGraph<'_> ) -> Option<&'a NodeId>
Returns the introduction NodeId
of the blinded path, if it is publicly reachable (i.e.,
it is found in the network graph).
Trait Implementations§
source§impl Clone for BlindedPath
impl Clone for BlindedPath
source§fn clone(&self) -> BlindedPath
fn clone(&self) -> BlindedPath
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for BlindedPath
impl Debug for BlindedPath
source§impl Hash for BlindedPath
impl Hash for BlindedPath
source§impl PartialEq for BlindedPath
impl PartialEq for BlindedPath
source§fn eq(&self, other: &BlindedPath) -> bool
fn eq(&self, other: &BlindedPath) -> bool
self
and other
values to be equal, and is used
by ==
.