-
Notifications
You must be signed in to change notification settings - Fork 448
Open
Description
Splicing launched as beta in LDK 0.2 and LDK Node 0.7. Full splicing support involves completing the tasks below. This follows on the work detailed in #1621.
Core Splice Features
- Rework
ChannelManager::funding_transaction_signedRework ChannelManager::funding_transaction_signed #4257 Rework ChannelManager::funding_transaction_signed #4336 - Split splice initiation into two phases Split splice initiation into two phases #4290
- Mixed mode splicing (splice-in + splice-out) Mixed mode splicing #4261
- Opportunistic contributions (contribute to splice as acceptor) Contribute to splice as acceptor #4416
- Split
DiscardFundingfromSpliceFailedevent SplitDiscardFundingfromSpliceFailedevent #4388
RBF Support
- RBF splice funding transactions (initiating + accepting) RBF splice funding transactions #4427
- Unify splice and RBF APIs Unify splice and RBF APIs #4486
- Use +25 sat/kwu increment for our minimum RBF feerate Use +25 sat/kwu increment for our minimum RBF feerate #4494
- Cap number of RBFs (
commitment_signedbatch only allows for 20 anyway) ref - Filter out contributed inputs that also exist in previous negotiated-but-not-yet-locked splice attempts ref
Cancellation
- Allow cancellation of pending splice funding negotiations Allow cancellation of pending splice funding negotiations #4490
- Exit quiescence when
splice_initandtx_init_rbfare rejected Exit quiescence whensplice_initandtx_init_rbfare rejected #4495
Async Signing
- Support async signing of interactive-tx initial commitment signatures Support async signing of interactive-tx initial commitment signatures #4355
- Hold in-flight monitor updates until background event processing Hold in-flight monitor updates until background event processing #4377
- Release
tx_signaturesafter async monitor update completes Release tx_signatures after async monitor update completes #4472
On-chain Monitoring
- Closed channel balance API ref
- Produce
FundingInfo::Contributionvariants inChannelMonitorProduce FundingInfo::Contribution variants in ChannelMonitor #4498
Feature Flags
- Clarify splicing feature flag requirements Clarify splicing feature flag requirements #4274
- Switch
SplicePrototypefeature flag to the prod feature bit SwitchSplicePrototypefeature flag to the prod feature bit #4387
Bug Fixes & Correctness
- Use
SignedAmount::unsigned_absto avoid overflow UseSignedAmount::unsigned_absto avoid overflow #4383 - Account for missing balance in splice max commitment output tracking Account for missing balance in splice max commitment output tracking #4417
- Check that funder covers the fee spike buffer multiple after a splice Check that funder covers the fee spike buffer multiple after a splice #4433
- Avoid sending stfu for quiescent splice action while pending splice Avoid sending stfu for quiescent splice action while pending splice #4426
- SCID preference for outbound payments on spliced channel fix: SCID preference for outbound payments on spliced channel #4376
Quiescence
- Free holding cell in remaining quiescence-exit code paths Free holding cell in remaining quiescence-exit code paths #4415
- Merge initial and retry stfu send paths Merge initial and retry stfu send paths #4432
Testing & Fuzzing
- Extend full_stack fuzz test to cover splicing Extend full_stack fuzz test to cover splicing #4361
- Drive splices to completion in chanmon_consistency Drive splices to completion in chanmon_consistency #4411
- Re-enable signer op for one channel at a time in chanmon_consistency Re-enable signer op for one channel at a time in chanmon_consistency #4489
- Handle missing
SendTx*message events in chanmon_consistency fuzz: handle missing SendTx* message events in chanmon_consistency #4496
Infrastructure & Cleanup
- Rustfmt ChannelManager splice message handlers Rustfmt ChannelManager splice message handlers #4412
- Refactor
CoinSelection-related types towallet_utilsmodule RefactorCoinSelection-related types towallet_utilsmodule #4382 - Refactor
BroadcasterInterfaceto includeTransactionTypeRefactorBroadcasterInterfaceto includeTransactionType#4353
Remaining
- 0-conf — track past funding scopes until mature
- Integrate dual-funding Contribute funding inputs on accepting dual-funded channel #3735
- Sweep repo for
TODO(splicing)andTODO(dual_funding)
Reactions are currently unavailable