-
Notifications
You must be signed in to change notification settings - Fork 84
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
cardano-api: 9.1 -> 9.3 #1686
cardano-api: 9.1 -> 9.3 #1686
Conversation
locallycompact
commented
Oct 7, 2024
- CHANGELOG updated or not needed
- Documentation updated or not needed
- Haddocks updated or not needed
- No new TODOs introduced or explained herafter
We intend to create one of the hydra-plutus scripts with aiken.
This separates the aiken build, which yields the plutus.json blueprint and the haskell build which provides access to the compiled validators.
Instead of using the plutus-tx "compiledScript", we use the loaded-from-blueprint aiken script in the init validator and when constructing/observing transactions in the hydra-node.
This is not yet working and it does not correctly detect changes to plutus.json
Plutus-tx seems to be encoding tuples as a Constr on-chain.
Also add TODO comments for things that are missing to be removed.
By regenerating the plutus.json file using -k flag during aiken build.
This removes the need of using aiken/builtin function decode_utf8, providing some small optimization. Also recreated plutus scripts.
To correlate with the rest.
Also removed its golden spec. Finally added a note about a fragility being present while accessing the commit validator script from the blueprintJSON.
Seems like the aiken compiler uses plutus core version 1.1.0 syntax and we need to declare it as a PlutusV3 script.
We do not need the plutus-style envelope and this would not match with the PlutusV2 used there.
This will keep the first trace argument which we expect to see in our mutation tests.
This does not require us to be in a git repository and hence makes the test more flexible and isolated.
The hydra-plutus library seems to be consistently rebuilt when the plutus.json gets changed.
This was failing with PPViewHashesDontMatch because the transaction was referencing the commit script which is does not always need, and the commit script being of different version than the other scripts spent.
deb0481
to
e659c67
Compare
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 | 5097 | 5.81 | 2.30 | 0.44 |
2 | 5295 | 6.99 | 2.76 | 0.46 |
3 | 5502 | 8.37 | 3.30 | 0.48 |
5 | 5899 | 11.41 | 4.51 | 0.53 |
10 | 6906 | 18.11 | 7.16 | 0.65 |
57 | 16356 | 82.89 | 32.79 | 1.78 |
Commit
transaction costs
This uses ada-only outputs for better comparability.
UTxO | Tx size | % max Mem | % max CPU | Min fee ₳ |
---|---|---|---|---|
1 | 569 | 10.84 | 4.26 | 0.29 |
2 | 754 | 14.31 | 5.80 | 0.34 |
3 | 946 | 17.92 | 7.39 | 0.39 |
5 | 1320 | 25.56 | 10.73 | 0.49 |
10 | 2249 | 47.11 | 19.97 | 0.77 |
19 | 3937 | 94.71 | 39.81 | 1.38 |
CollectCom
transaction costs
Parties | UTxO (bytes) | Tx size | % max Mem | % max CPU | Min fee ₳ |
---|---|---|---|---|---|
1 | 56 | 559 | 19.84 | 7.58 | 0.39 |
2 | 114 | 671 | 27.94 | 10.64 | 0.48 |
3 | 171 | 782 | 34.42 | 13.13 | 0.56 |
4 | 226 | 893 | 42.47 | 16.18 | 0.65 |
5 | 283 | 1004 | 48.66 | 18.55 | 0.72 |
6 | 337 | 1116 | 61.67 | 23.44 | 0.87 |
7 | 394 | 1227 | 73.57 | 27.91 | 1.00 |
8 | 450 | 1338 | 86.71 | 32.85 | 1.15 |
9 | 507 | 1449 | 88.96 | 33.80 | 1.18 |
Cost of Decrement Transaction
Parties | Tx size | % max Mem | % max CPU | Min fee ₳ |
---|---|---|---|---|
1 | 625 | 18.64 | 8.15 | 0.39 |
2 | 807 | 20.66 | 9.71 | 0.42 |
3 | 896 | 20.63 | 10.42 | 0.43 |
5 | 1124 | 22.64 | 12.78 | 0.47 |
10 | 2051 | 33.45 | 20.79 | 0.66 |
49 | 7765 | 95.49 | 75.11 | 1.80 |
Close
transaction costs
Parties | Tx size | % max Mem | % max CPU | Min fee ₳ |
---|---|---|---|---|
1 | 672 | 20.83 | 9.32 | 0.42 |
2 | 741 | 21.93 | 10.44 | 0.44 |
3 | 911 | 23.70 | 12.18 | 0.47 |
5 | 1278 | 27.30 | 15.69 | 0.54 |
10 | 2090 | 35.41 | 23.62 | 0.70 |
50 | 7927 | 96.94 | 84.74 | 1.89 |
Contest
transaction costs
Parties | Tx size | % max Mem | % max CPU | Min fee ₳ |
---|---|---|---|---|
1 | 683 | 26.77 | 11.46 | 0.48 |
2 | 798 | 28.61 | 13.05 | 0.51 |
3 | 994 | 30.76 | 14.93 | 0.55 |
5 | 1225 | 33.78 | 17.67 | 0.60 |
10 | 1960 | 43.29 | 26.04 | 0.77 |
38 | 6511 | 97.56 | 74.18 | 1.76 |
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 | 4997 | 15.51 | 6.64 | 0.54 |
2 | 5089 | 21.89 | 9.41 | 0.62 |
3 | 5334 | 29.67 | 12.98 | 0.72 |
4 | 5348 | 34.39 | 14.90 | 0.77 |
5 | 5583 | 42.07 | 18.42 | 0.87 |
6 | 5649 | 47.61 | 20.71 | 0.93 |
7 | 5664 | 50.15 | 21.55 | 0.96 |
8 | 5861 | 61.01 | 26.45 | 1.09 |
9 | 6094 | 67.42 | 29.38 | 1.17 |
10 | 6014 | 70.86 | 30.55 | 1.21 |
11 | 6373 | 85.53 | 37.25 | 1.39 |
12 | 6265 | 85.92 | 37.04 | 1.39 |
13 | 6533 | 90.60 | 39.31 | 1.45 |
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 | 5089 | 9.99 | 4.18 | 0.49 |
10 | 1 | 56 | 5122 | 11.35 | 4.98 | 0.50 |
10 | 5 | 284 | 5258 | 15.63 | 7.71 | 0.56 |
10 | 10 | 569 | 5429 | 21.28 | 11.24 | 0.64 |
10 | 20 | 1138 | 5768 | 33.55 | 18.72 | 0.81 |
10 | 30 | 1709 | 6111 | 45.04 | 25.88 | 0.97 |
10 | 40 | 2275 | 6446 | 57.33 | 33.37 | 1.14 |
10 | 50 | 2844 | 6786 | 68.44 | 40.36 | 1.29 |
10 | 77 | 4380 | 7700 | 99.74 | 59.82 | 1.73 |
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 2024-10-07 10:26:56.564616191 UTC
Baseline Scenario
Number of nodes | 1 |
---|---|
Number of txs | 3000 |
Avg. Confirmation Time (ms) | 4.699312577 |
P99 | 8.134082609999997ms |
P95 | 5.9774916ms |
P50 | 4.2668275ms |
Number of Invalid txs | 0 |
Three local nodes
Number of nodes | 3 |
---|---|
Number of txs | 9000 |
Avg. Confirmation Time (ms) | 22.620816611 |
P99 | 104.98001816000011ms |
P95 | 28.687728549999978ms |
P50 | 20.500917ms |
Number of Invalid txs | 0 |
Test Results518 tests ±0 512 ✅ ±0 29m 44s ⏱️ + 6m 26s Results for commit e659c67. ± Comparison against base commit d3db623. This pull request removes 1 and adds 1 tests. Note that renamed tests count towards both.
|