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

Fetch known network config #1156

Merged
merged 4 commits into from Nov 8, 2023
Merged

Fetch known network config #1156

merged 4 commits into from Nov 8, 2023

Conversation

ch1bo
Copy link
Member

@ch1bo ch1bo commented Nov 7, 2023

  • 📡 Fetch known network configuration in hydra-cluster instead of using the vendored config from cardano-configurations

  • 📡 Remove known network configurations from hydra-cluster

  • 📡 Re-add the submodule to cardano-configuration, but only use it for the testnets/ scripts

  • 📡 Clean up nix invocations in CI and documentation which were still mentioning ?submodules=1


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

Instead of including configuration files for various known networks, the
withCardanoNodeOnKnownNetwork function now fetches the files from a
known remote server.
This is now possible as submodules were only problematic when mentioned
in .cabal files.
This is not needed since we removed the need for submodules from the
haskell package builds.
Copy link

github-actions bot commented Nov 7, 2023

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 2023-11-08 07:07:54.006800328 UTC
Max. memory units 14000000
Max. CPU units 10000000000
Max. tx size (kB) 16384

Script summary

Name Hash Size (Bytes)
νInitial 9bad424d8a3bc67f63acfe1b015b551e84a14d7d8818204089a021b5 4120
νCommit 171a1e6bdbc8aa96d957a65b3f505517386af06ba265e3f784741f67 2050
νHead 00a8a1475bd29c02c0e3ff02a2fc83607425cd9b94eaa9f2a3056ab1 9185
μHead 16bb32b8df4dfc6cefe5bbaad9174db1b61394bdeaf1b26e83024bf6* 4150
  • 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 4744 11.72 4.63 0.49
2 4952 13.97 5.48 0.52
3 5157 16.43 6.42 0.56
5 5561 21.55 8.39 0.63
10 6588 32.80 12.66 0.80
38 12331 98.50 37.71 1.76

Cost of Commit Transaction

This is using ada-only outputs for better comparability.

UTxO Tx size % max Mem % max CPU Min fee ₳
1 598 12.55 4.94 0.31
2 784 16.34 6.64 0.36
3 975 20.18 8.36 0.42
5 1345 28.28 11.96 0.52
10 2279 50.99 21.85 0.82
18 3776 94.52 40.28 1.37

Cost of CollectCom Transaction

Parties UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
1 57 815 23.39 9.33 0.44
2 114 1136 37.03 14.89 0.61
3 170 1456 53.99 21.80 0.81
4 227 1784 67.09 27.43 0.97
5 281 2095 89.36 36.55 1.23

Cost of Close Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 685 19.06 8.78 0.40
2 907 20.47 10.22 0.43
3 1099 22.52 11.92 0.47
5 1451 24.81 14.28 0.52
10 2420 32.81 21.61 0.68
50 10734 97.22 81.38 1.99

Cost of Contest Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 721 22.92 10.24 0.44
2 960 24.81 11.89 0.48
3 1197 26.75 13.57 0.52
5 1628 30.53 16.83 0.59
10 2588 38.27 23.89 0.75
44 9676 99.49 77.15 1.94

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 5000 21.08 9.13 0.61
2 5440 35.66 15.62 0.79
3 5579 47.49 20.68 0.93
4 6246 74.13 32.77 1.26
5 6799 97.66 43.30 1.55

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 4763 8.68 3.67 0.46
5 1 57 4798 10.11 4.52 0.48
5 5 285 4942 15.30 7.70 0.55
5 10 571 5129 21.55 11.57 0.63
5 20 1138 5490 34.76 19.61 0.81
5 30 1707 5846 47.51 27.45 0.99
5 40 2277 6206 60.49 35.40 1.17
5 50 2846 6569 73.48 43.36 1.35
5 70 3987 7290 99.48 59.28 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 2023-11-08 07:00:03.01321839 UTC

3-nodes Scenario

A rather typical setup, with 3 nodes forming a Hydra head.

Number of nodes 3
Number of txs 900
Avg. Confirmation Time (ms) 71.437442543
P99 220.30838848999997ms
P95 156.33363704999996ms
P50 56.697935ms
Number of Invalid txs 0

Baseline Scenario

This scenario represents a minimal case and as such is a good baseline against which to assess the overhead introduced by more complex setups. There is a single hydra-node d with a single client submitting single input and single output transactions with a constant UTxO set of 1.

Number of nodes 1
Number of txs 300
Avg. Confirmation Time (ms) 8.074057873
P99 20.872797009999996ms
P95 16.16201875ms
P50 6.4754175ms
Number of Invalid txs 0

Copy link

github-actions bot commented Nov 7, 2023

Test Results

363 tests  ±0   358 ✔️ ±0   17m 56s ⏱️ - 1m 43s
122 suites ±0       5 💤 ±0 
    5 files   ±0       0 ±0 

Results for commit 0ae17bb. ± Comparison against base commit 424671d.

♻️ This comment has been updated with latest results.

Copy link
Contributor

@abailly-iohk abailly-iohk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like we are now fetching configurations from remote URL, but then why adding back submodules for testnets? Can't we just do the same, pull the configuration from cardano-world?

@ch1bo
Copy link
Member Author

ch1bo commented Nov 8, 2023

I like we are now fetching configurations from remote URL, but then why adding back submodules for testnets? Can't we just do the same, pull the configuration from cardano-world?

Was not in the mood of doing shell scripting. Maybe I do it in a separate PR?

@ch1bo ch1bo merged commit 6a95190 into master Nov 8, 2023
20 checks passed
@ch1bo ch1bo deleted the fetch-known-network-config branch November 8, 2023 07:26
cardenaso11 pushed a commit to SundaeSwap-finance/hydra that referenced this pull request Nov 29, 2023
…own-network-config

Fetch known network config
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.

None yet

2 participants