cardano-scaling / hydra

Implementation of the Hydra Head protocol
https://hydra.family/head-protocol/
Apache License 2.0
281 stars 86 forks source link

Fix binaries artifact names when built on tags #1569

Closed ch1bo closed 2 months ago

ch1bo commented 2 months ago

Our binaries workflow builds artifacts for linux and macos of our main executables.

On tags, it should produce artifacts named hydra-<arch>-<os>-<version>.zip or otherwise the tutorial instructions do not work. Also, we would like to have clean artifacts to be included in release notes.

Problem

For some reason the git describe was reporting a version x commits ahead of the previous release, instead of just the name of the latest tag.

We faced this issue in the last couple of releases:

During our 0.17.0 release we notice our pipelines where producing wrong artifacts: 🚫 master: https://github.com/input-output-hk/hydra/actions/runs/9157524020 ✅ release: https://github.com/input-output-hk/hydra/actions/runs/9157528381 🚫 tag: https://github.com/input-output-hk/hydra/actions/runs/9157529422

https://github.com/input-output-hk/hydra/actions/runs/8539230275 While github.ref resolves to refs/tags/0.16.0 here, the result seems to be ##[debug]VERSION='0.15.0-513-g4e1e1ed67': https://github.com/input-output-hk/hydra/actions/runs/8539230275/job/23399638368#step:5:81

Solution

:detective: Fixes version determination by refetching tags before calling git describe.

:detective: Runs binaries workflow not on every push, but only on PRs, important branches and obviously tags.

Fixed workflow on a temporary 0.0.0-test tag: https://github.com/cardano-scaling/hydra/actions/runs/10417337202

image


noonio commented 2 months ago

Related issue: https://github.com/actions/checkout/issues/1781

github-actions[bot] commented 2 months ago

Transaction 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-08-16 09:21:13.783122461 UTC
Max. memory units 14000000
Max. CPU units 10000000000
Max. tx size (kB) 16384

Script summary

Name Hash Size (Bytes)
νInitial 2fac819a1f4f14e29639d1414220d2a18b6abd6b8e444d88d0dda8ff 3799
νCommit 2043a9f1a685bcf491413a5f139ee42e335157c8c6bc8d9e4018669d 1743
νHead bd9fad235c871fb7f837c767593018a84be3083ff80f9dab5f1c55f9 10194
μHead c8038945816586c4d38926ee63bba67821eb863794220ebbd0bf79ee* 4607
Parties Tx size % max Mem % max CPU Min fee ₳
1 5188 5.75 2.27 0.44
2 5390 7.31 2.90 0.47
3 5590 8.41 3.32 0.49
5 5997 11.12 4.39 0.54
10 6999 18.11 7.16 0.66
56 16251 81.43 32.21 1.76

Commit transaction costs

This uses ada-only outputs for better comparability.

UTxO Tx size % max Mem % max CPU Min fee ₳
1 559 10.52 4.15 0.29
2 749 13.86 5.65 0.34
3 931 17.33 7.20 0.38
5 1313 24.65 10.44 0.48
10 2244 45.22 19.36 0.75
20 4112 95.99 40.76 1.40

CollectCom transaction costs

Parties UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
1 57 549 21.46 8.41 0.41
2 113 659 32.28 12.81 0.53
3 170 769 44.06 17.68 0.67
4 227 883 61.25 24.66 0.86
5 284 989 74.63 30.40 1.02
6 337 1100 98.02 39.89 1.28

Cost of Decrement Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 645 17.96 7.89 0.38
2 717 17.84 8.52 0.39
3 950 21.51 10.72 0.44
5 1250 25.35 13.66 0.51
10 2109 35.17 21.09 0.68
50 8040 99.67 75.28 1.85

Close transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 596 20.60 9.07 0.41
2 795 22.45 10.82 0.44
3 969 24.37 12.57 0.48
5 1300 27.58 15.67 0.54
10 1962 34.77 22.62 0.68
49 7570 96.33 80.86 1.84

Contest transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 684 27.14 11.68 0.48
2 801 28.90 13.16 0.51
3 1013 31.17 15.07 0.56
5 1251 34.65 18.04 0.62
10 1982 43.90 25.96 0.78
39 6407 99.16 73.57 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 5060 17.51 7.61 0.57
2 5261 29.34 12.95 0.71
3 5267 37.68 16.47 0.81
4 5355 48.39 21.14 0.93
5 5595 76.11 33.80 1.26
6 5702 95.28 42.41 1.48

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 ₳
5 0 0 5022 7.75 3.28 0.46
5 1 57 5057 9.08 4.08 0.48
5 5 285 5193 13.60 6.92 0.54
5 10 570 5363 19.26 10.48 0.62
5 20 1139 5702 30.58 17.60 0.78
5 30 1706 6040 41.70 24.63 0.93
5 40 2278 6382 53.32 31.88 1.09
5 50 2848 6722 64.37 38.89 1.25
5 80 4547 7732 98.59 60.38 1.72

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-08-16 09:23:45.356697522 UTC

Baseline Scenario

Number of nodes 1
Number of txs 3000
Avg. Confirmation Time (ms) 3.699505904
P99 5.306795339999994ms
P95 4.28012355ms
P50 3.5933285ms
Number of Invalid txs 0

Three local nodes

Number of nodes 3
Number of txs 9000
Avg. Confirmation Time (ms) 22.426702661
P99 104.63565033000005ms
P95 30.429388299999975ms
P50 19.930383ms
Number of Invalid txs 0