Open
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
OptionalField
and makeDataLossProtect
fields 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
Channel
intoInbound
/Outbound
channels #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
ChannelContext
via 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
ChannelContext
duplication. 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
splicing
compile feature flag #3294 ) - [Splicing] Support shared signature in InteractiveTransaction #3295
- ([Splicing] Update Splicing msgs #3293)
- ([Splicing] Preserve
funding_transaction
for 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
Metadata
Metadata
Type
Projects
Status
In Progress