v1.0.0
v1.0.0 - 2024-07-1
This is Charon's first major release!
As detailed by our version compatibility, Charon v1.0.0
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.
Migration notes
-
Make sure that your validator client of choice supports
produceBlockV3
, and that you re-enable it by either removing or toggling all the flags we detailed inv0.19.2
release notes:- Lodestar:
--useProduceBlockV3=true
as CLI parameter at startup - Lighthouse:
--produce-block-v3
as CLI parameter at startup - Teku:
--Xblock-v3-enabled=true
as CLI parameter at startup
- Lodestar:
-
If you run Nimbus as a validator client, make sure to pass
--feature-set-enable=json_requests
as CLI parameter tocharon run
at startup -
If you run Teku as a beacon node, add the flag
--validators-graffiti-client-append-format=DISABLED
to it.
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.6.1 | Lighthouse v5.2.11 | Lodestar v1.19.0 | Nimbus v24.5.1 | Prysm PR | Remarks |
---|---|---|---|---|---|---|
Teku v24.6.1 | ✅ | 🟡 | ✅ | ✅ | ✅ | Teku bn needs the --validators-graffiti-client-append-format=DISABLED flag in order to produce blocks properly. |
Lighthouse v5.2.1 | ✅ | 🟡 | ✅ | ✅ | 🟠 | Lighthouse vc are only failing aggregation duties, which are not directly penalised but impact network density at high scale. |
Nimbus v24.5.1 | 🔴 | 🟡 | ✅ | ✅ | ✅ | 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.19.0 | ✅ | 🟡 | ✅ | ✅ | ✅ |
Feature
- integrate new go-eth2-client api #2936 (#2986)
- A deposit file for a single deposit should be backward compatible #2948 (#2940)
- signed/unsigned data marshaling #2917 (#2929)
- Implement Beacon Node Tests #2998 (#3059)
- Implement Peer-to-Peer Connection Tests #2997 (#3039)
- Spike on generic exits #2848 (#2934,#2926)
- Health check for too many metrics #2446 (#2967)
- Implement Network Health Check Skeleton for Charon Cluster #2995 (#3008)
- Add partial deposits support to
charon dkg
command #2889 (#2894) - [CLI] DKG ceremony crash upon existing
validator_keys
folder #2881 (#2958) - add new libp2p metrics to relay #2544 (#3040)
- consensus pipeline #2918 (#2928)
- Add support for produce block v3 endpoint #2749 (#2913,#2885,#2868)
- Add failing registrations as a health check #2760 (#2876)
- Implement POST get validators endpoint #2840 (#2849)
- Add
charon alpha test peers
tests towards self node #3076 (#3052) - Compose fails due to an invalid Lighthouse image #2886 (#2901)
- Expose mev-enabled metric #2879 (#2890)
- cmd: create dkg cli to support partial deposits #2887 (#2887)
- create new cluster lock version v1.8 #2728 (#2839)
Bug
- Ping peer continuously closed channel #3053 (#3054)
- Investigate unknown/unknown arch in the Docker builds #2654 (#2971)
- Handle gracefully DKG requests from banned IP ranges #2897 (#2898)
- data race in p2p package #2784 (#2875)
- Investigate Intermittent Failure in TestSigsExchange Test #3041 (#3042)
- Ensure Exit Message are compliant with EIP-7044 #2981 (#3035)
- Confusing error when running combine multiple times #2538 (#2963)
- MEV rewards sent to addresses configured on the CL + VC, not as specified in Charon's lock file #2770 (#2810)
- create cluster doesn't error when run in same directory #2851 (#2852)
- p2p: fix test-related data race #2763 (#2869)
- Add testnet flags to combine command #2838 (#2856)
Refactor
- Log the ENR pubkey and full lock hash in
app-start
#2778 (#2972) - eth2wrap: fix small tech debt #2704 (#2946)
- Improve track failure reason names #2488 (#3033)
- Promote
eager_dlinear
andconsensus_participate
flags to stable. #3001 (#3022) - Update tests using
rand.Seed
as it is deprecated in go 1.20+ #2831 (#2850) - Use
url.ParseRequestURI
instead ofurl.Parse
where appropriate #2796 (#2832) - Complete
SignedEpoch
JSON migration inv0.19.0
#2593 (#2819) core/aggsigdb
: refactor to remove channel synchronization #1951 (#2950)- Only use promrated for network averages #2843 (#2844)
Test
Misc
- Enable v1.8.0 definition format with charon v1 release #3003 (#3028)
- Use 'latest' docker tag for stable releases only #2359 (#2855)
- Track builder registrations with tracker #2669 (#2877)
- Tag Charon v1.0.0-rc2 #3103 (#3117)
What's Changed
Full Changelog: v0.19.2...v1.0.0
-
sync committee and aggregator duties are not yet supported in a DV setup by Lighthouse, all other duties work as expected. ↩