v1.0.0-rc3 - 2024-06-08
Warning
This is the third release candidate for our first major Charon release! Unless you want to test this rc
, you should wait until a full v1.0.0
is published and announced.
As detailed by our version compatibility, being a major release, Charon v1.0.0-rc1
is not fully-backwards compatible with v0.x.x
releases. Block proposals are not compatible between the versions, so once your cluster begins the upgrade, please upgrade all nodes promptly to ensure readiness for a proposal opportunity should one occur.
Breaking changes
- Full support for beacon spec
produceBlockV3
endpoint has been implemented:DutyProposer
supports now both blinded and unblinded blocks, whileDutyBuilderProposer
has been deprecated.- This means you should remove the extra validator configuration added during previous versions of charon, consult the prior release to see what flags to remove to default to the lastest version of block proposals.
Compatibility Matrix
This matrix details the combination of beacon node + validator clients and their corresponding versions the Obol 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
Consensus 👇 Validator 👉 | Teku v24.4.0 | Lighthouse v5.1.31 | Lodestar v1.18.1 | Nimbus v24.3.0 | Prysm PR | Remarks |
---|---|---|---|---|---|---|
Teku v24.4.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | Teku bn needs the --validators-graffiti-client-append-format=DISABLED flag in order to produce blocks properly.
|
Lighthouse v5.1.3 | ✅ | 🟡 | ✅ | ✅ | 🟠 | Lighthouse vc are only failing aggregation duties, which are not directly penalised but impact network density at high scale.
|
Nimbus v24.3.0 | 🔴 | 🟡 | ✅ | ✅ | ✅ | Nimbus beacon nodes requires that you add the following flag to charon run: charon run --feature-set-enable=json_requests
|
Prysm v5.0.3 | ✅ | 🟡 | ✅ | ✅ | ✅ | Prysm validator needs a particular pull request merged and released for aggregation duties to succeed.
|
Lodestar v1.18.1 | ✅ | 🟡 | ✅ | ✅ | ✅ |
What's Changed
- build(deps): Bump github.com/quic-go/quic-go from 0.37.6 to 0.37.7 by @dependabot in #2779
- app/version: bump version to v0.20-dev by @gsora in #2774
- build(deps): Bump github.com/multiformats/go-multiaddr from 0.12.0 to 0.12.1 by @dependabot in #2780
- build(deps): Bump golang.org/x/crypto from 0.17.0 to 0.18.0 by @dependabot in #2777
- docs: fix docs from small prs by @xenowits in #2785
- core: removed leadercast leftovers by @pinebit in #2782
- core: addressed some panic instances by @pinebit in #2783
- build(deps): Bump golang.org/x/tools from 0.16.1 to 0.17.0 by @dependabot in #2786
- build(deps): Bump github.com/herumi/bls-eth-go-binary from 1.32.1 to 1.33.0 by @dependabot in #2773
- core/validatorapi: correct error return by @dB2510 in #2788
- *: revert Herumi to v1.32.1 by @gsora in #2790
- core: checking keymanager address by @pinebit in #2795
- build(deps): Bump github.com/attestantio/go-eth2-client from 0.19.8 to 0.19.9 by @dependabot in #2799
- build(deps): Bump go.opentelemetry.io/otel/sdk from 1.21.0 to 1.22.0 by @dependabot in #2805
- build(deps): Bump go.opentelemetry.io/otel/exporters/stdout/stdouttrace from 1.21.0 to 1.22.0 by @dependabot in #2802
- core: fixing DutyDB Store function by @pinebit in #2800
- core: removed unused allowlist and denylist flags by @pinebit in #2801
- dkg: strengthen logic for steps update by @pinebit in #2797
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.46.1 to 0.47.0 by @dependabot in #2807
- dkg/bcast: exchange full messages by @gsora in #2798
- cmd: don't bind debug endpoints by default by @gsora in #2808
- app: eth2wrap best selector refactoring by @pinebit in #2806
- core: remove unimportant todos by @xenowits in #2809
- cmd: fixing builder registration timestamp by @pinebit in #2810
- build(deps): Bump github.com/attestantio/go-eth2-client from 0.19.9 to 0.19.10 by @dependabot in #2811
- *: more warnings on HTTP URLs by @gsora in #2813
- gomod: update Herumi BLS to v1.33.0 by @gsora in #2814
- testutil: fixed promrated.go by @pinebit in #2815
- cmd: add secondary charon relay by @xenowits in #2816
- github/workflows: fuzz tests on nightly by @gsora in #2818
- eth2util: remove legacy signed epoch by @dB2510 in #2819
- cmd/relay: bind debug and monitoring address separately by @gsora in #2817
- build(deps): Bump github.com/bufbuild/buf from 1.28.1 to 1.29.0 by @dependabot in #2829
- p2p: fixed flakey TestWithSendTimeout by @pinebit in #2830
- build(deps): Bump github.com/multiformats/go-multiaddr from 0.12.1 to 0.12.2 by @dependabot in #2833
- eth2util: new deposit message with amount by @pinebit in #2822
- core: using
url.ParseRequestURI
by @pinebit in #2832 - cmd: --deposit-amounts flag by @pinebit in #2820
- cluster: definition v1.8 by @pinebit in #2823
- core: updated the current year to 2024 by @pinebit in #2836
- cluster: partial deposits output by @pinebit in #2839
- testutil/promrated: update promrated querying by @LukeHackett12 in #2844
- cmd: fix create cluster bug by @xenowits in #2852
- validatorapi: supporting getValidators with post by @pinebit in #2849
- validatorapi: fixing failing tests by @pinebit in #2857
- testutil: replace math/rand deprecation by @KaloyanTanev in #2850
- workflows: tag latest on git tags by @gsora in #2855
- cmd/combine: support testnet config by @gsora in #2856
- build(deps): Bump go.opentelemetry.io/otel from 1.22.0 to 1.23.0 by @dependabot in #2861
- build(deps): Bump go.opentelemetry.io/otel/sdk from 1.22.0 to 1.23.0 by @dependabot in #2860
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.47.0 to 0.48.0 by @dependabot in #2865
- build(deps): Bump go.opentelemetry.io/otel/exporters/stdout/stdouttrace from 1.22.0 to 1.23.1 by @dependabot in #2867
- core/validatorapi: handle HTTP methods by @gsora in #2866
- core/validatorapi: return 404 for propose block v3 by @dB2510 in #2868
- *: fix flappy tests by @gsora in #2869
- core/validatorapi: use go-eth2-client versioning by @dB2510 in #2871
- build(deps): Bump golang.org/x/term from 0.16.0 to 0.17.0 by @dependabot in #2874
- build(deps): Bump golang.org/x/crypto from 0.18.0 to 0.19.0 by @dependabot in #2873
- app/health:
high_registration_failures_rate
check by @pinebit in #2876 - p2p: fix data race in test by @gsora in #2875
- core: revert wire recaster component changes by @dB2510 in #2877
- build(deps): Bump golang.org/x/tools from 0.17.0 to 0.18.0 by @dependabot in #2880
- cmd: create dkg cli to support partial deposits by @pinebit in #2887
- core/validatorapi: propose block v3 by @pinebit in #2885
- build(deps): Bump github.com/prometheus/client_model from 0.5.0 to 0.6.0 by @dependabot in #2891
- app/peerinfo: added builder_api_enabled metric by @pinebit in #2890
- core/validatorapi: fix flappy test by @gsora in #2893
- build(deps): Bump go.uber.org/zap from 1.26.0 to 1.27.0 by @dependabot in #2895
- dkg/sync: increase by max 2 steps by @gsora in #2878
- dkg: fixing timings in test by @pinebit in #2902
- testutil/compose: supporting arm64 by @pinebit in #2901
- cmd: remove todos by @xenowits in #2899
- dkg: remove todos by @xenowits in #2900
- app: remove todos by @xenowits in #2903
- build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.48.0 to 0.49.0 by @dependabot in #2904
- build(deps): Bump go.opentelemetry.io/otel/exporters/stdout/stdouttrace from 1.23.1 to 1.24.0 by @dependabot in #2905
- *: add Makefile by @gsora in #2896
- cluster: handle definition download error by @gsora in #2898
- dkg: partial deposits enabled by @pinebit in #2894
- build(deps): Bump golang.org/x/crypto from 0.19.0 to 0.20.0 by @dependabot in #2910
- testutil: remove todos by @xenowits in #2911
- p2p: remove todos by @xenowits in #2914
- cluster: remove todos by @xenowits in #2915
- app/obolapi: add exit endpoints by @gsora in #2926
- *: bumped golangci-lint by @pinebit in #2927
- core: integrating go-eth2-client for for v3 endpoint by @pinebit in #2913
- build(deps): Bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 by @dependabot in #2924
- build(deps): Bump github.com/rs/zerolog from 1.29.1 to 1.32.0 by @dependabot in #2931
- build(deps): Bump github.com/stretchr/testify from 1.8.4 to 1.9.0 by @dependabot in #2930
- core: universalproposal implements signeddata by @pinebit in #2929
- testutil/validatormock: supporting universal proposal by @pinebit in #2928
- *: revert new v3 endpoint work by @pinebit in #2939
- *: bumped go version by @pinebit in #2947
- codecov: ignore tests and testutil by @gsora in #2935
- app/z: fields refactoring by @pinebit in #2946
- eth2util/deposit: use legacy filename for 32ETH deposit by @pinebit in #2940
- build(deps): Bump golang.org/x/tools from 0.18.0 to 0.19.0 by @dependabot in #2942
- *: partial deposits bugfixes by @pinebit in #2951
- build(deps): Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 by @dependabot in #2949
- testutil/compose: custom timeout for fuzzer by @gsora in #2952
- cluster: fixed partial amounts hashing by @pinebit in #2953
- core: remove todo by @xenowits in #2957
- testutil/compose: fixed smoke dkg test by @pinebit in #2965
- core/aggsigdb: refactor MemDB by @gsora in #2950
- cluster: unique validator_keys dir by @pinebit in #2958
- cmd/combine: fix multiple runs by @gsora in #2963
- app/health: app_health_metrics_high_cardinality by @pinebit in #2967
- *: version compatibility notes by @gsora in #2966
- workflows: avoid unknown/unknown architecture in ghcr by @KaloyanTanev in #2971
- app: logging lock hash and enr by @pinebit in #2972
- docs: update architecture doc by @xenowits in #2985
- workflows: add QEMU for arm64 builds by @KaloyanTanev in #2980
- build(deps): Bump github.com/bufbuild/buf from 1.29.0 to 1.30.0 by @dependabot in #2955
- build(deps): Bump github.com/herumi/bls-eth-go-binary from 1.33.0 to 1.34.1 by @dependabot in #2989
- docs: fix typos by @xiaoxianBoy in #2988
- *: downgrade herumi BLS to v1.33.0 by @gsora in #2991
- cmd: add exit commands by @gsora in #2934
- cmd: update copy by @OisinKyne in #3006
- build(deps): Bump github.com/herumi/bls-eth-go-binary from 1.33.0 to 1.34.2 by @dependabot in #3011
- build(deps): Bump github.com/docker/docker from 25.0.0+incompatible to 25.0.5+incompatible by @dependabot in #2984
- build(deps): Bump github.com/multiformats/go-multiaddr from 0.12.2 to 0.12.3 by @dependabot in #3005
- build(deps): Bump github.com/decred/dcrd/dcrec/secp256k1/v4 from 4.2.0 to 4.3.0 by @dependabot in #3009
- *: update libp2p to version v0.33.2 by @gsora in #3017
- build(deps): Bump golang.org/x/sync from 0.6.0 to 0.7.0 by @dependabot in #3018
- build(deps): Bump github.com/prometheus/client_model from 0.6.0 to 0.6.1 by @dependabot in #3020
- cmd: charon alpha test skeleton by @KaloyanTanev in #3008
- build(deps): Bump golang.org/x/term from 0.18.0 to 0.19.0 by @dependabot in #3021
- app/featureset: stabilise more features by @gsora in #3022
- cluster: v1.8 is the default version by @pinebit in #3028
- *: fix semver link in README by @gsora in #3029
- build(deps): Bump golang.org/x/tools from 0.19.0 to 0.20.0 by @dependabot in #3023
- build(deps): Bump github.com/pelletier/go-toml/v2 from 2.1.0 to 2.2.0 by @dependabot in #3032
- build(deps): Bump github.com/herumi/bls-eth-go-binary from 1.34.2 to 1.35.0 by @dependabot in #3037
- app/eth2wrap: sign domain for
VOLUNTARY_EXIT
by @gsora in #3035 - *: update opentelemetry v1.25.0 by @gsora in #3036
- core/tracker: improved reasons wording by @pinebit in #3033
- build(deps): Bump github.com/pelletier/go-toml/v2 from 2.2.0 to 2.2.1 by @dependabot in #3038
- cmd/relay: enabled new libp2p relay metrics by @pinebit in #3040
- testutil: disable TCP port reuse by @gsora in #3042
- cmd: alpha test peers tests by @KaloyanTanev in #3039
- cmd: exit beacon node custom timeout by @gsora in #3045
- *:
govulncheck
v1.1.0, Go v1.22.2 by @gsora in #3056 - workflows: use self-hosted runners by @gsora in #3058
- cmd: proper exit Capella domain handling by @gsora in #3055
- cmd: exit UX tweak by @gsora in #3057
- *: update protoc-gen-go to v1.34.0 by @gsora in #3060
- dkg: increase test timeout for
TestSigsExchange
by @gsora in #3061 - build(deps): Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.50.0 to 0.51.0 by @dependabot in #3047
- build(deps): Bump go.opentelemetry.io/otel/exporters/stdout/stdouttrace from 1.25.0 to 1.26.0 by @dependabot in #3048
- build(deps): Bump github.com/bufbuild/buf from 1.30.0 to 1.31.0 by @dependabot in #3049
- cmd: move ctx check before writing to channel by @KaloyanTanev in #3054
- *: integrating go-eth2-client@v0.21.1 by @pinebit in #2986
- core/validatorapi: relax
SlotFromTimestamp
checks by @gsora in #3066 - cmd: alpha test beacon by @KaloyanTanev in #3059
- build(deps): Bump github.com/pelletier/go-toml/v2 from 2.2.1 to 2.2.2 by @dependabot in #3063
- build(deps): Bump google.golang.org/protobuf from 1.33.0 to 1.34.1 by @dependabot in #3068
- build(deps): Bump golang.org/x/term from 0.19.0 to 0.20.0 by @dependabot in #3069
- build(deps): Bump golang.org/x/crypto from 0.22.0 to 0.23.0 by @dependabot in #3070
- build(deps): Bump golang.org/x/tools from 0.20.0 to 0.21.0 by @dependabot in #3072
- *: bump go version to 1.22.3 by @KaloyanTanev in #3074
- cmd: alpha test peers tests self by @KaloyanTanev in #3052
- app/version: v1.0-dev by @gsora in #3077
- *: cherrypick for v1.0-rc2 by @KaloyanTanev in #3117
- *: cherrypick for v1.0-rc3 by @gsora in #3125
New Contributors
- @xiaoxianBoy made their first contribution in #2988
Full Changelog: v0.19.2...v1.0.0-rc3
sync committee and aggregator duties are not yet supported in a DV setup by Lighthouse, all other duties work as expected.Footnotes
Full Changelog: v0.19.2..v1.0.0-rc1 ↩