-
Notifications
You must be signed in to change notification settings - Fork 965
Open
Description
Hey! I've done a bunch of splicing cross-compatibility tests with eclair, using cln's master branch, and here are the results. Things are mostly working well, but there are a few important bugs so this isn't safe to ship yet.
Let's start with the bugs/missing features:
- if I initiate a splice-in (and I think splice-out will be the same) from
cln, thetx_signaturessent byclnis incorrect andclncrashes: I'm wondering if this is related to funding key rotation? I think the bug is on theclnside, since I've had no issue doing that withldk - aborting a splice on reconnection doesn't work: if we disconnect before receiving each other's
commit_sig, andeclairactually wanted to cancel the splice,clnwill keep sending awarningand disconnecting instead of aborting that splice. It means that this test case isn't implemented incln: https://github.com/t-bast/bolts/blob/splicing/bolt02/splicing-test.md#disconnection-with-one-side-sending-commit_sig clnsendssplice_lockedafter only 1 confirmation: that's very dangerous, you should wait for at least 3 confirmations (eclairwaits for 8 confirmations by default). I wasn't able to fully testsplice_lockedbehavior because of this limitation
And here is what I tested that worked:
- quiescence seems to work correctly (I couldn't test all cases easily from the outside, but what I tested worked well)
- splicing works correctly even when the local and remote
commitment_numbers are different - retransmission of
commit_sigon reconnection works - retransmission of
tx_signatureson reconnection works splice_lockedbehavior looks correct, but I couldn't test the case whereeclairsendssplice_lockedearlier thancln, sinceclnsends it after only 1 confirmation (see my previous point above)- RBF works correctly, including
commit_sigandtx_signaturesretransmission on reconnect (but probably nottx_aborton reconnect, since https://github.com/t-bast/bolts/blob/splicing/bolt02/splicing-test.md#disconnection-with-one-side-sending-commit_sig isn't implemented) - I haven't tested edge cases around
announcement_signaturesbecause of the 1-confsplice_lockedbehavior, but the "normal" case works correctly
@ddustin I'll let you work on those remaining issues, I feel like we're pretty close! You can use this branch of eclair for your tests: https://github.com/ACINQ/eclair/tree/splicing-official-cross-compat
Metadata
Metadata
Assignees
Labels
No labels