blixt-wallet
blixt-wallet copied to clipboard
Dunder: on-demand channel openings
Introduction
A technique to allow incoming payments when the wallet has no inbound channels is to have an intermediary node (LSP)
- Intercept the incoming HTLC
- Settle it itself instead of continuing forwarding it (by giving preimage to LSP)
- Open a channel to the wallet with push amount
To do this the wallet can create an invoice with a routehint that leads to a LSP node with a fake short channel id. Once the LSP sees an incoming HTLC with forwarding information specifying said fake short channel id, it can proceed with the protocol specified above.
To further improve this 0-conf channels can be utilized, although this isn't possible in lnd right now.
Implementation
To implement this in Blixt is a huge task, so this issue acts as an umbrella ticket.
- [x] Create PoC using
HtlcInterceptor
API - [x]
blixt-lsp
software- [x] Figure out how to talk to Blixt. WebSockets? How to authenticate? What to do if something goes wrong?
- [x] Create subsystem that talks with
blixt-lsp
- [x] Handle the invoice creation and Blixt and mark it as pending/settled
- [x] Set up an lnd node somewhere with said
blixt-lsp
software - [x] Get some inbound liquidity to the lnd node
https://github.com/hsjoberg/dunder-lsp
Implemented in 2ec7bb7
https://github.com/hsjoberg/dunder deprecated
https://github.com/hsjoberg/dunder-lsp
@lndhub-admin Thank you! Fixed