Skip to content
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

Improve error message if hydra-node crashes #1335

Merged
merged 1 commit into from
Mar 6, 2024
Merged

Conversation

ch1bo
Copy link
Collaborator

@ch1bo ch1bo commented Mar 4, 2024

By delaying the connection exception based errors on the websocket client of the test driver, we improve the error output in cases where other assertions provide more info. For example, checkProcessHasNotDied prints the stderr of the crashed hydra-node.

This is something @cardenaso11 and me did when pairing today.

Instead of the often seen ConnectionClosed non-saying error we now (more consistently) get the reason why the hydra-node crashed:

image


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

@ch1bo ch1bo force-pushed the hydra-node-waitNext-delay branch from 563ac81 to 9fddff3 Compare March 4, 2024 18:26
@ch1bo ch1bo requested a review from a team March 4, 2024 18:27
Copy link

github-actions bot commented Mar 4, 2024

Transactions 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-03-06 07:34:38.703837974 UTC
Max. memory units 14000000
Max. CPU units 10000000000
Max. tx size (kB) 16384

Script summary

Name Hash Size (Bytes)
νInitial bccf2a430c016bc960fbf31b02694011cd399d20da8882aac9d33611 4110
νCommit 56b0f0b597150e619c76bed60683f3b1e42d7bc0685ed951b882bfc5 1975
νHead 86bff95ba20e9d1d1b34899a56d86bbacc9fed999260b27dcc92d128 9351
μHead 88f533cf67cd0fc93d7d9ccf0a8b1d69ffd1208a825efbebbc1d36ba* 4213
  • The minting policy hash is only usable for comparison. As the script is parameterized, the actual script is unique per Head.

Cost of Init Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 4795 8.78 3.35 0.46
2 4993 10.87 4.16 0.49
3 5194 12.79 4.90 0.52
5 5600 16.58 6.35 0.58
10 6605 26.22 10.05 0.73
48 14249 99.77 38.28 1.86

Cost of Commit Transaction

This is using ada-only outputs for better comparability.

UTxO Tx size % max Mem % max CPU Min fee ₳
1 591 10.24 4.04 0.29
2 780 13.88 5.64 0.34
3 970 17.66 7.29 0.39
5 1348 25.66 10.74 0.49
10 2283 48.19 20.30 0.79
19 3962 97.83 40.79 1.41

Cost of CollectCom Transaction

Parties UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
1 57 544 16.52 6.53 0.35
2 114 654 27.38 10.90 0.48
3 170 764 37.90 15.27 0.60
4 226 878 53.34 21.54 0.78
5 281 988 67.56 27.47 0.94
6 339 1099 84.23 34.42 1.13

Cost of Close Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 621 8.34 4.63 0.28
2 789 9.49 6.03 0.31
3 948 10.56 7.39 0.33
5 1299 12.16 9.81 0.38
10 1886 15.53 14.85 0.47
50 7928 49.95 62.53 1.35

Cost of Contest Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 644 8.65 4.75 0.28
2 753 9.38 5.80 0.30
3 889 10.03 6.84 0.32
5 1230 11.97 9.36 0.37
10 2120 17.74 16.49 0.51
50 7927 50.45 62.79 1.36

Cost of Abort Transaction

Some variation because of random mixture of still initial and already committed outputs.

Parties Tx size % max Mem % max CPU Min fee ₳
1 4674 16.96 7.34 0.55
2 4778 27.98 12.19 0.67
3 4902 40.85 17.88 0.82
4 5127 59.18 26.09 1.04
5 5235 77.22 34.05 1.25
6 5377 98.31 43.30 1.49

Cost of FanOut Transaction

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 ₳
5 0 0 4627 7.85 3.28 0.44
5 1 57 4662 9.00 3.99 0.46
5 5 285 4797 13.61 6.84 0.52
5 10 568 4965 19.58 10.49 0.60
5 20 1140 5307 31.11 17.62 0.76
5 30 1708 5648 42.64 24.76 0.92
5 40 2279 5988 53.96 31.81 1.08
5 50 2848 6328 65.92 39.13 1.24
5 79 4497 7309 99.00 59.68 1.70

End-To-End Benchmark Results

This page is intended to collect the latest end-to-end benchmarks results produced by Hydra's Continuous Integration system from the latest master code.

Please take those results with a grain of salt as they are currently produced from very limited cloud VMs and not controlled hardware. Instead of focusing on the absolute results, the emphasis should be on relative results, eg. how the timings for a scenario evolve as the code changes.

Generated at 2024-03-06 07:36:57.041302612 UTC

Baseline Scenario

Number of nodes 3
Number of txs 9000
Avg. Confirmation Time (ms) 23.206098234
P99 116.35643358000002ms
P95 33.185115149999994ms
P50 20.248374499999997ms
Number of Invalid txs 0

Baseline Scenario

Number of nodes 1
Number of txs 3000
Avg. Confirmation Time (ms) 4.248940432
P99 6.509423399999999ms
P95 5.10841825ms
P50 4.1244505ms
Number of Invalid txs 0

Copy link

github-actions bot commented Mar 4, 2024

Test Results

418 tests  ±0   410 ✅ ±0   13m 38s ⏱️ -15s
139 suites ±0     8 💤 ±0 
  5 files   ±0     0 ❌ ±0 

Results for commit ac31c3f. ± Comparison against base commit 6fcc456.

♻️ This comment has been updated with latest results.

By delaying the connection exception based errors on the websocket
client of the test driver, we improve the error output in cases where
other assertions provide more info. For example, checkProcessHasNotDied
prints the stderr of the crashed hydra-node.

Co-authored: Sebastian Nagel <[email protected]>
@ch1bo ch1bo force-pushed the hydra-node-waitNext-delay branch from ac31c3f to 05e8859 Compare March 6, 2024 07:31
@ch1bo ch1bo disabled auto-merge March 6, 2024 07:31
@ch1bo ch1bo enabled auto-merge March 6, 2024 07:31
@ch1bo ch1bo merged commit c4e7df0 into master Mar 6, 2024
20 checks passed
@ch1bo ch1bo deleted the hydra-node-waitNext-delay branch March 6, 2024 07:40
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.

3 participants