-
Notifications
You must be signed in to change notification settings - Fork 96
Fix incremental commit/decommit state events #1894
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
83d17b7 to
ae4b80d
Compare
|
We confirmed this working by being able to close and fanout a head we could not before! |
c6d9e83 to
6c260b1
Compare
Transaction cost differencesScript summary
|
| 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) | - | - | - | - | - |
Transaction costsSizes and execution budgets for Hydra protocol transactions. Note that unlisted parameters are currently using
Script summary
|
| 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 |
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.
67986df to
0c56bb6
Compare
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.