ElementsProject / ElementsProject/lightning
Splicing Phase Two Tasks
- Dominant language
- C
- Stars
- 3.1k
- Forks
- 1k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 13
Description
The items that are needed to get splicing into phase two.
- [x] Add tests that confirm inflight is consumed correctly and balances in `funding` and `to_us_msat` are correct
- [ ] Build universal address parser library (fixes https://github.com/ElementsProject/lightning/pull/6980#discussion_r1704659324)
- [x] splice_script: TODO: add the inputs indices we should sign https://github.com/ElementsProject/lightning/pull/6980#discussion_r1595987615
- [x] could add the fees as a check? maybe check the bkpr- commands that might be able to give you a total cost of fees for a channel? https://github.com/ElementsProject/lightning/pull/6980#discussion_r1596002076
- [x] needs json examples also! https://github.com/ElementsProject/lightning/pull/6980#discussion_r1550582183
- [ ] reviewer note: the functionality you're adding here is very similar to the functionality that the multifundchannel plugin does as well, except that multifundchannel allows for retries on failure (it removes the offending attempt): https://github.com/ElementsProject/lightning/pull/6980#discussion_r1546994925
- [ ] Add stfu timer to disconnect peer if nothing happens long enough (may already happen by an existing timer?)
- [x] The signature order tie breaker must be switched to ~ACCEPTER~ [see gist](https://gist.github.com/ddustin/be6297f1bf7e8bf792cdcafcf49bb924)
- [x] solved by [discussion](https://gist.github.com/ddustin/be6297f1bf7e8bf792cdcafcf49bb924); conclusion: it's fine as initiator
- [ ] Add suggestions from PR that didn't make it in: https://github.com/ElementsProject/lightning/pull/6840
- [x] https://github.com/ElementsProject/lightning/issues/6703
- [x] Spec todo: https://github.com/lightning/bolts/pull/863#issuecomment-1715842417
- [x] Only sign psbt inputs that have serial id set to our side
- [x] Add REQUIREMENT to splice spec to only sign inputs our side added
- [x] Investigate making sign_psbt sign a single input that is specified instead of "sign all"
- [x] Delay starting splice stfu mode entry until pending HTLCs are resolved as per STFU spec.
- [x] Make a cross-splice unit test for VLS
- [x] https://github.com/ElementsProject/lightning/issues/6467
- [x] Support `tx_abort`
- [x] Test that triggers `tx_abort`
- [x] splice warning during reconnect should abandon inflight, unless sigs have been sent; in that case unilateral close.
- [x] Unreserve inputs if splice fails and we haven't sent `tx_signatures`
- [x] Restructure how balances are calculated (msats etc).
- [x] Should we move it into single method with it's own test? [comment](https://github.com/ElementsProject/lightning/pull/5675#discussion_r1156136653)
- [x] Test processing invoices during the tricky stages of splice_lock'ing
- [x] Should anchor's be added to splicing commits?
- [x] resend_commitment doesn't add anchors either
- [x] Add splice-in
- [x] Add splice-out RPC
- [x] https://github.com/ElementsProject/lightning/pull/6777
- [x] investigate building multi-splice RPC command that can do things like: move funds from 3 channels into one new one
- [x] Low-Level Cross-Channel-Splicing: Update RPC to handle aggregating signatures in order (update `splice_finalized` and/or add one of: `splice_partially_signed`, `splice_collect_signatures`, or similar)
- [x] Splice RBF
- [x] Disconnect support
- [ ] Add accepter side plugin to validate splice (ie. feerate etc) and also react to and modify the splice.
- [x] Figure out if we want CLN to always sign first [ref](https://github.com/ElementsProject/lightning/pull/5675#discussion_r1013394491)
- [x] Add splice instructions to the docs
- [x] Add more user CL errors [ref](https://github.com/ElementsProject/lightning/pull/5675#discussion_r1013421368)
- [x] Internationalize CL errors [ref](https://github.com/ElementsProject/lightning/pull/5675#discussion_r1013430279)
- [x] Switch commit_sigs to multiple consecutive messages https://github.com/lightning/bolts/pull/863#issuecomment-1409207279
- [x] Ignore stale commit_sigs and announce_sigs & remove splice_locked_ack https://github.com/lightning/bolts/pull/863#issuecomment-1409207279
- [x] Add starting_htlc_id value & remove older values for channel after 6+ splice blocks
~~- [ ] Accelerate splice lock event if commit tx shows up on chain~~ Force closes now publish children closes for splices immediately.
- [x] lnprototext: Investigate what happens if we send commit_sig, the don't return sig, and they publish
- [x] Deny spends below the splice-out amount
- [ ] Check inputs are spending confirmed UTXOs (see implementation in dual funding under new flag)
- [x] In dual funding, the user gets a chance to modify the the tx even after their done, splicing sends tx_complete over and over without the user getting that chance. The splice_update RPC should return every time we send tx_complete, to give the user a chance to change it.
- [x] Opener should not allow any message besides warning/error being sent across.
- [x] Watchtowers
- [ ] Coordinate on when shutdown is valid during splice & STFU
- [x] Move "eager send sigs" to config [comment](https://github.com/ElementsProject/lightning/pull/5675#discussion_r1146875062)
- [x] spec: What should interactive-tx do if invalid signatures are received? Have discussion with spec ppl 👀. [comment](https://github.com/ElementsProject/lightning/pull/5675#discussion_r1154571336)
- [ ] spec: Reserve requirements during splice need spec work and implementation
- [ ] Balance check reserve requirement at splice time *if an output has been added for side*: https://github.com/lightning/bolts/pull/863/files#diff-ed04ca2c673fd6aabde69389511fa9ee60cb44d6b2ef6c88b549ffaa753d6afeR588
- [x] spec: Do we want to set serial_id in splice_init instead of sending over the input spending the funding tx with `tx_add_input`
- [x] Turn on RBF sequence flag for splice inputs
- [x] spec: Do we want to require RBF sequence flag for external inputs? Answer that and put it in the spec.
- [x] Handle PSBT v2 locktimes https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki
- [x] Enforce consistent PSBT versions to user at RPC layer
- [x] Enforce consistent locktime in PSBT to user at RPC layer
- [x] open question: should we check that we're sending money to another channel we own? [comment](https://github.com/ElementsProject/lightning/pull/5675#discussion_r1133278951)
- [x] either allow peer to change pubkey or disallow it in the spec
- [x] Splice ACK plugin should probably not be reserving funds when contribution. But those funds should probably be deprioritized in the on-chain wallet. Investigate how this might be done & that it should.
- [x] Add channel type to `splice` & `splice_ack`
- [x] Add channel type to splicing spec (see channel open params)
- [X] splice inflight -> mutual close. Do we want to close splice candidates at the same time or later?
- [x] Test splice inflight close closes all splice candidates
- [x] Test v1 channel auto-upgrade to v2 channel via splice
- [x] Mobile phone nodes may never be online long enough for the next block to appear. Investigate checking splice lock depth on startup.
- [x] https://github.com/ElementsProject/lightning/issues/6481
- [x] https://github.com/ElementsProject/lightning/issues/6519
- [ ] Update dual-funding to use interactivetx.h
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.