Skip to content

Use StrictData in hydra-node#23

Open
awcjack wants to merge 5 commits intov1.2.0-basefrom
v1.2.0-memory-fix
Open

Use StrictData in hydra-node#23
awcjack wants to merge 5 commits intov1.2.0-basefrom
v1.2.0-memory-fix

Conversation

@awcjack
Copy link
Owner

@awcjack awcjack commented Jan 15, 2026

This reduces the memory usage significantly (1.7 GB vs. 137 MB for the stress-test I was running)


  • CHANGELOG updated or not needed
  • Documentation updated or not needed
  • Haddocks updated or not needed
  • No new TODOs introduced or explained herafter

v0d1ch and others added 4 commits January 15, 2026 10:29
This reduces the memory usage significantly (1.7 GB vs. 137 MB for the
stress-test I was running)

Signed-off-by: Sasha Bogicevic <sasha.bogicevic@iohk.io>
GitHub Actions runners have limited disk space (~14GB available).
When building uncached Nix derivations (like our modified hydra-node),
the build can exhaust disk space during compilation.

This adds a cleanup step that removes unused tools before the build:
- .NET SDK (~1.8GB)
- Android SDK (~9GB)
- GHC (~5GB)
- CodeQL (~2.5GB)
- Unused Docker images

This frees up ~20GB of disk space, ensuring builds complete successfully.
- Add pull_request trigger for PRs targeting master branch
- Tag PR builds as pr-<number> for easy identification
- Use PR head SHA as version for traceability
@github-actions
Copy link

Transaction cost differences

No cost or size differences found

@github-actions
Copy link

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 2026-01-15 02:57:49.481424142 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.74 3.42 0.52
2 6038 12.92 4.11 0.55
3 6236 14.71 4.65 0.58
5 6638 18.60 5.87 0.63
10 7644 29.14 9.19 0.79
43 14281 98.94 30.92 1.80

Commit transaction costs

This uses ada-only outputs for better comparability.

UTxO Tx size % max Mem % max CPU Min fee ₳
1 561 2.44 1.16 0.20
2 740 3.38 1.73 0.22
3 922 4.36 2.33 0.24
5 1280 6.41 3.60 0.28
10 2180 12.13 7.25 0.40
54 10059 98.61 68.52 1.88

CollectCom transaction costs

Parties UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
1 57 525 25.20 7.30 0.43
2 114 636 34.23 9.85 0.53
3 169 747 42.45 12.22 0.61
4 227 858 48.22 13.99 0.68
5 283 969 57.76 16.70 0.78
6 340 1081 67.59 19.41 0.88
7 394 1196 78.83 22.59 1.00
8 451 1307 94.91 26.90 1.17

Cost of Increment Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 1797 24.37 7.71 0.48
2 1924 25.47 8.70 0.50
3 2095 28.39 10.16 0.55
5 2407 30.80 12.19 0.59
10 3333 44.45 19.31 0.80
40 7605 99.41 54.55 1.68

Cost of Decrement Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 607 22.84 7.38 0.41
2 699 22.55 7.94 0.42
3 830 24.13 9.06 0.45
5 1235 29.01 11.75 0.52
10 1919 37.40 17.43 0.66
41 6619 99.46 55.38 1.64

Close transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 648 29.17 8.91 0.48
2 868 29.94 9.83 0.50
3 974 30.94 10.75 0.52
5 1249 36.87 13.74 0.60
10 1999 48.11 20.25 0.77
37 6175 99.13 52.64 1.60

Contest transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 701 33.83 10.15 0.53
2 760 35.14 11.16 0.55
3 979 38.62 12.83 0.60
5 1271 42.53 15.25 0.66
10 2163 55.17 22.16 0.85
29 4915 99.36 47.10 1.51

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 5804 26.92 9.04 0.69
2 5953 35.72 12.00 0.79
3 6093 42.53 14.27 0.86
4 6166 52.93 17.74 0.98
5 6317 59.70 20.03 1.05
6 6557 72.70 24.49 1.20
7 6908 87.30 29.55 1.37
8 6872 89.73 30.22 1.40

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 5835 18.75 6.26 0.60
10 1 57 5869 20.34 6.91 0.62
10 5 285 6004 28.90 10.28 0.72
10 30 1709 6856 80.92 30.76 1.33
10 39 2223 7162 98.49 37.73 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 2026-01-15 02:56:43.233606591 UTC

Baseline Scenario

Number of nodes 1
Number of txs 300
Avg. Confirmation Time (ms) 5.460566560
P99 9.87451888999998ms
P95 6.507479850000001ms
P50 5.1375185000000005ms
Number of Invalid txs 0

Memory data

Time Used Free
2026-01-15 02:55:15.320809824 UTC 1662M 7181M
2026-01-15 02:55:16.320846212 UTC 1700M 7108M
2026-01-15 02:55:17.320873698 UTC 1715M 7092M
2026-01-15 02:55:18.320799335 UTC 1718M 7089M
2026-01-15 02:55:19.320766679 UTC 1782M 6949M
2026-01-15 02:55:20.32084921 UTC 1793M 6937M
2026-01-15 02:55:21.320796457 UTC 1798M 6928M
2026-01-15 02:55:22.320830475 UTC 1805M 6917M
2026-01-15 02:55:23.320835011 UTC 1805M 6917M
2026-01-15 02:55:24.320783483 UTC 1805M 6917M
2026-01-15 02:55:25.320823684 UTC 1805M 6917M
2026-01-15 02:55:26.32081725 UTC 1801M 6921M
2026-01-15 02:55:27.320821502 UTC 1795M 6926M
2026-01-15 02:55:28.320803985 UTC 1792M 6930M
2026-01-15 02:55:29.320798592 UTC 1788M 6934M
2026-01-15 02:55:30.320782678 UTC 1787M 6935M
2026-01-15 02:55:31.320822856 UTC 1786M 6936M
2026-01-15 02:55:32.320806771 UTC 1782M 6940M
2026-01-15 02:55:33.320802252 UTC 1781M 6940M
2026-01-15 02:55:34.320792895 UTC 1781M 6940M
2026-01-15 02:55:35.320760531 UTC 1782M 6939M
2026-01-15 02:55:36.320809472 UTC 1782M 6939M
2026-01-15 02:55:37.320799411 UTC 1783M 6938M
2026-01-15 02:55:38.320812193 UTC 1783M 6938M
2026-01-15 02:55:39.320756666 UTC 1783M 6938M
2026-01-15 02:55:40.320814474 UTC 1783M 6938M
2026-01-15 02:55:41.320814245 UTC 1783M 6937M
2026-01-15 02:55:42.32075853 UTC 1783M 6937M
2026-01-15 02:55:43.320810866 UTC 1785M 6936M
2026-01-15 02:55:44.320781252 UTC 1785M 6935M

Three local nodes

Number of nodes 3
Number of txs 900
Avg. Confirmation Time (ms) 37.466590002
P99 63.194437359999995ms
P95 56.24488655ms
P50 35.726133000000004ms
Number of Invalid txs 0

Memory data

Time Used Free
2026-01-15 02:55:55.805231749 UTC 1696M 7062M
2026-01-15 02:55:56.805224264 UTC 1696M 7062M
2026-01-15 02:55:57.8050839 UTC 1700M 7058M
2026-01-15 02:55:58.805197583 UTC 1700M 7058M
2026-01-15 02:55:59.805101752 UTC 1700M 7058M
2026-01-15 02:56:00.80518324 UTC 1705M 7052M
2026-01-15 02:56:01.80521658 UTC 1714M 7043M
2026-01-15 02:56:02.805300387 UTC 1748M 6981M
2026-01-15 02:56:03.805356686 UTC 1826M 6875M
2026-01-15 02:56:04.807076298 UTC 1870M 6803M
2026-01-15 02:56:05.805312363 UTC 1915M 6758M
2026-01-15 02:56:06.805798879 UTC 1926M 6746M
2026-01-15 02:56:07.805582979 UTC 1960M 6703M
2026-01-15 02:56:08.805274072 UTC 1963M 6689M
2026-01-15 02:56:09.805632045 UTC 1979M 6662M
2026-01-15 02:56:10.806794495 UTC 1982M 6648M
2026-01-15 02:56:11.805413217 UTC 1984M 6637M
2026-01-15 02:56:12.80539036 UTC 1998M 6617M
2026-01-15 02:56:13.805500943 UTC 2001M 6606M
2026-01-15 02:56:14.806932827 UTC 2003M 6597M
2026-01-15 02:56:15.808541616 UTC 2006M 6587M
2026-01-15 02:56:16.805892254 UTC 2009M 6575M
2026-01-15 02:56:17.805300468 UTC 2014M 6560M
2026-01-15 02:56:18.805470459 UTC 2017M 6553M
2026-01-15 02:56:19.805316642 UTC 2018M 6551M
2026-01-15 02:56:20.808098737 UTC 2022M 6547M
2026-01-15 02:56:21.805290753 UTC 2027M 6542M
2026-01-15 02:56:22.805279308 UTC 2027M 6542M
2026-01-15 02:56:23.805367219 UTC 2027M 6542M
2026-01-15 02:56:24.80532997 UTC 2027M 6542M
2026-01-15 02:56:25.805408963 UTC 2026M 6542M
2026-01-15 02:56:26.805314676 UTC 2028M 6540M
2026-01-15 02:56:27.805269466 UTC 2028M 6540M
2026-01-15 02:56:28.805297315 UTC 2032M 6536M
2026-01-15 02:56:29.805253908 UTC 2032M 6535M
2026-01-15 02:56:30.805375138 UTC 2032M 6535M
2026-01-15 02:56:31.805322784 UTC 2034M 6533M
2026-01-15 02:56:32.805308354 UTC 2036M 6531M
2026-01-15 02:56:33.805266711 UTC 2037M 6530M
2026-01-15 02:56:34.805363143 UTC 2037M 6530M
2026-01-15 02:56:35.805314499 UTC 2037M 6530M
2026-01-15 02:56:36.805339532 UTC 2037M 6529M
2026-01-15 02:56:37.805270248 UTC 2038M 6527M
2026-01-15 02:56:38.805369538 UTC 2038M 6527M
2026-01-15 02:56:39.805220066 UTC 2038M 6527M
2026-01-15 02:56:40.805279659 UTC 2038M 6527M
2026-01-15 02:56:41.805248655 UTC 2038M 6527M
2026-01-15 02:56:42.805238831 UTC 2040M 6525M

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.

2 participants