Open shaavan opened 2 months ago
In general I prefer that we let the MessageRouter
decide the kind of blinded paths it wants the ChannelManager
to use. This is for a few reasons, (a) it is configurable without needing knobs - the MessageRouter
interface is already an interface so users can override it and do whatever they want with it, (b) it seems like the right separation of concerns - the ChannelManager
doesn't have a NetworkGraph
and is responsible for channel and payment operations, its not responsible for building blinded paths that's the MessageRouter
's job.
Instead ChannelManager
should give the MessageRouter
the context it has - the expiry time of the path, what its being used for, etc (maybe just as a single boolean for if the path is to be included in something that fits in a QR code, maybe more details, I dunno) and let the MessageRouter
return a fully-formed BlindedMessagePath
for us.
This issue is a brainstorming session on why and how we should incorporate an interface for adding dummy hops to blinded paths.
Why Dummy Hops?
Dummy hops function as a privacy enhancement for network nodes. Currently, the
MessageRouter
can only construct one-hop or two-hop blinded paths. Although this limit could be increased in the future, it is still constrained by the number of actual peers connected to the node.Introducing the ability to create blinded paths with dummy hops offers several key improvements: