Skip to content

Conversation

t-bast
Copy link
Member

@t-bast t-bast commented Aug 28, 2025

If we send a batch of commit_sig while our peer is sending their splice_locked and we disconnect before receiving revoke_and_ack, we will have less commit_sig messages to send on reconnection. But we were still sending the old batch_size, so our peer was expecting more commit_sig messages and waiting indefinitely.

This shows how hacky the batch_size mechanism is: fortunately, it was removed from the official splice spec and replaced by the funding txid matching the commitment, which gets rid of this edge case entirely. But for existing phoenix users, while the splice spec isn't finalized, we need to fix this scenario.

If we send a batch of `commit_sig` while our peer is sending their
`splice_locked` and we disconnect before receiving `revoke_and_ack`,
we will have less `commit_sig` messages to send on reconnection. But
we were still sending the old `batch_size`, so our peer was expecting
more `commit_sig` messages and waiting indefinitely.

This shows how hacky the `batch_size` mechanism is: fortunately, it was
removed from the official splice spec and replaced by the funding txid
matching the commitment, which gets rid of this edge case entirely.
But for existing phoenix users, while the splice spec isn't finalized,
we need to fix this scenario.
@t-bast t-bast requested a review from pm47 August 28, 2025 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant