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

ghc: 928 -> 962 #1105

Merged
merged 2 commits into from
Oct 18, 2023
Merged

ghc: 928 -> 962 #1105

merged 2 commits into from
Oct 18, 2023

Conversation

locallycompact
Copy link
Contributor

No description provided.

@github-actions
Copy link

github-actions bot commented Oct 9, 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-10-17 19:44:58.448827133 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 4743 11.88 4.70 0.49
2 4946 13.97 5.48 0.52
3 5154 16.52 6.46 0.56
5 5563 21.15 8.22 0.63
10 6586 32.89 12.70 0.80
38 12330 98.60 37.75 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 599 12.55 4.94 0.31
2 784 16.25 6.61 0.36
3 971 20.18 8.36 0.42
5 1345 28.28 11.96 0.52
10 2284 50.99 21.85 0.82
18 3777 94.52 40.28 1.37

Cost of CollectCom Transaction

Parties UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
1 57 814 24.12 9.60 0.45
2 114 1135 36.37 14.65 0.60
3 170 1455 50.72 20.61 0.77
4 226 1775 69.34 28.25 0.99
5 284 2098 85.38 35.10 1.19

Cost of Close Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 621 17.05 7.36 0.37
2 910 20.43 10.22 0.43
3 840 19.02 8.30 0.40
5 1550 25.58 14.93 0.53
10 2674 33.72 22.52 0.70
50 10806 97.78 81.75 2.01

Cost of Contest Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 722 22.97 10.26 0.44
2 910 24.53 11.67 0.47
3 1169 26.41 13.41 0.51
5 1569 30.46 16.75 0.59
10 2651 39.54 24.59 0.76
44 9560 98.98 76.84 1.92

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 4998 21.08 9.13 0.61
2 5441 35.62 15.61 0.79
3 5955 53.19 23.48 1.01
4 6289 73.91 32.68 1.26
5 6200 83.89 36.67 1.37

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 4762 8.81 3.73 0.46
5 1 57 4802 9.75 4.37 0.47
5 5 284 4945 15.16 7.64 0.55
5 10 569 5126 21.55 11.57 0.63
5 20 1138 5488 34.53 19.51 0.81
5 30 1709 5848 47.74 27.55 0.99
5 40 2274 6199 60.72 35.50 1.17
5 50 2845 6561 73.71 43.45 1.35
5 70 3983 7282 99.71 59.37 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-10-17 19:35:28.928553509 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) 91.688219333
P99 227.96036427999996ms
P95 178.82366279999994ms
P50 80.646117ms
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) 12.006941950
P99 46.014203089999995ms
P95 30.745742200000006ms
P50 8.6013195ms
Number of Invalid txs 0

@locallycompact locallycompact changed the title ghc: 928 -> 962 ghc: 928 -> 963 Oct 10, 2023
@locallycompact locallycompact changed the title ghc: 928 -> 963 ghc: 928 -> 962 Oct 10, 2023
@github-actions
Copy link

github-actions bot commented Oct 11, 2023

Test Results

355 tests  ±0   350 ✔️ ±0   17m 25s ⏱️ +50s
120 suites ±0       5 💤 ±0 
    5 files    - 1       0 ±0 

Results for commit b0b72b8. ± Comparison against base commit ba04f39.

♻️ This comment has been updated with latest results.

@abailly-iohk
Copy link
Contributor

Got this error trying to compile the branch

[2 of 4] Compiling Hydra.TUISpec    ( test/Hydra/TUISpec.hs, /Users/arnaudbailly/projects/hydra/dist-newstyle/build/aarch64-osx/ghc-9.6.2/hydra-tui-0.14.0/t/tests/build/tests/tests-tmp/Hydra/TUISpec.o )

test/Hydra/TUISpec.hs:274:15: error: [GHC-83865]
    • Couldn't match expected type: unix-2.8.1.0:System.Posix.IO.Common.OpenFileFlags
                                    -> IO base-4.18.0.0:System.Posix.Types.Fd
                  with actual type: IO base-4.18.0.0:System.Posix.Types.Fd
    • The function ‘openFd’ is applied to four value arguments,
        but its type ‘FilePath
                      -> OpenMode
                      -> unix-2.8.1.0:System.Posix.IO.Common.OpenFileFlags
                      -> IO base-4.18.0.0:System.Posix.Types.Fd’
        has only three
      In a stmt of a 'do' block:
        nullFd <- openFd "/dev/null" WriteOnly Nothing defaultFileFlags
      In the expression:
        do input <- inputForConfig defaultConfig
           as <- newIORef initialAssumedState
           nullFd <- openFd "/dev/null" WriteOnly Nothing defaultFileFlags
           realOut <- outputForConfig
                        $ defaultConfig {outputFd = Just nullFd, termName = Just "xterm"}
           ....
    |
274 |     nullFd <- openFd "/dev/null" WriteOnly Nothing defaultFileFlags
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

test/Hydra/TUISpec.hs:274:44: error: [GHC-83865]
    • Couldn't match expected type ‘unix-2.8.1.0:System.Posix.IO.Common.OpenFileFlags’
                  with actual type ‘Maybe a0’
    • In the third argument of ‘openFd’, namely ‘Nothing’
      In a stmt of a 'do' block:
        nullFd <- openFd "/dev/null" WriteOnly Nothing defaultFileFlags
      In the expression:
        do input <- inputForConfig defaultConfig
           as <- newIORef initialAssumedState
           nullFd <- openFd "/dev/null" WriteOnly Nothing defaultFileFlags
           realOut <- outputForConfig
                        $ defaultConfig {outputFd = Just nullFd, termName = Just "xterm"}
           ....
    |
274 |     nullFd <- openFd "/dev/null" WriteOnly Nothing defaultFileFlags
    |                                            ^^^^^^^

@abailly-iohk
Copy link
Contributor

Awesome @locallycompact ! Great you finally made it green 🎉

@locallycompact locallycompact merged commit d700a98 into master Oct 18, 2023
18 checks passed
@locallycompact locallycompact deleted the ghc96 branch October 18, 2023 08:08
abailly-iohk added a commit that referenced this pull request Oct 19, 2023
This reverts commit d700a98, reversing
changes made to ba04f39.
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.

2 participants