hsjoberg/blixt-wallet

Dunder: on-demand channel openings

Opened this issue · 4 comments

Introduction

A technique to allow incoming payments when the wallet has no inbound channels is to have an intermediary node (LSP)

  1. Intercept the incoming HTLC
  2. Settle it itself instead of continuing forwarding it (by giving preimage to LSP)
  3. 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.

  • Create PoC using HtlcInterceptor API
  • blixt-lsp software
    • Figure out how to talk to Blixt. WebSockets? How to authenticate? What to do if something goes wrong?
  • Create subsystem that talks with blixt-lsp
  • Handle the invoice creation and Blixt and mark it as pending/settled
  • Set up an lnd node somewhere with said blixt-lsp software
  • Get some inbound liquidity to the lnd node

Implemented in 2ec7bb7

@lndhub-admin Thank you! Fixed