v1.2.0 - 2024-12-09
This is a non-urgent, feature pre-release. This release introduces improved charon exit
command - now it is possible to sign exits for all validators in a cluster with a single command. It also greatly improves the UX, number of tests and overall stability of the charon alpha test
commands. Feedback is welcome and appreciated.
Feature
Charon test command
- Add cluster lock and definition files to test peers #3368
- Beacon node simulation #3361
- General UX #3370, #3390
- Create real blocks with MEV test #3378
- Version check on beacon tests #3379
- Rename test performance to test infra #3380
- Output file improvements #3384
- Custom number of validators for beacon node simulation #3385
- Change data-dir flag to private-key-file flag for test peers #3393
Charon exits
- Initial refactor #3248
- Add --all flag #3272
- Broadcast all exits #3288
- Fetch all exits #3291
- Enable exit all #3296
- Add custom testnet flags (to enable kurtosis testing) #3317
- Improve logging and error handling #3347
- Increase default Obol API timeout #3353
Test
Misc
- Log leader index #3334
- Add third Charon relay #3227
- Fix promrated network overview stats #3234
- Harden threshold parameter checks #3242, #3297
- Dependabot to bump only patch versions for our BLS library #3352
- Optimize Dockerfile #3281, #3389
- Create automate PR for release #3310
- Use minor versions in pipelines #3321
- Fix trigger-dispatch for release #3351, #3381
- Launchpad link broken #3231
- Docs typos #3236, #3367, #3369
Compatibility Matrix
This release of Charon is backwards compatible with Charon v1.0, v1.1.
The below matrix details a combination of beacon node (consensus layer) + validator clients and their corresponding versions the DV Labs team have tested with this Charon release. More validator and consensus client will be added to this list as they are supported in our automated testing framework.
Legend
- ✅: All duties succeed in testing
- 🟡: All duties succeed in testing, except non-penalised aggregation duties
- 🟠: Duties may fail for this combination
- 🔴: One or more duties fails consistently
Validator 👉 Consensus 👇 | Teku v24.10.3 | Lighthouse v5.3.0 | Lodestar v1.23.0 | Nimbus v24.10.0 | Prysm v5.1.2 | Remarks |
---|---|---|---|---|---|---|
Teku v24.10.3 | ✅ | 🟡 | ✅ | ✅ | 🟠 | Teku beacon node needs the --validators-graffiti-client-append-format=DISABLED flag in order to produce blocks properly. Teku validator client is only failing aggregation duties 50% of the time, which are not directly penalised but impact network density at high scale. |
Lighthouse v5.3.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | Lighthouse validator client is only failing aggregation duties, which are not directly penalised but impact network density at high scale. |
Lodestar v1.23.0 | ✅ | 🟡 | ✅ | ✅ | 🟠 | |
Nimbus v24.10.0 | ✅ | 🟡 | ✅ | ✅ | 🟠 | |
Prysm v5.1.2 | ✅ | 🟡 | ✅ | ✅ | ✅ | Prysm validator client is failing aggregation duties 50% of the time, which are not directly penalised but impact network density at high scale. In some combinations rare failures of attestation and proposal duties were observed (0-2% per epoch). |
Full Changelog: v1.1.2..v1.2.0-rc3
What's Changed
- add third relay in p2p-relays (#3227)
- build(deps): Bump github.com/attestantio/go-eth2-client from 0.21.9 to 0.21.10 (#3214)
- testutil/promrated: fixing promrated network overview stats (#3234)
- docs: launchpad link is broken (#3231)
- build(deps): Bump golang.org/x/sync from 0.7.0 to 0.8.0 (#3217)
- build(deps): Bump github.com/docker/docker from 27.1.0+incompatible to 27.1.1+incompatible (#3232)
- build(deps): Bump golang.org/x/time from 0.5.0 to 0.6.0 (#3216)
- build(deps): Bump golang.org/x/crypto from 0.25.0 to 0.26.0 (#3219)
- *: bump linter to v1.60.3 (#3247)
- build(deps): Bump sigp/lighthouse from v5.2.1 to v5.3.0 in /testutil/compose/static/lighthouse (#3223)
- build(deps): Bump chainsafe/lodestar from v1.20.2 to v1.21.0 in /testutil/compose/static/lodestar (#3225)
- cmd: refactor exits (#3248)
- build(deps): Bump github.com/pelletier/go-toml/v2 from 2.2.2 to 2.2.3 (#3254)
- build(deps): Bump github.com/showwin/speedtest-go from 1.7.8 to 1.7.9 (#3255)
- *: bump golang to 1.23.1 (#3261)
- build(deps): Bump github.com/herumi/bls-eth-go-binary from 1.35.0 to 1.36.1 (#3256)
- cmd: hardening threshold parameter checks (#3242)
- build(deps): Bump github.com/prometheus/client_golang from 1.19.1 to 1.20.3 (#3258)
- workflows: bump govulncheck to v1.1.3 (#3262)
- build(deps): Bump golang.org/x/crypto from 0.26.0 to 0.27.0 (#3265)
- build(deps): Bump go.opentelemetry.io/otel/trace from 1.28.0 to 1.29.0 (#3252)
- build(deps): Bump go.opentelemetry.io/otel/exporters/stdout/stdouttrace from 1.28.0 to 1.29.0 (#3263)
- build(deps): Bump github.com/ferranbt/fastssz from 0.1.3 to 0.1.4 (#3264)
- build(deps): Bump golang.org/x/tools from 0.23.0 to 0.25.0 (#3270)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.53.0 to 0.54.0 (#3271)
- build(deps): Bump go.opentelemetry.io/otel from 1.29.0 to 1.30.0 (#3274)
- build(deps): Bump go.opentelemetry.io/otel/exporters/stdout/stdouttrace from 1.29.0 to 1.30.0 (#3275)
- *: add --all for exit sign command (#3272)
- docs: fix typos (#3236)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.54.0 to 0.55.0 (#3284)
- build(deps): Bump github.com/prometheus/client_golang from 1.20.3 to 1.20.4 (#3289)
- *: disable intrange linter (#3282)
- cmd: broadcast all exits (#3288)
- cmd: fetch all exits (#3291)
- build(deps): Bump chainsafe/lodestar from v1.21.0 to v1.22.0 in /testutil/compose/static/lodestar (#3293)
- build(deps): Bump attestant/vouch from 1.8.2 to 1.9.0 in /testutil/compose/static/vouch (#3294)
- dkg: fixed TestSyncFlow (#3309)
- cmd: move threshold check to CLI level (#3297)
- cmd: enable exit all (#3296)
- build(deps): Bump go.uber.org/automaxprocs from 1.5.3 to 1.6.0 (#3300)
- test: fix test performance flaky test (#3316)
- *: create automate pr for release (#3310)
- build(deps): Bump golang from 1.23.1-alpine to 1.23.2-alpine in /testutil/promrated (#3315)
- testutil: fixed smoke test (#3332)
- build(deps): Bump golang.org/x/tools from 0.25.0 to 0.26.0 (#3333)
- build(deps): Bump golang.org/x/time from 0.6.0 to 0.7.0 (#3322)
- build(deps): Bump golang from 1.23.1-bookworm to 1.23.2-bookworm (#3314)
- build(deps): Bump go.opentelemetry.io/otel from 1.30.0 to 1.31.0 (#3339)
- build(deps): Bump go.opentelemetry.io/otel/exporters/stdout/stdouttrace from 1.30.0 to 1.31.0 (#3337)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.55.0 to 0.56.0 (#3338)
- *: optimize Dockerfile (#3281)
- github: use minor go versions in pipelines (#3321)
- exit: add custom testnet flags for exits (#3317)
- build(deps): Bump github.com/prometheus/client_golang from 1.20.4 to 1.20.5 (#3340)
- *: bump golangci-lint to v1.61.0 (#3348)
- *: improve logging and error handling for exits (#3347)
- build(deps): Bump github.com/multiformats/go-multiaddr from 0.13.0 to 0.14.0 (#3356)
- cmd: increase Obol API timeout for exits (#3353)
- *: add needs to trigger (#3351)
- github: bump only patch versions for bls library (#3352)
- build(deps): Bump golang from 1.23.2-bookworm to 1.23.3-bookworm (#3359)
- build(deps): Bump golang from 1.23.2-alpine to 1.23.3-alpine in /testutil/promrated (#3360)
- build(deps): Bump golang.org/x/sync from 0.8.0 to 0.9.0 (#3362)
- build(deps): Bump golang.org/x/time from 0.7.0 to 0.8.0 (#3363)
- docs: fix typos in documentation files (#3364)
- build(deps): Bump golang.org/x/crypto from 0.28.0 to 0.29.0 (#3366)
- docs: fix typos and improve clarity in documentation files (#3367)
- cmd: add cluster lock and cluster definition to test peers (#3368)
- cmd: beacon node simulation (#3361)
- build(deps): Bump go.opentelemetry.io/otel/trace from 1.31.0 to 1.32.0 (#3375)
- build(deps): Bump golang.org/x/tools from 0.26.0 to 0.27.0 (#3373)
- build(deps): Bump go.opentelemetry.io/otel/sdk from 1.31.0 to 1.32.0 (#3371)
- build(deps): Bump chainsafe/lodestar from v1.22.0 to v1.23.0 in /testutil/compose/static/lodestar (#3376)
- docs: typo in README.md (#3369)
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.56.0 to 0.57.0 (#3372)
- cmd: test command UX (#3370)
- build(deps): Bump go.opentelemetry.io/otel/exporters/stdout/stdouttrace from 1.31.0 to 1.32.0 (#3374)
- cmd: charon test mev create block tests (#3378)
- cmd: add version check to beacon node tests (#3379)
- cmd: rename test performance to test infra command (#3380)
- *: fix trigger dispatch repo (#3381)
- build(deps): Bump google.golang.org/protobuf from 1.34.2 to 1.35.2 (#3382)
- cmd: test command file output improvements (#3384)
- cmd: add custom number of validators beacon simulation test (#3385)
- *: bump go to 1.23 (#3250)
- core/consensus: logging leader index (#3334)
- *: removing mutable config (#3307)
- *: bumped protoc-gen-go (#3331)
- *: bump linter v1.62 (#3387)
- Dockerfile: add back chown (#3389)
- cmd: test command flags update (#3390)
- build(deps): Bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#3391)
- cmd: use private key file flag, instead of data dir flag