Skip to content

Conversation

@ch1bo
Copy link
Member

@ch1bo ch1bo commented Mar 12, 2025

These have not been carrying and updating the 'chainState' in our 'HeadState' aggregate. This would result in the chain layer not restarting from these last known chain points and we saw the hydra-node re-observing deposits, incrementas and (likely) decrements.


  • CHANGELOG updated
  • Documentation update not needed
  • Haddocks update not needed
  • No new TODOs introduced

@ch1bo ch1bo requested a review from a team March 12, 2025 22:16
@ch1bo ch1bo moved this from Triage 🏥 to In review 👀 in ☕ Hydra Team Work Mar 12, 2025
@ch1bo ch1bo force-pushed the fix-inc-dec-state-events branch from 83d17b7 to ae4b80d Compare March 12, 2025 22:19
@ch1bo
Copy link
Member Author

ch1bo commented Mar 13, 2025

We confirmed this working by being able to close and fanout a head we could not before!

@ch1bo ch1bo force-pushed the fix-inc-dec-state-events branch from c6d9e83 to 6c260b1 Compare March 13, 2025 12:52
@ch1bo ch1bo enabled auto-merge March 13, 2025 12:56
@github-actions
Copy link

github-actions bot commented Mar 13, 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 - - - -
40 - - - -

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 - - - - -

Cost of Increment Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 - - - -
2 - - - -
3 - +0.39 +0.09 -
5 - - - -
10 - - - -
37 - - - -

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 - - - -
27 - - - -

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) - - - - -

@github-actions
Copy link

github-actions bot commented Mar 13, 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-03-13 17:26:36.482640152 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 0e35115a2c7c13c68ecd8d74e4987c04d4539e337643be20bb3274bd 14756
μHead 57166715eadb8d3135964325c016eea546c21e1c0aae974ca67df9a5* 5541
ν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 6091 11.02 3.43 0.53
2 6295 13.65 4.25 0.57
3 6495 15.89 4.94 0.60
5 6897 19.76 6.10 0.66
10 7904 31.36 9.67 0.82
40 13933 98.18 30.14 1.77

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 918 4.36 2.33 0.24
5 1278 6.41 3.60 0.28
10 2174 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 25.64 7.39 0.43
2 113 640 35.98 10.25 0.54
3 171 747 44.67 12.72 0.64
4 228 858 56.29 15.86 0.76
5 282 969 57.82 16.60 0.78
6 338 1081 79.45 22.28 1.00
7 394 1192 80.05 22.74 1.01
8 452 1307 85.38 24.56 1.07

Cost of Increment Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 1785 25.03 8.22 0.49
2 1954 26.69 9.41 0.52
3 2108 29.83 11.06 0.56
5 2324 31.52 12.89 0.60
10 3116 41.64 19.50 0.76
37 7126 94.69 54.58 1.62

Cost of Decrement Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 633 23.99 7.62 0.43
2 763 25.59 8.72 0.45
3 881 26.53 9.62 0.47
5 1206 31.64 12.39 0.55
10 2083 44.55 19.26 0.74
37 6060 95.69 51.39 1.56

Close transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 664 30.95 9.69 0.50
2 774 32.85 10.92 0.53
3 908 34.70 12.15 0.56
5 1196 38.54 14.65 0.62
10 2192 49.60 22.05 0.81
33 5309 92.42 50.67 1.50

Contest transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 670 35.99 11.01 0.55
2 760 37.49 12.02 0.57
3 941 40.24 13.62 0.61
5 1266 45.29 16.56 0.69
10 2055 57.93 23.92 0.88
26 4576 97.93 47.42 1.48

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 6004 28.16 9.30 0.71
2 6152 38.60 12.77 0.82
3 6252 47.88 15.82 0.93
4 6357 56.05 18.45 1.02
5 6516 63.88 21.07 1.10
6 6794 79.64 26.44 1.28
7 6785 85.61 28.32 1.34
8 6886 93.28 30.80 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 6091 20.12 6.62 0.63
10 1 57 6125 22.25 7.45 0.65
10 20 1137 6768 62.26 22.99 1.12
10 37 2103 7345 98.94 37.19 1.54

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-03-13 17:29:11.50333968 UTC

Baseline Scenario

Number of nodes 1
Number of txs 300
Avg. Confirmation Time (ms) 4.807313673
P99 6.5709010999999995ms
P95 5.8998507ms
P50 4.656878ms
Number of Invalid txs 0

Memory data

Time Used Free
2025-03-13 17:27:55.544136851 UTC 905M 2921M
2025-03-13 17:28:00.544598981 UTC 1019M 2797M
2025-03-13 17:28:05.544430732 UTC 1014M 2802M
2025-03-13 17:28:10.544388239 UTC 1019M 2797M
2025-03-13 17:28:15.543947036 UTC 1021M 2794M
2025-03-13 17:28:20.543940349 UTC 1021M 2794M

Three local nodes

Number of nodes 3
Number of txs 900
Avg. Confirmation Time (ms) 33.087971032
P99 61.97837382999999ms
P95 52.08992505ms
P50 30.2257815ms
Number of Invalid txs 0

Memory data

Time Used Free
2025-03-13 17:28:33.609945015 UTC 933M 2892M
2025-03-13 17:28:38.609912355 UTC 1216M 2608M
2025-03-13 17:28:43.61143101 UTC 1277M 2490M
2025-03-13 17:28:48.612668421 UTC 1281M 2436M
2025-03-13 17:28:53.609891146 UTC 1281M 2428M
2025-03-13 17:28:58.609901741 UTC 1284M 2424M
2025-03-13 17:29:03.609911834 UTC 1295M 2413M
2025-03-13 17:29:08.609915298 UTC 1297M 2411M

ch1bo added 2 commits March 13, 2025 18:25
These have not been carrying and updating the 'chainState' in our
'HeadState' aggregate. This would result in the chain layer not
restarting from these last known chain points and we saw the hydra-node
re-observing deposits, incrementas and (likely) decrements.

Thi also re-order cases in aggregate/aggregateHistory to see better that
we ought to use chainState in some of them.
@ch1bo ch1bo force-pushed the fix-inc-dec-state-events branch from 67986df to 0c56bb6 Compare March 13, 2025 17:25
@ch1bo ch1bo merged commit a16c858 into master Mar 13, 2025
20 checks passed
@ch1bo ch1bo deleted the fix-inc-dec-state-events branch March 13, 2025 17:37
@github-project-automation github-project-automation bot moved this from In review 👀 to Done ✔ in ☕ Hydra Team Work Mar 13, 2025
@ch1bo ch1bo self-assigned this Mar 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants