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

Change Era from BabbageEra to ConwayEra (Draft Rebase) #1425

Closed
wants to merge 1 commit into from

Conversation

locallycompact
Copy link
Contributor

Do filter protocol updates in Arbitrary Tx anymore

Those are now represented differently in Conway and we'll see how the fully random transactions (including governance actions that supersede protocol updates) behave in situations where we use this generator.


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

@locallycompact locallycompact marked this pull request as draft May 13, 2024 07:52
Copy link

github-actions bot commented May 13, 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-05-13 12:06:57.461869352 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 4800 9.10 3.49 0.46
2 5001 10.82 4.14 0.49
3 5203 12.55 4.80 0.52
5 5609 16.43 6.29 0.58
10 6611 26.33 10.09 0.73
48 14251 99.87 38.32 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 568 10.24 4.04 0.29
2 755 13.88 5.64 0.34
3 943 17.66 7.29 0.39
5 1321 25.66 10.74 0.49
10 2259 48.19 20.30 0.79
19 3945 97.83 40.79 1.41

Cost of CollectCom Transaction

Parties UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
1 57 553 16.93 6.68 0.36
2 114 663 26.34 10.52 0.47
3 171 773 38.85 15.62 0.61
4 227 883 52.67 21.29 0.77
5 282 993 70.12 28.42 0.97
6 336 1104 84.45 34.50 1.13

Cost of Close Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 596 8.30 4.59 0.28
2 773 9.45 6.00 0.30
3 681 8.94 4.35 0.28
5 1244 11.88 9.50 0.37
10 2020 16.30 15.53 0.48
50 7916 50.20 62.69 1.36

Cost of Contest Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 656 8.65 4.74 0.28
2 721 8.97 5.47 0.29
3 976 10.47 7.21 0.33
5 1229 11.93 9.35 0.37
10 1912 16.02 15.03 0.47
50 8017 49.48 62.36 1.35

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 4671 17.04 7.37 0.55
2 4802 27.78 12.11 0.67
3 4878 37.43 16.23 0.78
4 4980 52.27 22.78 0.96
5 5161 74.24 32.60 1.21
6 5377 98.27 43.28 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 4637 8.15 3.40 0.44
5 1 56 4669 9.21 4.08 0.46
5 5 285 4806 13.61 6.84 0.52
5 10 570 4976 19.58 10.49 0.60
5 20 1139 5315 31.32 17.71 0.76
5 30 1709 5657 42.43 24.67 0.92
5 40 2279 5998 54.17 31.89 1.08
5 50 2847 6335 65.50 38.95 1.24
5 79 4496 7318 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-05-13 12:09:08.1403197 UTC

Baseline Scenario

Number of nodes 3
Number of txs 9000
Avg. Confirmation Time (ms) 22.468493756
P99 68.63581360000002ms
P95 32.04423684999999ms
P50 20.125677ms
Number of Invalid txs 0

Baseline Scenario

Number of nodes 1
Number of txs 3000
Avg. Confirmation Time (ms) 4.250256423
P99 8.023263899999947ms
P95 5.334862499999998ms
P50 4.0559845ms
Number of Invalid txs 0

@locallycompact locallycompact force-pushed the lc/conway-support-2 branch 4 times, most recently from bd22e52 to 7bc373e Compare May 13, 2024 10:24
Do filter protocol updates in Arbitrary Tx anymore

Those are now represented differently in Conway and we'll see how the
fully random transactions (including governance actions that supersede
protocol updates) behave in situations where we use this generator.
Copy link

Test Results

422 tests   - 4   414 ✅  - 2   15m 36s ⏱️ +52s
137 suites  - 1     8 💤  - 2 
  2 files   ±0     0 ❌ ±0 

Results for commit 5f9b8bf. ± Comparison against base commit 4791447.

This pull request removes 20 and adds 16 tests. Note that renamed tests count towards both.
Hydra.API.ClientInput/JSON encoding of (ReasonablySized (ClientInput (Tx BabbageEra))) ‑ allows to encode values with aeson and read them back
Hydra.API.ClientInput/JSON encoding of (ReasonablySized (ClientInput (Tx BabbageEra))) ‑ produces the same JSON as is found in golden/ReasonablySized (ClientInput (Tx BabbageEra)).json
Hydra.API.HTTPServer/JSON encoding of (ReasonablySized (DraftCommitTxRequest (Tx BabbageEra))) ‑ allows to encode values with aeson and read them back
Hydra.API.HTTPServer/JSON encoding of (ReasonablySized (DraftCommitTxRequest (Tx BabbageEra))) ‑ produces the same JSON as is found in golden/ReasonablySized (DraftCommitTxRequest (Tx BabbageEra)).json
Hydra.API.HTTPServer/JSON encoding of (ReasonablySized (DraftCommitTxResponse (Tx BabbageEra))) ‑ allows to encode values with aeson and read them back
Hydra.API.HTTPServer/JSON encoding of (ReasonablySized (DraftCommitTxResponse (Tx BabbageEra))) ‑ produces the same JSON as is found in golden/ReasonablySized (DraftCommitTxResponse (Tx BabbageEra)).json
Hydra.API.HTTPServer/JSON encoding of (ReasonablySized (SubmitTxRequest (Tx BabbageEra))) ‑ allows to encode values with aeson and read them back
Hydra.API.HTTPServer/JSON encoding of (ReasonablySized (SubmitTxRequest (Tx BabbageEra))) ‑ produces the same JSON as is found in golden/ReasonablySized (SubmitTxRequest (Tx BabbageEra)).json
Hydra.API.ServerOutput/JSON encoding of (ReasonablySized (ServerOutput (Tx BabbageEra))) ‑ allows to encode values with aeson and read them back
Hydra.API.ServerOutput/JSON encoding of (ReasonablySized (ServerOutput (Tx BabbageEra))) ‑ produces the same JSON as is found in golden/ReasonablySized (ServerOutput (Tx BabbageEra)).json
…
Hydra.API.ClientInput/JSON encoding of (ReasonablySized (ClientInput (Tx ConwayEra))) ‑ allows to encode values with aeson and read them back
Hydra.API.ClientInput/JSON encoding of (ReasonablySized (ClientInput (Tx ConwayEra))) ‑ produces the same JSON as is found in golden/ReasonablySized (ClientInput (Tx ConwayEra)).json
Hydra.API.HTTPServer/JSON encoding of (ReasonablySized (DraftCommitTxRequest (Tx ConwayEra))) ‑ allows to encode values with aeson and read them back
Hydra.API.HTTPServer/JSON encoding of (ReasonablySized (DraftCommitTxRequest (Tx ConwayEra))) ‑ produces the same JSON as is found in golden/ReasonablySized (DraftCommitTxRequest (Tx ConwayEra)).json
Hydra.API.HTTPServer/JSON encoding of (ReasonablySized (DraftCommitTxResponse (Tx ConwayEra))) ‑ allows to encode values with aeson and read them back
Hydra.API.HTTPServer/JSON encoding of (ReasonablySized (DraftCommitTxResponse (Tx ConwayEra))) ‑ produces the same JSON as is found in golden/ReasonablySized (DraftCommitTxResponse (Tx ConwayEra)).json
Hydra.API.HTTPServer/JSON encoding of (ReasonablySized (SubmitTxRequest (Tx ConwayEra))) ‑ allows to encode values with aeson and read them back
Hydra.API.HTTPServer/JSON encoding of (ReasonablySized (SubmitTxRequest (Tx ConwayEra))) ‑ produces the same JSON as is found in golden/ReasonablySized (SubmitTxRequest (Tx ConwayEra)).json
Hydra.API.ServerOutput/JSON encoding of (ReasonablySized (ServerOutput (Tx ConwayEra))) ‑ allows to encode values with aeson and read them back
Hydra.API.ServerOutput/JSON encoding of (ReasonablySized (ServerOutput (Tx ConwayEra))) ‑ produces the same JSON as is found in golden/ReasonablySized (ServerOutput (Tx ConwayEra)).json
…

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.

1 participant