Remove spurious interactive-tx commit_sig retransmission#2966
Conversation
e3cf443 to
c713beb
Compare
c713beb to
8f586d5
Compare
8f586d5 to
9625a6e
Compare
pm47
left a comment
There was a problem hiding this comment.
That's subtle, hard to be sure all combinations are correctly handled, but LGTM.
eclair-core/src/main/scala/fr/acinq/eclair/channel/fund/InteractiveTxBuilder.scala
Outdated
Show resolved
Hide resolved
eclair-core/src/main/scala/fr/acinq/eclair/channel/fund/InteractiveTxBuilder.scala
Outdated
Show resolved
Hide resolved
|
How do we test the behavior "...if our peer hasn't upgraded and always sends next_commitment_number = current_commitment_number + 1 even when they haven't received our commit_sig, this won't lead to a force-close: we will simply wait for them to send an error, which will never happen." ? If both Bob and Alice send |
eclair-core/src/test/scala/fr/acinq/eclair/channel/states/e/NormalSplicesStateSpec.scala
Outdated
Show resolved
Hide resolved
426f55a to
be61b2e
Compare
I have rebased to fix conflicts and added de331c8 where I showcase the behavior with non-upgraded nodes. |
be61b2e to
de331c8
Compare
|
I'll ask feedback during tonight's spec meeting before merging this PR. If other implementations are fine with this, we'll merge this PR and make an eclair release tomorrow. |
We fully implement lightning/bolts#1214 to stop retransmitting `commit_sig` when our peer has already received it. We also correctly set `next_commitment_number` to let our peer know whether we have received their `commit_sig` or not. We also retransmit `tx_signatures` (and, if requested, `commit_sig`) after sending `channel_ready` in the 0-conf case. This was missing and was a bug.
a4bed35 to
5e35a21
Compare
|
We've discussed this during yesterday's spec meeting: we have an ACK to release, so I've done a last rebase and we can now merge! |
We fully implement lightning/bolts#1214 to stop retransmitting
commit_sigwhen our peer has already received it. We also correctly setnext_commitment_numberto let our peer know whether we have received theircommit_sigor not.Note that if our peer hasn't upgraded and always sends
next_commitment_number = current_commitment_number + 1even when they haven't received ourcommit_sig, this won't lead to a force-close: we will simply wait for them to send anerror, which will never happen. Their channel will be stuck until they upgrade and sendnext_commitment_number = current_commitment_number.This change must only be merged once:
remote_commitment_number#2965next_commitment_numberduring splice reconnect lightning-kmp#736 so that users can upgrade to avoid being stuck