Global Feed Post Login
Replying to Avatar calle

Tales from the trenches: We implemented NUT-15 multinut MPP on the wallet side to test it and determine the success rate for multinut payments – turned out to be very low when used with LND. The reason for this is that LND does a pretty good job at cycling through multiple routes until one of them succeeds.

Our approach of sending multinut payments requires quite some low-level manipulation of the payment process in LND and was lacking the ability to cycle through multiple routes – we always attempted a payment with the best route the LND gave us but didn't try any others. Very bad probability.

What we're doing now is to get a list of all routes that LND suggests and try them one by one until one of them succeeds. Requires more statefulness and being "smart" about things (which is often a place you don't want to be in, rather let others be smart, i.e. LND). If anyone knows how to do this in a more LND-ninja way, please let us know.

To be continued.

https://github.com/cashubtc/nutshell/pull/692

Avatar
Jesse de Wit 11mo ago

What do you mean with 'cycle through multiple routes'? Sounds like you should do retries after a route fails. Do queryroutes again and sendtoroutev2 with the new route. It should give a new route.

LND always returns a single route, so what does "get a list of all routes that LND suggests and try them one by one until one of them succeeds" mean?

Reply to this note

Please Login to reply.

Discussion

No replies yet.