smite-ir: generate valid channel parameters in open_channel flows - #228
Conversation
c29f1dc to
eb75402
Compare
erickcestari
left a comment
There was a problem hiding this comment.
Should we be very strict and only create valid funding/open_channel flows? Or still allow generators to create invalid cases?
cc @morehouse
There was a problem hiding this comment.
This is a big improvement. I did an experiment with 2k seeds generated from the OpenChannelGenerator. Here's the per-impl accept rates:
| Revision | LDK | LND | CLN | Eclair |
|---|---|---|---|---|
Before this PR (de64777) |
0.00% | 0.00% | 0.00% | 0.00% |
Current PR (eb75402) |
0.10% | 0.00% | 6.40% | 0.25% |
I expect this alone will have a measurable improvement in AUC on a 24h+ experiment, and we should do that experiment to make sure.
We may want to make some further improvements first though. Ignoring channel type and shutdown script (which still cause most rejections even with our explicit enumeration of variants), the remaining top rejection reasons for the channel parameters on the 2k experiment were:
97.98% LDK dust_limit not in [354, 546]
95.12% Eclair reserve > 5% of funding
92.62% LND dust_limit not in [354, 1062]
80.27% LND channel_reserve > funding/5
80.12% LND max_in_flight < 5*htlc_minimum
51.80% Eclair dust_limit not in [354, 5000]
26.29% CLN htlc_minimum > capacity
25.03% LDK htlc_minimum >= (funding - reserve) * 1000
24.94% Eclair to_local and to_remote < reserve
24.94% LDK push_msat > (funding - reserve) * 1000
23.70% LDK SCID alias on announced channel
4.40% LND max_accepted_htlcs not in [5, 483]
I don't think we can get valid flows 100% of the time without overcomplicating the generator. But it would be good to get single-digit percentages of flows validating successfully, which I think should be possible by addressing some of the remaining blockers flagged above. |
eb75402 to
199dd8d
Compare
Updated the bounds. I'm currently running the experiment and will share the results shortly |
morehouse
left a comment
There was a problem hiding this comment.
Code LGTM.
Updated 2k experiment results:
| Revision | LDK | LND | CLN | Eclair |
|---|---|---|---|---|
Before this PR (de64777) |
0.00% | 0.00% | 0.00% | 0.00% |
Previous PR (eb75402) |
0.10% | 0.00% | 6.40% | 0.25% |
Current PR (199dd8d) |
8.10% | 4.40% | 9.95% | 8.30% |
Fuzzing Evaluation ReportConfiguration A (Baseline): 1. Summary Statistics
A comprehensive version of this table including raw P-values and Interquartile Ranges (IQRs) is available in 2. Interpretation GuideUse the generated matrix above to objectively evaluate the experimental configuration. For full methodology, see the Smite Fuzzing Evaluation Framework. Key Metrics
Reading the Results
3. VisualizationsNote: In the box plots below, the central box represents the Interquartile Range (IQR, the middle 50% of trials), demonstrating the consistency of the fuzzer's performance. The internal line represents the median. Target: ldkMedian Coverage Over Time
Distribution Comparisons
Target: lndMedian Coverage Over Time
Distribution Comparisons
|
Signed-off-by: Nishant Bansal <nishant.bansal.282003@gmail.com>
Signed-off-by: Nishant Bansal <nishant.bansal.282003@gmail.com>
morehouse
left a comment
There was a problem hiding this comment.
Wow, I just fell off my chair. Double the coverage looks good to me.
199dd8d to
2c50ad6
Compare
|
CLN and Eclair are also on the way, I'll share their results as well in some time |






Closes: #224