@Undisciplined thought he won't route payments if he only creates one public channel and the rest are private, see #737258:
As far as I can tell, I'm only receiving my own sats on that channel. Since I don't have any other public channels, I wasn't expecting any routing through it.
I wasn't sure if the second channel has to be public, so I researched a little but found conflicting information.
According to this source, the second channel does not have to be public. This is then apparently called "shadow liquidity" even though searching for that term didn't lead to any results afaict. So doesn't seem like an established term.
  • does not route payments (unless used in parallel with a public channel to the same node - aka shadow liquidity)
However, the docs from Lightning Labs say this:
Private Channel
A private channel is a channel that is not announced to the network. As such it cannot be used for routing, and when receiving payments through a private channel its information needs to be included in the invoice.
So what is correct now?
My initial guess was that it can be private but I haven't thought about this before at all. After consideration of pathfinding, I wonder how the sender can construct a path that includes a private channel?
So if you know the answer, a explanation how that works would be highly appreciated!
Oh, I think this part is pretty important which I overlooked:
unless used in parallel with a public channel to the same node
But this means that you can only use the private channel during "routing" for the same hop, not to connect two different peers. So not what I considered as routing.
The term "shadow liquidity" makes sense though. A private channel only increases the liquidity of the corresponding public channel.
reply
121 sats \ 1 reply \ @nym 23 Oct
Shadow liquidity means that if you have both a public and a private channel to the same node, payments could be routed through the private channel, but this is contingent on the public channel being used to discover the route. In this case, the routing node would know of a path to the public channel, but it might send liquidity through the private one, providing a sort of hidden liquidity for routing.
reply
To "take" an incoming payment with the public channel and forward it through the private one, require some manual scripting and building the route. It is not done automatically.
Otherwise any private node with a single public channel could route. And that's not happening right now. Maybe some LN guru is doing that with complex scripts but is not usual for any software.
reply
To receive into a private channel, you must use route hints, when you send an invoice to a payer. In the route hints will be your direct peer with who you have that private channel and he will have at least one public channel to be found.
If you do not include route hints nobody will be able to pay that invoice to a private node. They cannot see it.
If you still have a public channel, with whatever other node, when you create a LN invoice without route hints, it will be received straight to the public channel because that one is visible in the LN graph.
reply
10 sats \ 3 replies \ @ek OP 23 Oct
I am asking if you can route payments through private channels, not about receiving.
reply
The answer is clear: NO. Is not visible so nobody can route through it.
reply
10 sats \ 1 reply \ @ek OP 23 Oct
There is an exception though: if you have a public channel next to it, the private channel can be used for liquidity on that hop, see #737299
reply
Not for public routing (others payments through your node), but ONLY for you own payments.
Routing = take others payments and pass them through your channels and forward them to other nodes. A private channel cannot do that. Not automatically, maybe manually but is a pain in the ass to construct the payment route in CLI. Is the end of the edge.
Here is an example of including the route hints using a private channel
That way I can receive from any other node into a private channel. Forget about routing with private channels. Long time ago was a proposal by Anton (SBW dev) making private routing. But was abandoned.
reply