]> git.bitcoin.ninja Git - rust-lightning/commit
Use `NodeCounters` `NodeId`s as the blinded path intro references
authorMatt Corallo <git@bluematt.me>
Sat, 1 Jun 2024 22:45:04 +0000 (22:45 +0000)
committerMatt Corallo <git@bluematt.me>
Wed, 10 Jul 2024 01:31:48 +0000 (01:31 +0000)
commitc34980c47fc4b9976a477e613e73b893bad179ee
treef32a3169f37c7f640c46caee75267242e6916b85
parent04dad438d72bc75aac83cba21e9801238024bc80
Use `NodeCounters` `NodeId`s as the blinded path intro references

The router's `introduction_node_id_cache` is used to cache the
`NodeId`s of blinded path introduction points so that we don't
have to look them up every time we go around the main router loop.
When using it, if the introduction point isn't a public node we
then look up the introduction in our first-hops map.

In either case, we have to end up with a reference to a `NodeId`
that outlives our `dist` map.

Here we consolidate both the initial cache building and the
first-hops map lookup to one place, storing only a reference to a
`NodeId` either in the `NetworkGraph` or in the new `NodeCounters`
to get the required lifetime without needing to reference into the
first-hops map.

We then take this opportunity to avoid `clone`ing the first-hops
map entries as we now no longer reference into it.
lightning/src/blinded_path/mod.rs
lightning/src/routing/router.rs