Drive splices to completion in chanmon_consistency#4411
Drive splices to completion in chanmon_consistency#4411TheBlueMatt merged 7 commits intolightningdevkit:mainfrom
Conversation
|
👋 Thanks for assigning @TheBlueMatt as a reviewer! |
|
👋 The first review has been submitted! Do you think this PR is ready for a second reviewer? If so, click here to assign a second reviewer. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4411 +/- ##
==========================================
- Coverage 85.91% 85.89% -0.02%
==========================================
Files 156 156
Lines 103958 103933 -25
Branches 103958 103933 -25
==========================================
- Hits 89317 89277 -40
- Misses 12122 12137 +15
Partials 2519 2519
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
f6403f8 to
a10750d
Compare
This commit adds new opcodes to enable/disable signer operations one by one. Note that this only covers signer operations post-funding.
This commit adds support for locking splices. This required confirming transactions, which this target previously didn't consider. It also fixes a `serial_id` collision, due to its generation using the first 4 bytes of `get_secure_random_bytes`, that was preventing splices from negotiating up to the `tx_signatures` exchange.
The `short_channel_id` is no longer guaranteed to be stable with splicing now that the fuzzer can actually lock splices.
Even though we don't explicitly send probes, because probes are detected based on hashing the payment hash+preimage, it's rather trivial for the fuzzer to build payments that accidentally end up looking like probes.
a10750d to
0c8b9f3
Compare
This requires calling `timer_tick_occurred`. As a result, when `timer_tick_occurred` is called, disabled/enabled updates and `WarnAndDisconnect` events may be triggered.
This regressed at some point, making the logs harder to parse on a failed test run.
0c8b9f3 to
ff39dff
Compare
TheBlueMatt
left a comment
There was a problem hiding this comment.
thanks one comment for a followup, if you want.
| keys_manager_a.enable_op_for_all_signers(SignerOp::GetPerCommitmentPoint); | ||
| nodes[0].signer_unblocked(None); | ||
| }, | ||
| 0xc7 => { |
There was a problem hiding this comment.
Wait, can we split the signer-enable bit for node B by the peer? That way we can have its channels with node A and node B in different states which may be useful.
This PR also includes support for fuzzing async signing (though not during initial channel open) and a few miscellaneous fixes as a result of #4367.
After running the fuzzer for a bit with these changes, a few bugs were discovered that will be addressed separately.