]> git.bitcoin.ninja Git - rust-lightning/commitdiff
Use `ChannelManager` as `DNSResolverMessageHandler` by default
authorMatt Corallo <git@bluematt.me>
Sun, 14 Jul 2024 01:17:03 +0000 (01:17 +0000)
committerMatt Corallo <git@bluematt.me>
Tue, 12 Nov 2024 15:53:35 +0000 (15:53 +0000)
Now that `ChannelManager` supports using bLIP 32 to resolve BIP 353
Human Readable Names we should encourage users to use that feature
by making the "default" (in various type aliases) to use
`ChannelManager` as the `DNSResolverMessageHandler`.

lightning/src/ln/functional_test_utils.rs
lightning/src/onion_message/messenger.rs

index 9d6da1c8f2e1ff79bd2318529e4ef332bc8132ef..a6e07a8bc446db615542c0eaf82376151bcd1be9 100644 (file)
@@ -408,6 +408,7 @@ type TestChannelManager<'node_cfg, 'chan_mon_cfg> = ChannelManager<
        &'chan_mon_cfg test_utils::TestLogger,
 >;
 
+#[cfg(not(feature = "dnssec"))]
 type TestOnionMessenger<'chan_man, 'node_cfg, 'chan_mon_cfg> = OnionMessenger<
        DedicatedEntropy,
        &'node_cfg test_utils::TestKeysInterface,
@@ -416,7 +417,20 @@ type TestOnionMessenger<'chan_man, 'node_cfg, 'chan_mon_cfg> = OnionMessenger<
        &'node_cfg test_utils::TestMessageRouter<'chan_mon_cfg>,
        &'chan_man TestChannelManager<'node_cfg, 'chan_mon_cfg>,
        &'chan_man TestChannelManager<'node_cfg, 'chan_mon_cfg>,
-       IgnoringMessageHandler, // TODO: Swap for ChannelManager (when built with the "dnssec" feature)
+       IgnoringMessageHandler,
+       IgnoringMessageHandler,
+>;
+
+#[cfg(feature = "dnssec")]
+type TestOnionMessenger<'chan_man, 'node_cfg, 'chan_mon_cfg> = OnionMessenger<
+       DedicatedEntropy,
+       &'node_cfg test_utils::TestKeysInterface,
+       &'chan_mon_cfg test_utils::TestLogger,
+       &'chan_man TestChannelManager<'node_cfg, 'chan_mon_cfg>,
+       &'node_cfg test_utils::TestMessageRouter<'chan_mon_cfg>,
+       &'chan_man TestChannelManager<'node_cfg, 'chan_mon_cfg>,
+       &'chan_man TestChannelManager<'node_cfg, 'chan_mon_cfg>,
+       &'chan_man TestChannelManager<'node_cfg, 'chan_mon_cfg>,
        IgnoringMessageHandler,
 >;
 
@@ -3294,6 +3308,13 @@ pub fn create_network<'a, 'b: 'a, 'c: 'b>(node_count: usize, cfgs: &'b Vec<NodeC
 
        for i in 0..node_count {
                let dedicated_entropy = DedicatedEntropy(RandomBytes::new([i as u8; 32]));
+               #[cfg(feature = "dnssec")]
+               let onion_messenger = OnionMessenger::new(
+                       dedicated_entropy, cfgs[i].keys_manager, cfgs[i].logger, &chan_mgrs[i],
+                       &cfgs[i].message_router, &chan_mgrs[i], &chan_mgrs[i], &chan_mgrs[i],
+                       IgnoringMessageHandler {},
+               );
+               #[cfg(not(feature = "dnssec"))]
                let onion_messenger = OnionMessenger::new(
                        dedicated_entropy, cfgs[i].keys_manager, cfgs[i].logger, &chan_mgrs[i],
                        &cfgs[i].message_router, &chan_mgrs[i], &chan_mgrs[i], IgnoringMessageHandler {},
index 0331a1060b864591af9a4b2694fa67a28ba8ee32..001fa6a4962dc3b4d4405f08f7b7466ca38fb37f 100644 (file)
@@ -1836,6 +1836,7 @@ where
 /// [`SimpleArcChannelManager`]: crate::ln::channelmanager::SimpleArcChannelManager
 /// [`SimpleArcPeerManager`]: crate::ln::peer_handler::SimpleArcPeerManager
 #[cfg(not(c_bindings))]
+#[cfg(feature = "dnssec")]
 pub type SimpleArcOnionMessenger<M, T, F, L> = OnionMessenger<
        Arc<KeysManager>,
        Arc<KeysManager>,
@@ -1844,7 +1845,51 @@ pub type SimpleArcOnionMessenger<M, T, F, L> = OnionMessenger<
        Arc<DefaultMessageRouter<Arc<NetworkGraph<Arc<L>>>, Arc<L>, Arc<KeysManager>>>,
        Arc<SimpleArcChannelManager<M, T, F, L>>,
        Arc<SimpleArcChannelManager<M, T, F, L>>,
-       IgnoringMessageHandler, // TODO: Swap for ChannelManager (when built with the "dnssec" feature)
+       Arc<SimpleArcChannelManager<M, T, F, L>>,
+       IgnoringMessageHandler
+>;
+
+/// Useful for simplifying the parameters of [`SimpleArcChannelManager`] and
+/// [`SimpleArcPeerManager`]. See their docs for more details.
+///
+/// This is not exported to bindings users as type aliases aren't supported in most languages.
+///
+/// [`SimpleArcChannelManager`]: crate::ln::channelmanager::SimpleArcChannelManager
+/// [`SimpleArcPeerManager`]: crate::ln::peer_handler::SimpleArcPeerManager
+#[cfg(not(c_bindings))]
+#[cfg(not(feature = "dnssec"))]
+pub type SimpleArcOnionMessenger<M, T, F, L> = OnionMessenger<
+       Arc<KeysManager>,
+       Arc<KeysManager>,
+       Arc<L>,
+       Arc<SimpleArcChannelManager<M, T, F, L>>,
+       Arc<DefaultMessageRouter<Arc<NetworkGraph<Arc<L>>>, Arc<L>, Arc<KeysManager>>>,
+       Arc<SimpleArcChannelManager<M, T, F, L>>,
+       Arc<SimpleArcChannelManager<M, T, F, L>>,
+       IgnoringMessageHandler,
+       IgnoringMessageHandler
+>;
+
+/// Useful for simplifying the parameters of [`SimpleRefChannelManager`] and
+/// [`SimpleRefPeerManager`]. See their docs for more details.
+///
+/// This is not exported to bindings users as type aliases aren't supported in most languages.
+///
+/// [`SimpleRefChannelManager`]: crate::ln::channelmanager::SimpleRefChannelManager
+/// [`SimpleRefPeerManager`]: crate::ln::peer_handler::SimpleRefPeerManager
+#[cfg(not(c_bindings))]
+#[cfg(feature = "dnssec")]
+pub type SimpleRefOnionMessenger<
+       'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, M, T, F, L
+> = OnionMessenger<
+       &'a KeysManager,
+       &'a KeysManager,
+       &'b L,
+       &'j SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, M, T, F, L>,
+       &'i DefaultMessageRouter<&'g NetworkGraph<&'b L>, &'b L, &'a KeysManager>,
+       &'j SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, M, T, F, L>,
+       &'j SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, M, T, F, L>,
+       &'j SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, M, T, F, L>,
        IgnoringMessageHandler
 >;
 
@@ -1856,6 +1901,7 @@ pub type SimpleArcOnionMessenger<M, T, F, L> = OnionMessenger<
 /// [`SimpleRefChannelManager`]: crate::ln::channelmanager::SimpleRefChannelManager
 /// [`SimpleRefPeerManager`]: crate::ln::peer_handler::SimpleRefPeerManager
 #[cfg(not(c_bindings))]
+#[cfg(not(feature = "dnssec"))]
 pub type SimpleRefOnionMessenger<
        'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, M, T, F, L
 > = OnionMessenger<
@@ -1866,7 +1912,7 @@ pub type SimpleRefOnionMessenger<
        &'i DefaultMessageRouter<&'g NetworkGraph<&'b L>, &'b L, &'a KeysManager>,
        &'j SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, M, T, F, L>,
        &'j SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, M, T, F, L>,
-       IgnoringMessageHandler, // TODO: Swap for ChannelManager (when built with the "dnssec" feature)
+       IgnoringMessageHandler,
        IgnoringMessageHandler
 >;