-
Notifications
You must be signed in to change notification settings - Fork 491
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
Splice draft (feature 62/63) #863
Commits on Feb 13, 2024
-
Signed-off-by: Rusty Russell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1234344 - Browse repository at this point
Copy the full SHA 1234344View commit details -
BOLT #2: Set an initiator in quiescence.
This is especially useful for protocols such as splicing; for simplified commitment transactions, there is already an implied initiator at each point, so having the negotiation at splicing time would be redundant. Signed-off-by: Rusty Russell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b126536 - Browse repository at this point
Copy the full SHA b126536View commit details -
splicing: use the generic negotiation mechanism to splice in/out of a…
… channel. The initiator (in the case of simultaneity, the higher feepayer) pays for the input and output, and sets the feerate. We freeze the channel while this construction is going on: it should be quick. Signed-off-by: Rusty Russell <[email protected]> Header from folded patch 'fixup3.patch': fixup! splicing: use the generic negotiation mechanism to splice in/out of a channel. - Remove 1 per minute restriction: 25% growth limits us a lot (@niftynei) - Nomenclature: initiator, splice transaction, channel funding output. - Weaken reserve check to only cover iff they extract funds.
Configuration menu - View commit details
-
Copy full SHA for 80083b1 - Browse repository at this point
Copy the full SHA 80083b1View commit details -
Splicing: rewrite it to work on top of quiescence.
This is much simpler. Signed-off-by: Rusty Russell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4513bec - Browse repository at this point
Copy the full SHA 4513becView commit details -
commitment_signed: add tlvs for splice sigs.
Signed-off-by: Rusty Russell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 552306f - Browse repository at this point
Copy the full SHA 552306fView commit details -
splice_locked: terminate this splice once one reaches agreed depths.
Signed-off-by: Rusty Russell <[email protected]> Header from folded patch 'fixup2.patch': fixup! splice_locked: terminate this splice once one reaches agreed depths. Use 6; we need to start announcing then anyway, so keep it simple.
Configuration menu - View commit details
-
Copy full SHA for a798ca2 - Browse repository at this point
Copy the full SHA a798ca2View commit details -
gossip: add a bit to indicate "splicing".
This was Matt Corallo's idea; a simple flag means you should keep using the channel as it's being replaced. Signed-off-by: Rusty Russell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7bdf9f0 - Browse repository at this point
Copy the full SHA 7bdf9f0View commit details -
gossip: make sure to send new announcement_signatures post-splice.
Signed-off-by: Rusty Russell <[email protected]> Header from folded patch 'fixup.patch': fixup! gossip: make sure to send new announcement_signatures post-splice. It's called `splice_locked` and it's always sent 6 blocks.
Configuration menu - View commit details
-
Copy full SHA for dcefef6 - Browse repository at this point
Copy the full SHA dcefef6View commit details -
BOLT 2: note splice requirements in the checks for adding HTLCs and s…
…etting fees. Any changes must be valid for all possible commitment transactions. A minor change, but for implementations which quote the spec and check those quotes this will highlight the changes needed. Signed-off-by: Rusty Russell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5b2da1d - Browse repository at this point
Copy the full SHA 5b2da1dView commit details -
Configuration menu - View commit details
-
Copy full SHA for bb82cc1 - Browse repository at this point
Copy the full SHA bb82cc1View commit details -
BOLT 2: Adjust commitment_signed req for splicing.
`commitment_signed` is valid when a splice is candidate added.
Configuration menu - View commit details
-
Copy full SHA for 787d789 - Browse repository at this point
Copy the full SHA 787d789View commit details -
Bolt 2: Cleaning up splice related verbage
* the commitment tx includes the splice transaction commitment signatures (not the splice transaction’s own signatures). * “in progress” -> “awaiting confirmation” to add clarity. * No longer need a 10 block delay for splice closes since all close events are delayed 12 blocks.
Configuration menu - View commit details
-
Copy full SHA for 1ea3aae - Browse repository at this point
Copy the full SHA 1ea3aaeView commit details -
Bolt 2: splicing and shutdown interactions
Adding @niftynei’s shutdown updates. Her notes: `shutdown` MAY be sent while the splice is pending confirmation. New splice negotiations MAY BE initiated while the channel is in `shutdown`. The `shutdown` phase MUST NOT be considered concluded until all htlcs are resolved and the channel has exited the pending splice phase (`splice_locked` has been exchanged).
Configuration menu - View commit details
-
Copy full SHA for ea0beed - Browse repository at this point
Copy the full SHA ea0beedView commit details -
Bolt 2: closing_signed must wait for splices
The closing process, begining with `closing_signed` must not begin until one of the candidate splices is confirmed.
Configuration menu - View commit details
-
Copy full SHA for f1df2ef - Browse repository at this point
Copy the full SHA f1df2efView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7615130 - Browse repository at this point
Copy the full SHA 7615130View commit details -
Configuration menu - View commit details
-
Copy full SHA for 396c638 - Browse repository at this point
Copy the full SHA 396c638View commit details -
Configuration menu - View commit details
-
Copy full SHA for 298f605 - Browse repository at this point
Copy the full SHA 298f605View commit details -
splicing: Switch to multiple
commitment_signed
messagesinstead of a (potentially large) commitment_tlv
Configuration menu - View commit details
-
Copy full SHA for 28c2717 - Browse repository at this point
Copy the full SHA 28c2717View commit details -
splicing: Clarify only a single
revoke_and_ack
is sentfor a bundle of `commitment_signed` messages.
Configuration menu - View commit details
-
Copy full SHA for 817627a - Browse repository at this point
Copy the full SHA 817627aView commit details -
BOLT 2: splicing signing order & commitment_signed
Splice now uses single `commitment_signed` message and `tx_signatures` order is enoucrage to be smaller added amount first but is not required.
Configuration menu - View commit details
-
Copy full SHA for c8ebff2 - Browse repository at this point
Copy the full SHA c8ebff2View commit details -
Bolt 2: Splice commitment_signed & splice_locked
* commitment_signed is now sent a single time while a splice is being negotiated * adding a spec for `splice_locked` * additional logic for avoding splice_locked race condition
Configuration menu - View commit details
-
Copy full SHA for 787fdf2 - Browse repository at this point
Copy the full SHA 787fdf2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 03c47c1 - Browse repository at this point
Copy the full SHA 03c47c1View commit details -
fixup! splicing: use the generic negotiation mechanism to splice in/o…
…ut of a channel. Co-authored-by: ProofOfKeags <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d2fc4e4 - Browse repository at this point
Copy the full SHA d2fc4e4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3c2ba1f - Browse repository at this point
Copy the full SHA 3c2ba1fView commit details -
Bolt 2: Splice command uses signed relative sats
Using relative sat amounts simplifies multiple aspects of the protocol.
Configuration menu - View commit details
-
Copy full SHA for 3e4cf24 - Browse repository at this point
Copy the full SHA 3e4cf24View commit details -
Configuration menu - View commit details
-
Copy full SHA for fe8e682 - Browse repository at this point
Copy the full SHA fe8e682View commit details -
Bolt 2: Splice re-sending of
splice_locked
In cases where one side has sent `splice_locked` but the peer is attempting to resume splicing negotiation via reestablish we must re-send `splice_locked` This can occur if only one side has received splice signatures, and the peer goes offline. During this time the transaction may be published and confirmed. When the peer comes online it will be requesting splice signatures (via `next_funding_txid`) but since the transaction is already confirmed we must jump ahead to `splice_locked`.
Configuration menu - View commit details
-
Copy full SHA for 79bf5ae - Browse repository at this point
Copy the full SHA 79bf5aeView commit details -
Bolt 2: Splice clarify pending splice
A pending splice is one waiting for confirmation which is seperate from an ongoing splice negotation. Adjusting the language to remove ambiguity.
Configuration menu - View commit details
-
Copy full SHA for 678ae61 - Browse repository at this point
Copy the full SHA 678ae61View commit details -
Bolt 2: interactive-tx only confirmed inputs
The interactive tx protocol must only use confirmed inputs.
Configuration menu - View commit details
-
Copy full SHA for e7f84df - Browse repository at this point
Copy the full SHA e7f84dfView commit details -
Bolt 02: Update splice to reference
channel_ready
Formally known as `funding_locked`
Configuration menu - View commit details
-
Copy full SHA for 10ee7df - Browse repository at this point
Copy the full SHA 10ee7dfView commit details -
Bolt 2: splice message numbers
Jump to message numer 80 to avoid conflicts with `stfu` etc
Configuration menu - View commit details
-
Copy full SHA for 76c4678 - Browse repository at this point
Copy the full SHA 76c4678View commit details -
Configuration menu - View commit details
-
Copy full SHA for c08f5b6 - Browse repository at this point
Copy the full SHA c08f5b6View commit details