cardano-scaling / hydra

Implementation of the Hydra Head protocol
https://hydra.family/head-protocol/
Apache License 2.0
284 stars 86 forks source link

Deterministic tx cost computation in CI #1712

Closed noonio closed 1 month ago

noonio commented 1 month ago

Follow up to #1711 .

~A draft as it will only work once that one is merged.~

github-actions[bot] commented 1 month ago

Transaction costs

Sizes and execution budgets for Hydra protocol transactions. Note that unlisted parameters are currently using arbitrary values and results are not fully deterministic and comparable to previous runs.

Metadata
Generated at 2024-10-15 14:31:23.831147114 UTC
Max. memory units 14000000
Max. CPU units 10000000000
Max. tx size (kB) 16384

Script summary

Name Hash Size (Bytes)
νInitial b512161ccb0652d7e9a0b540e4a3c808f73d6558a4bcabf374d85880 3969
νCommit ea444d37d226e71eef73ac78d149750da977feb588900135bf9e8221 692
νHead 2253ddd95837c7aacc8635a971caaea743434152dd8dd2849bdf4162 10797
μHead 4d648ca239040b0e87901835aa11423e7aa3bd947ce6befe7db1bae8* 4508
νDeposit 703883df80fe589a8f64a4127057f28c9100ea9ebbb3e726c05e89ca 3096
Parties Tx size % max Mem % max CPU Min fee ₳
1 5094 5.93 2.35 0.44
2 5298 7.09 2.80 0.46
3 5499 8.59 3.40 0.49
5 5899 11.21 4.43 0.53
10 6904 18.02 7.12 0.65
57 16353 83.05 32.85 1.78

Commit transaction costs

This uses ada-only outputs for better comparability.

UTxO Tx size % max Mem % max CPU Min fee ₳
1 569 10.84 4.26 0.29
2 759 14.31 5.80 0.34
3 946 17.92 7.39 0.39
5 1317 25.56 10.73 0.49
10 2257 47.11 19.97 0.77
19 3949 94.71 39.81 1.38

CollectCom transaction costs

Parties UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
1 57 560 19.84 7.58 0.39
2 114 675 26.91 10.26 0.47
3 170 782 37.83 14.38 0.59
4 226 893 42.70 16.26 0.65
5 283 1004 51.82 19.71 0.76
6 339 1116 62.10 23.61 0.87
7 393 1227 68.29 26.00 0.94
8 449 1338 82.53 31.33 1.10
9 506 1449 90.10 34.19 1.19

Cost of Decrement Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 662 18.68 8.18 0.39
2 837 20.98 9.84 0.43
3 965 22.07 11.03 0.45
5 1303 25.13 13.70 0.51
10 1919 31.15 19.95 0.63
48 7650 96.67 74.79 1.81

Close transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 661 20.83 9.32 0.41
2 789 22.27 10.75 0.44
3 914 23.73 12.19 0.47
5 1254 27.05 15.50 0.54
10 2079 35.89 23.95 0.70
49 7826 97.76 84.42 1.89

Contest transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 698 26.81 11.50 0.48
2 818 28.53 13.01 0.51
3 1011 30.76 14.95 0.55
5 1277 34.07 17.96 0.61
10 2014 43.73 26.39 0.78
40 6327 99.71 75.56 1.78

Abort transaction costs

There is some variation due to the random mixture of initial and already committed outputs.

Parties Tx size % max Mem % max CPU Min fee ₳
1 4980 15.43 6.60 0.54
2 5170 22.29 9.68 0.63
3 5234 28.37 12.25 0.70
4 5380 33.19 14.37 0.76
5 5586 42.66 18.64 0.88
6 5743 50.88 22.26 0.97
7 5647 51.12 21.93 0.97
8 5936 64.58 28.18 1.14
9 5931 67.24 29.06 1.16
10 6099 74.40 32.27 1.25
11 6430 87.55 38.29 1.42
12 6270 84.77 36.68 1.38
13 6300 89.57 38.49 1.43

FanOut transaction costs

Involves spending head output and burning head tokens. Uses ada-only UTxO for better comparability.

Parties UTxO UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
10 0 0 5089 9.99 4.18 0.49
10 1 57 5123 11.35 4.98 0.50
10 5 285 5259 15.83 7.79 0.57
10 10 570 5429 22.06 11.57 0.65
10 20 1138 5767 33.35 18.64 0.81
10 30 1705 6106 45.13 25.91 0.97
10 40 2276 6447 56.54 33.03 1.13
10 50 2841 6783 69.62 40.87 1.31
10 76 4321 7664 99.47 59.48 1.72

End-to-end benchmark results

This page is intended to collect the latest end-to-end benchmark results produced by Hydra's continuous integration (CI) system from the latest master code.

Please note that these results are approximate as they are currently produced from limited cloud VMs and not controlled hardware. Rather than focusing on the absolute results, the emphasis should be on relative results, such as how the timings for a scenario evolve as the code changes.

Generated at 2024-10-15 14:34:11.453922854 UTC

Baseline Scenario

Number of nodes 1
Number of txs 300
Avg. Confirmation Time (ms) 5.870675076
P99 11.373689639999995ms
P95 8.4100157ms
P50 5.5987495ms
Number of Invalid txs 0

Three local nodes

Number of nodes 3
Number of txs 900
Avg. Confirmation Time (ms) 24.655999712
P99 117.18262655999999ms
P95 32.023233749999996ms
P50 22.667214ms
Number of Invalid txs 0
github-actions[bot] commented 1 month ago

Test Results

  7 files  ±0  164 suites  ±0   26m 26s :stopwatch: + 1m 13s 558 tests ±0  552 :white_check_mark: ±0  6 :zzz: ±0  0 :x: ±0  560 runs  ±0  554 :white_check_mark: ±0  6 :zzz: ±0  0 :x: ±0 

Results for commit 6e803d72. ± Comparison against base commit 2c0707fc.

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 1 month ago

Transaction cost differences

No cost or size differences found