-
Notifications
You must be signed in to change notification settings - Fork 422
Closed
Labels
Description
Overview
Project tracking and implementation status of interactive transaction construction, dual-funding (V2 channel establishment), channel quiescence, and splicing.
Specifications:
- BOLT 2: Interactive transaction construction
- BOLT 2: Dual-funding (a.k.a V2 channel establishment)
- BOLT 2: Channel quiescence
- BOLT 2: Splicing (PR).
Wire messages
- Dual funding and interactive tx construction wire messages #1794
- Remove
OptionalFieldand makeDataLossProtectfields mandatory #2253 - Add Splicing messages #2542
Interactive Transaction Construction
- Interactive Transaction Construction #2419
- Interactive TX negotiation tracks shared outputs #2989
- Support RBF for interactively constructed transactions #3281 (depends on Implement accepting dual-funded channels without contributing #3137)
Dual-funding (V2 channel establishment)
0. Refactoring
- Split prefunded
ChannelintoInbound/Outboundchannels #2077 - Address outstanding 2077 feedback #2382
1. Accept dual-funded channels
- Implement accepting dual-funded channels without contributing #3137
- Follow-ups for PR 3137 #3416
- Introduce interactive signing state flags for funded states. #3637
- Interop tests and fixes
- Release in 0.2
2. Accept dual-funded channels with contributions
- Interop tests and fixes
- Release as alpha
3. Create & accept dual-funded channels
- Move funding signing after commitment #1571
- Implement V2 channel establishment #2302 (depends on Implement accepting dual-funded channels without contributing #3137)
- (Maybe) Allow initiator and acceptor to add other outputs
- Interop tests and fixes
- Release
4. RBF support
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/con | 🟢 | 🔴 | 🔴 | 🔴 |
| 3. Create V2 channels | 🟢 | 🟢 | 🔴 | 🟢 |
| 3. RBF support | 🟢 | 🟢 | 🟢 | 🟢 |
Channel quiescence
- Enable decoding HTLC onions when fully committed #2933
- WIP based on Enable decoding HTLC onions when fully committed #2933 (should be only one PR; cc: @wpaulino)
Splicing
Draft/Prototype PRs
- [Early Draft] Splicing prototype #3274: Very old baseline (v0.0.123); prototype (not for merging). Splicing use case works, from V2, from V1, also pay-splice-pay. Also prototype support for RBF.
- [Early Draft][Splicing] Partial, perform interactive transaction negotiation for new funding #3444: Obsolete solution, uses duplicate
ChannelContextvia cloning (not for merging). Currently splicing use case works up to exchange oftx_complete's, but notcommitment_signed. - [Early Draft][Splicing] Interactive tx negotiation, with a single ChannelContext #3715: Most recent version, no
ChannelContextduplication. Currently splicing use case works up to the firsttx_complete.
Use case phases status
| Use case phase | branch or draft PR | merged/pending PRs |
|---|---|---|
Initial handshake, splice_init, splice_ack |
main | #3407 #3647 |
Tx negotiation, tx_add_input, tx_add_output |
#3715 | #3443 |
Tx negotiation completion, final tx_complete's |
#3444 | - |
| Commitment exchange | #3274 | - |
tx_signatures exchange, funding tx broadcast |
#3274 | - |
splice_locked exchange, after confirmation |
#3274 | - |
0. Preparations
- ([Splicing] Add
splicingcompile feature flag #3294 ) - [Splicing] Support shared signature in InteractiveTransaction #3295
- ([Splicing] Update Splicing msgs #3293)
- ([Splicing] Preserve
funding_transactionfor the later lifecycle of the channel #3317) ([Splicing] Make funding transaction available in funded channel #3300 ) - ([Splicing] Signer extended with method to sign prev funding transaction input #3316) ([Splicing] Signing utility for splicing #3312 )
- ([Splicing] Clone for ChannelContext #3332)
- ([Splicing] Partial, handle splice_init & splice_ack messages #3407)
- (Dual funding extension: begin_interactive_funding_tx_construction #3443)
- [Splicing] Add reserve check to splicing #3641 (non-critical)
- [Draft] Combine FundedChannel and PendingV2Channel through traits #3702
- (more to come)
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
ariard, sethforprivacy and tvolk131
Metadata
Metadata
Labels
Type
Projects
Status
Done