Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dual-funded channels and Splicing Project Tracking #1621

Open
6 tasks
dunxen opened this issue Jul 18, 2022 · 16 comments
Open
6 tasks

Dual-funded channels and Splicing Project Tracking #1621

dunxen opened this issue Jul 18, 2022 · 16 comments

Comments

@dunxen
Copy link
Contributor

dunxen commented Jul 18, 2022

Overview

Project tracking and implementation status of interactive transaction construction, dual-funding (V2 channel establishment), channel quiescence, and splicing.

Specifications:

Wire messages

Interactive Transaction Construction

Dual-funding (V2 channel establishment)

0. Refactoring

1. Accept dual-funded channels

2. Accept dual-funded channels with RBF

3. Create & accept dual-funded channels

Dual-funding implementation phase feature table

🟢 = supported
🔴 = unsupported

Impl. phase Accept V2 Create V2 RBF Contribute funds
1. Accept V2 channels 🟢 🔴 🔴 🔴
2. Accept V2 channels w/RBF 🟢 🔴 🟢 🔴
3. Create V2 channels 🟢 🟢 🟢 🟢

Channel quiescence

Splicing

Prototype

0. Preparations

1. Basic implementation

2. Additional features

  • Integrate quiescence
  • Splice on V1 channel
  • RBF support
  • Allow payment during pending splice
  • Support splice-out
  • Contributions from the acceptor
  • Handle interruptions and restarts
  • Work with other implementations
@npslaney
Copy link

Thinking through LSP onboarding strategies having the ability to start with a balanced channel is a really nice option. Definitely watching this one 👀

@ariard
Copy link

ariard commented Jul 19, 2022

I think one of the first step could be to make OnchainTxHandler its own interface that way the reorg/fee-bumping/rebroadcast logic could be shared between our ChannelMonitor and MultipartyConstruction stuff. See : #606 (comment) for ideas.

There is also an open question on how much code for doing that is already available in BDK.

@dunxen
Copy link
Contributor Author

dunxen commented Jul 19, 2022

I think one of the first step could be to make OnchainTxHandler its own interface that way the reorg/fee-bumping/rebroadcast logic could be shared between our ChannelMonitor and MultipartyConstruction stuff. See : #606 (comment) for ideas.

There is also an open question on how much code for doing that is already available in BDK.

Thanks for the comment link! I'll sync up with the BDK peeps on that open question too.

@ariard
Copy link

ariard commented Sep 17, 2022

Available to review advances in dual-funded implementation, even if it's early refactor for now. I've reviewed back recently the state of the BOLT proposal and it's sounds to be mature enough to solidify around a v0.1.

@dunxen
Copy link
Contributor Author

dunxen commented Sep 17, 2022

Available to review advances in dual-funded implementation, even if it's early refactor for now. I've reviewed back recently the state of the BOLT proposal and it's sounds to be mature enough to solidify around a v0.1.

Great, picking up refactor next! 🙏

@dunxen
Copy link
Contributor Author

dunxen commented Oct 10, 2022

Available to review advances in dual-funded implementation, even if it's early refactor for now. I've reviewed back recently the state of the BOLT proposal and it's sounds to be mature enough to solidify around a v0.1.

Great, picking up refactor next! pray

Next is now. So picking up from now :)

@ariard
Copy link

ariard commented Aug 1, 2023

Good to have this, don’t hesitate to “review pin” like glozow doing for package relay: bitcoin/bitcoin#27463 (comment) good practice imho to allocate review bandwidth accordingly.

@ariard
Copy link

ariard commented Sep 12, 2023

FYI, current version of nversion=3 and package RBF sounds working well for both dual-funding and splicing: bitcoin/bitcoin#25038 (comment)

There is one caveat where the first splicing transaction transitioning from nversion=2 to nversion=3 might have to be signed with a compelling feerate to be able to replace a pinning nversion=2 commitment state. If correct, I think it can be documented when nversion=3 is specified on the bolt-side.

All reserves kept as both package relay / nversion=3 / dual-funding and splicing are still work in progress and non-final.

@toneloc
Copy link

toneloc commented Jun 3, 2024

Hi, what is the status here?

Does LDK support dual-funding, and if it does, how? Thanks.

@TheBlueMatt
Copy link
Collaborator

Dual-funding and splicing in LDK is still a WIP, but hopefully coming soon.

@toneloc
Copy link

toneloc commented Jun 4, 2024

Ok, thanks. I will stay tuned here.

If there is another place I can follow along for early releases / and or testing please let me know.

@dunxen
Copy link
Contributor Author

dunxen commented Sep 1, 2024

@optout21 I'm struggling to also assign you to this issue. Not sure if you can also assign yourself? :)

@optout21
Copy link
Contributor

optout21 commented Sep 2, 2024

UPDATED Here's my take on splicing tasks:

Prototype

0. Preparations

1. Basic implementation

2. Additional features

  • Integrate quiescence
  • Splice on V1 channel
  • RBF support
  • Allow payment during pending splice
  • Support splice-out
  • Contributions from the acceptor
  • Handle interruptions and restarts
  • Work with other implementations

@optout21
Copy link
Contributor

optout21 commented Sep 6, 2024

Updated splice tasks (in earlier comment)

@dunxen
Copy link
Contributor Author

dunxen commented Sep 6, 2024

Updated splice tasks (in earlier comment)

Thanks! Updated!

@jkczyz
Copy link
Contributor

jkczyz commented Sep 6, 2024

I updated the quiescence section based on a discussion with @wpaulino.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

No branches or pull requests

7 participants