Skip to content

Conversation

@locallycompact
Copy link
Contributor

Using Arbitrary ByteString is introducing a conflict in cardano-api 10.18. This has since been resolved upstream in 10.19 but it's worth being precise here for our own benefit.

@github-actions
Copy link

github-actions bot commented Dec 4, 2025

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 2025-12-08 09:47:30.641258731 UTC
Max. memory units 14000000
Max. CPU units 10000000000
Max. tx size (kB) 16384

Script summary

Name Hash Size (Bytes)
νInitial c8a101a5c8ac4816b0dceb59ce31fc2258e387de828f02961d2f2045 2652
νCommit 61458bc2f297fff3cc5df6ac7ab57cefd87763b0b7bd722146a1035c 685
νHead a1442faf26d4ec409e2f62a685c1d4893f8d6bcbaf7bcb59d6fa1340 14599
μHead fd173b993e12103cd734ca6710d364e17120a5eb37a224c64ab2b188* 5284
νDeposit ae01dade3a9c346d5c93ae3ce339412b90a0b8f83f94ec6baa24e30c 1102
  • The minting policy hash is only usable for comparison. As the script is parameterized, the actual script is unique per head.

Init transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 5834 10.38 3.29 0.51
2 6037 12.46 3.94 0.55
3 6238 14.71 4.65 0.58
5 6641 18.64 5.88 0.64
10 7651 29.14 9.19 0.79
43 14281 98.58 30.79 1.80

Commit transaction costs

This uses ada-only outputs for better comparability.

UTxO Tx size % max Mem % max CPU Min fee ₳
1 558 2.44 1.16 0.20
2 743 3.38 1.73 0.22
3 923 4.36 2.33 0.24
5 1276 6.41 3.60 0.28
10 2176 12.13 7.25 0.40
54 10040 98.61 68.52 1.88

CollectCom transaction costs

Parties UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
1 57 525 24.42 7.12 0.42
2 113 640 32.31 9.40 0.51
3 171 747 41.28 11.92 0.60
4 226 858 50.89 14.63 0.70
5 282 969 58.24 16.88 0.79
6 339 1085 64.75 18.81 0.86
7 394 1192 72.82 21.15 0.94
8 450 1303 85.15 24.41 1.07

Cost of Increment Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 1823 24.29 7.69 0.48
2 1882 24.77 8.48 0.49
3 2013 25.91 9.48 0.52
5 2340 30.18 12.00 0.58
10 3100 39.66 17.99 0.74
40 7641 99.25 54.53 1.68

Cost of Decrement Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 618 22.80 7.38 0.41
2 703 22.62 7.97 0.42
3 895 25.10 9.32 0.46
5 1178 28.85 11.72 0.52
10 1953 37.51 17.46 0.67
41 6710 98.48 55.14 1.64

Close transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 655 29.13 8.90 0.48
2 812 31.58 10.27 0.52
3 998 31.69 10.98 0.53
5 1282 37.62 13.96 0.61
10 1964 44.07 19.12 0.73
37 6101 98.83 52.49 1.60

Contest transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 662 33.83 10.16 0.53
2 873 36.56 11.60 0.57
3 1032 38.59 12.82 0.60
5 1402 44.02 15.70 0.68
10 2132 55.51 22.26 0.85
29 4741 96.31 46.21 1.47

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 5811 27.08 9.08 0.69
2 5917 34.91 11.68 0.78
3 6059 42.54 14.26 0.86
4 6135 50.64 16.96 0.95
5 6444 64.16 21.68 1.11
6 6587 70.89 23.89 1.19
7 6745 83.17 28.11 1.32
8 7015 91.79 30.99 1.42
9 7013 99.48 33.53 1.50

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 5834 19.19 6.41 0.61
10 1 57 5868 22.10 7.52 0.64
10 20 1140 6514 60.42 22.68 1.09
10 30 1706 6852 78.71 30.00 1.30
10 39 2218 7157 98.05 37.58 1.53

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 2025-12-08 09:50:18.627048306 UTC

Baseline Scenario

Number of nodes 1
Number of txs 300
Avg. Confirmation Time (ms) 5.787723213
P99 10.95763691ms
P95 9.155660900000003ms
P50 5.2769705ms
Number of Invalid txs 0

Three local nodes

Number of nodes 3
Number of txs 900
Avg. Confirmation Time (ms) 34.428522047
P99 53.079831840000004ms
P95 45.98104465ms
P50 33.088426999999996ms
Number of Invalid txs 0

@github-actions
Copy link

github-actions bot commented Dec 4, 2025

Transaction cost differences

Script summary

Name Size (Bytes)
νInitial -
νCommit -
νHead -
μHead -
νDeposit -

Init transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 - - - -
2 - - - -
3 - - - -
5 - - - -
10 - - - -
43 - - - -

Commit transaction costs

UTxO Tx size % max Mem % max CPU Min fee ₳
1 - - - -
2 - - - -
3 - - - -
5 - - - -
10 - - - -
54 - - - -

CollectCom transaction costs

Parties UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
1 - - - - -
2 - - - - -
3 - - - - -
4 - - - - -
5 - - - - -
6 - - - - -
7 - - - - -
8 - - - - -
9 - - - - -

Cost of Increment Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 - - - -
2 - $${\color{green}-0.37}$$ $${\color{green}-0.08}$$ -
3 - +0.37 +0.09 -
5 - - - -
10 - - - -
43 - - - -

Cost of Decrement Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 - - - -
2 - - - -
3 - - - -
5 - - - -
10 - - - -
40 - - - -

Close transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 - - - -
2 - - - -
3 - - - -
5 - - - -
10 - - - -
34 - - - -

Contest transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 - - - -
2 - - - -
3 - - - -
5 - - - -
10 - - - -
29 - - - -

FanOut transaction costs

UTxO, Parties UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
(0, 10) - - - - -
(1, 10) - - - - -
(5, 10) - - - - -
(10, 10) - - - - -
(20, 10) - - - - -
(37, 10) - - - - -


genScriptData :: Gen ScriptData
genScriptData = oneof [ScriptDataBytes <$> arbitrary, ScriptDataNumber <$> arbitrary]
genScriptData = oneof [ScriptDataBytes <$> hedgehog (bytes $ Range.linear 1 1024), ScriptDataNumber <$> arbitrary]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see in the cardano-api they bound the range to 64, perhaps it is safe for us to do the same since I am not sure if there are any limitations on size here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants