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

Splicing Phase Two Tasks #5911

Open
23 of 71 tasks
ddustin opened this issue Jan 18, 2023 · 0 comments
Open
23 of 71 tasks

Splicing Phase Two Tasks #5911

ddustin opened this issue Jan 18, 2023 · 0 comments
Assignees

Comments

@ddustin
Copy link
Collaborator

ddustin commented Jan 18, 2023

The items that are needed to get splicing into phase two.

  • Add tests that confirm inflight is consumed correctly and balances in funding and to_us_msat are correct
  • Build universal address parser library (fixes splice: Script for complex splices #6980 (comment))
  • splice_script: TODO: add the inputs indices we should sign splice: Script for complex splices #6980 (comment)
  • 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? splice: Script for complex splices #6980 (comment)
  • needs json examples also! splice: Script for complex splices #6980 (comment)
  • 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): splice: Script for complex splices #6980 (comment)
  • Add stfu timer to disconnect peer if nothing happens long enough (may already happen by an existing timer?)
  • The signature order tie breaker must be switched to ACCEPTER see gist
    • solved by discussion; conclusion: it's fine as initiator
  • Add suggestions from PR that didn't make it in: splice: Reestablish when commit or sig sends fail #6840
  • splice: lightningd updates scid too early #6703
  • Spec todo: Splice draft (feature 62/63) lightning/bolts#863 (comment)
  • Only sign psbt inputs that have serial id set to our side
  • Add REQUIREMENT to splice spec to only sign inputs our side added
  • Investigate making sign_psbt sign a single input that is specified instead of "sign all"
  • Delay starting splice stfu mode entry until pending HTLCs are resolved as per STFU spec.
  • Make a cross-splice unit test for VLS
  • close() should print multiple txs and txids if we close during a splice. #6467
  • Support tx_abort
    • Test that triggers tx_abort
  • splice warning during reconnect should abandon inflight, unless sigs have been sent; in that case unilateral close.
  • Unreserve inputs if splice fails and we haven't sent tx_signatures
  • Restructure how balances are calculated (msats etc).
    • Should we move it into single method with it's own test? comment
  • Test processing invoices during the tricky stages of splice_lock'ing
  • Should anchor's be added to splicing commits?
    • resend_commitment doesn't add anchors either
  • Add splice-in
  • Add splice-out RPC
  • investigate building multi-splice RPC command that can do things like: move funds from 3 channels into one new one
  • 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)
  • Splice RBF
  • Disconnect support
  • Add accepter side plugin to validate splice (ie. feerate etc) and also react to and modify the splice.
  • Figure out if we want CLN to always sign first ref
  • Add splice instructions to the docs
  • Add more user CL errors ref
  • Internationalize CL errors ref
  • Switch commit_sigs to multiple consecutive messages Splice draft (feature 62/63) lightning/bolts#863 (comment)
  • Ignore stale commit_sigs and announce_sigs & remove splice_locked_ack Splice draft (feature 62/63) lightning/bolts#863 (comment)
  • 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.
  • lnprototext: Investigate what happens if we send commit_sig, the don't return sig, and they publish
  • Deny spends below the splice-out amount
  • Check inputs are spending confirmed UTXOs (see implementation in dual funding under new flag)
  • 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.
  • Opener should not allow any message besides warning/error being sent across.
  • Watchtowers
  • Coordinate on when shutdown is valid during splice & STFU
  • Move "eager send sigs" to config comment
  • spec: What should interactive-tx do if invalid signatures are received? Have discussion with spec ppl 👀. comment
  • spec: Reserve requirements during splice need spec work and implementation
  • 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
  • Turn on RBF sequence flag for splice inputs
  • spec: Do we want to require RBF sequence flag for external inputs? Answer that and put it in the spec.
  • Handle PSBT v2 locktimes https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki
  • Enforce consistent PSBT versions to user at RPC layer
  • Enforce consistent locktime in PSBT to user at RPC layer
  • open question: should we check that we're sending money to another channel we own? comment
  • either allow peer to change pubkey or disallow it in the spec
  • 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.
  • Add channel type to splice & splice_ack
  • Add channel type to splicing spec (see channel open params)
  • splice inflight -> mutual close. Do we want to close splice candidates at the same time or later?
    • Test splice inflight close closes all splice candidates
  • Test v1 channel auto-upgrade to v2 channel via splice
  • Mobile phone nodes may never be online long enough for the next block to appear. Investigate checking splice lock depth on startup.
  • Splicing Gossip #6481
  • Ensure commitment_signed sends splice tlv info on channel reestablish #6519
  • Update dual-funding to use interactivetx.h
@ddustin ddustin self-assigned this Jan 18, 2023
@ddustin ddustin changed the title Splicing Developer -> Experimental Tasks Splicing Phase Two Tasks Apr 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants