Description
In GossipVerifier::new
we currently force an argument of type signature of gossiper: Arc<P2PGossipSync<Arc<NetworkGraph<L>>, Self, L>>
, which is not only terrible in it's own right, but also enforces the type signature of everything touching P2PGossipSync
at compile time.
In an LDK Node context this would mean bubbling up generics all the way to Node
, which we cannot and won't do, and it heavily conflicts with the ability to choose the GossipSync
(P2P vs RGS) at runtime. As a consequence, this prohibits LDK Node (and I assume other users too) from using the GossipVerifier
.
We really need to drop this circular type dependency, which means in turn dropping the U: UtxoLookup
generic from P2PGossipSync
and everything touching it and replace it with dynamic dispatching it at runtime, i.e., Arc<dyn UtxoLookup + Send + Sync>
(although we possibly might get away with dropping the additional bounds here, we'll see).
Activity