Releases: ObolNetwork/charon
v1.6.0
v1.6.0 - 2025-08-27
This is Charon's v1.6.0
release. Feedback is welcome and appreciated, please use github issues or discord if you have trouble with this release.
Read the rest of the release notes for more:
Full Changelog: v1.5.2..v1.6.0
Notable features
This release ships with opt-in support for the QUIC transport protocol. QUIC aims to improve performance in large, distant clusters. This may become a default feature in future versions once proven stable and well-incorporated across our stack.
To enable this feature, make the following additions:
- Add
https://4.relay.obol.dev/
to your obol relay list, e.g.CHARON_P2P_RELAYS:-https://0.relay.obol.tech,https://2.relay.obol.dev,https://1.relay.obol.tech,https://4.relay.obol.dev/
- Add
CHARON_FEATURESET_ENABLE=quic
as an env variable - Add
CHARON_P2P_QUIC_ADDRESS=0.0.0.0:3610
as an env variable - Allow UDP traffic on your port 3610. If you're using our docker-compose examples, your ports section should be like
ports: - ${CHARON_PORT_P2P_TCP:-3610}:3610/tcp # P2P TCP libp2p - ${CHARON_PORT_P2P_QUIC:-3610}:3610/udp # P2P QUIC libp2p
This release also introduces new ways of modifying existing cluster which are still in alpha
version and are not recommended for Mainnet usage:
addvalidator
command which adds N validators to an existing cluster. This requires a new deposit for newly added validators.node_merge.sh
script which helps combining validator keys and configuration for single pair of nodes by merging two nodes' folders.cluster_merge.sh
script which helps expand an existing cluster with new validators by merging two existing clusters, given the same operators set and cluster configuration.
Feature
- Launchpad link per network (#3886)
charon --split-existing-keys
support multiple formats (#3872)- cluster-lock merge script (#3847)
- Support deleting partial exits (#3838)
- Add
add-validators
command (#3857) - Replace go-eth2-client with in-house solution (#3862)
- Put QUIC behind a feature flag (#3814)
- Add zipped flag to DKG (#3903)
- Add hostname verification (#3901)
Bug
- Invalid UUIDs are generated (#3887)
- Memory leak under attestation_inclusion feature flag (#3867)
- Increased duty timeout margin (#3800)
- Set content type in alpha test (#3808)
- Fixed vapi monitoring code (#3812)
- Fix attestation committee index (#3820)
- Remove fulu from fork schedule (#3822)
- Add missing encoding types (#3853)
- Fix flaky test (#3888)
Refactor
- Added sse_head_delay buckets (#3795)
- Changed reorg gauge to historgram (#3796)
- Changed sse-head-delay buckets (#3816)
- Replace HasPrefix+TrimPrefix with CutPrefix (#3824)
- Use maps.Copy for cleaner map handling (#3856)
- Improve fallback beacon node logic and metric (#3870)
- Batch duplicate logs (#3835)
combine
default input should align withcreate cluster
default output. (#3815)
Compatibility Matrix
This release of Charon is backwards compatible with Charon v1.0.*
, v1.1.*
, v1.2.0
, v1.3.*
, v1.4.*
, v1.5.*
Though only v1.3.*
and newer are Pectra-ready.
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 v25.7.1 ❗ | Lighthouse v7.1.0 ❗ | Lodestar v1.33.0 | Nimbus v25.7.1 | Prysm v6.0.4 ❗ | Vouch v1.10.3 ❗ |
---|---|---|---|---|---|---|
Teku v25.7.1 ❗ | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lighthouse v7.1.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lodestar v1.33.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Nimbus v25.7.1 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Prysm v6.0.4 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Grandine v1.1.2 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
What's Changed
v1.6.0-rc5
v1.6.0-rc5 - 2025-08-26
This is a release candidate for Charon's v1.6.0
release. Feedback is welcome and appreciated, please use github issues or discord if you have trouble with this release.
Read the rest of the release notes for more:
Full Changelog: v1.5.2..v1.6.0-rc5
Notable features
This release ships with opt-in support for the QUIC transport protocol. QUIC aims to improve performance in large, distant clusters. This may become a default feature in future versions once proven stable and well-incorporated across our stack.
To enable this feature, make the following additions:
- Add
https://4.relay.obol.dev/
to your obol relay list, e.g.CHARON_P2P_RELAYS:-https://0.relay.obol.tech,https://2.relay.obol.dev,https://1.relay.obol.tech,https://4.relay.obol.dev/
- Add
CHARON_FEATURESET_ENABLE=quic
as an env variable - Add
CHARON_P2P_QUIC_ADDRESS=0.0.0.0:3610
as an env variable - Allow UDP traffic on your port 3610. If you're using our docker-compose examples, your ports section should be like
ports: - ${CHARON_PORT_P2P_TCP:-3610}:3610/tcp # P2P TCP libp2p - ${CHARON_PORT_P2P_QUIC:-3610}:3610/udp # P2P QUIC libp2p
This release also introduces new ways of modifying existing cluster which are still in alpha
version and are not recommended for Mainnet usage:
addvalidator
command which adds N validators to an existing cluster. This requires a new deposit for newly added validators.node_merge.sh
script which helps combining validator keys and configuration for single pair of nodes by merging two nodes' folders.cluster_merge.sh
script which helps expand an existing cluster with new validators by merging two existing clusters, given the same operators set and cluster configuration.
Feature
- Launchpad link per network (#3886)
charon --split-existing-keys
support multiple formats (#3872)- cluster-lock merge script (#3847)
- Support deleting partial exits (#3838)
- Add
add-validators
command (#3857) - Replace go-eth2-client with in-house solution (#3862)
- Put QUIC behind a feature flag (#3814)
- Add zipped flag to DKG (#3903)
- Add hostname verification (#3901)
Bug
- Invalid UUIDs are generated (#3887)
- Memory leak under attestation_inclusion feature flag (#3867)
- Increased duty timeout margin (#3800)
- Set content type in alpha test (#3808)
- Fixed vapi monitoring code (#3812)
- Fix attestation committee index (#3820)
- Remove fulu from fork schedule (#3822)
- Add missing encoding types (#3853)
- Fix flaky test (#3888)
Refactor
- Added sse_head_delay buckets (#3795)
- Changed reorg gauge to historgram (#3796)
- Changed sse-head-delay buckets (#3816)
- Replace HasPrefix+TrimPrefix with CutPrefix (#3824)
- Use maps.Copy for cleaner map handling (#3856)
- Improve fallback beacon node logic and metric (#3870)
- Batch duplicate logs (#3835)
combine
default input should align withcreate cluster
default output. (#3815)
Compatibility Matrix
This release of Charon is backwards compatible with Charon v1.0.*
, v1.1.*
, v1.2.0
, v1.3.*
, v1.4.*
, v1.5.*
Though only v1.3.*
and newer are Pectra-ready.
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 v25.7.1 ❗ | Lighthouse v7.1.0 ❗ | Lodestar v1.33.0 | Nimbus v25.7.1 | Prysm v6.0.4 ❗ | Vouch v1.10.3 ❗ |
---|---|---|---|---|---|---|
Teku v25.7.1 ❗ | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lighthouse v7.1.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lodestar v1.33.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Nimbus v25.7.1 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Prysm v6.0.4 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Grandine v1.1.2 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
What's Changed
v1.6.0-rc4
v1.6.0-rc4 - 2025-08-26
This is a release candidate for Charon's v1.6.0
release. Feedback is welcome and appreciated, please use github issues or discord if you have trouble with this release.
Read the rest of the release notes for more:
Full Changelog: v1.5.2..v1.6.0-rc4
Notable features
This release ships with opt-in support for the QUIC transport protocol. QUIC aims to improve performance in large, distant clusters. This may become a default feature in future versions once proven stable and well-incorporated across our stack.
To enable this feature, make the following additions:
- Add
https://4.relay.obol.dev/
to your obol relay list, e.g.CHARON_P2P_RELAYS:-https://0.relay.obol.tech,https://2.relay.obol.dev,https://1.relay.obol.tech,https://4.relay.obol.dev/
- Add
CHARON_FEATURESET_ENABLE=quic
as an env variable - Add
CHARON_P2P_QUIC_ADDRESS=0.0.0.0:3610
as an env variable - Allow UDP traffic on your port 3610. If you're using our docker-compose examples, your ports section should be like
ports: - ${CHARON_PORT_P2P_TCP:-3610}:3610/tcp # P2P TCP libp2p - ${CHARON_PORT_P2P_QUIC:-3610}:3610/udp # P2P QUIC libp2p
This release also introduces new ways of modifying existing cluster which are still in alpha
version and are not recommended for Mainnet usage:
addvalidator
command which adds N validators to an existing cluster. This requires a new deposit for newly added validators.node_merge.sh
script which helps combining validator keys and configuration for single pair of nodes by merging two nodes' folders.cluster_merge.sh
script which helps expand an existing cluster with new validators by merging two existing clusters, given the same operators set and cluster configuration.
Feature
- Launchpad link per network (#3886)
charon --split-existing-keys
support multiple formats (#3872)- cluster-lock merge script (#3847)
- Support deleting partial exits (#3838)
- Add
add-validators
command (#3857) - Replace go-eth2-client with in-house solution (#3862)
- Put QUIC behind a feature flag (#3814)
- Add zipped flag to DKG (#3903)
- Add hostname verification (#3901)
Bug
- Invalid UUIDs are generated (#3887)
- Memory leak under attestation_inclusion feature flag (#3867)
- Increased duty timeout margin (#3800)
- Set content type in alpha test (#3808)
- Fixed vapi monitoring code (#3812)
- Fix attestation committee index (#3820)
- Remove fulu from fork schedule (#3822)
- Add missing encoding types (#3853)
- Fix flaky test (#3888)
Refactor
- Added sse_head_delay buckets (#3795)
- Changed reorg gauge to historgram (#3796)
- Changed sse-head-delay buckets (#3816)
- Replace HasPrefix+TrimPrefix with CutPrefix (#3824)
- Use maps.Copy for cleaner map handling (#3856)
- Improve fallback beacon node logic and metric (#3870)
- Batch duplicate logs (#3835)
combine
default input should align withcreate cluster
default output. (#3815)
Compatibility Matrix
This release of Charon is backwards compatible with Charon v1.0.*
, v1.1.*
, v1.2.0
, v1.3.*
, v1.4.*
, v1.5.*
Though only v1.3.*
and newer are Pectra-ready.
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 v25.7.1 ❗ | Lighthouse v7.1.0 ❗ | Lodestar v1.33.0 | Nimbus v25.7.1 | Prysm v6.0.4 ❗ | Vouch v1.10.3 ❗ |
---|---|---|---|---|---|---|
Teku v25.7.1 ❗ | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lighthouse v7.1.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lodestar v1.33.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Nimbus v25.7.1 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Prysm v6.0.4 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Grandine v1.1.2 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
What's Changed
v1.6.0-rc3
v1.6.0-rc3 - 2025-08-20
This is a release candidate for Charon's v1.6.0
release. Feedback is welcome and appreciated, please use github issues or discord if you have trouble with this release.
Read the rest of the release notes for more:
Full Changelog: v1.5.2..v1.6.0-rc3
Notable features
This release ships with opt-in support for the QUIC transport protocol. QUIC aims to improve performance in large, distant clusters. This may become a default feature in future versions once proven stable and well-incorporated across our stack.
To enable this feature, make the following additions:
- Add
https://4.relay.obol.dev/
to your obol relay list, e.g.CHARON_P2P_RELAYS:-https://0.relay.obol.tech,https://2.relay.obol.dev,https://1.relay.obol.tech,https://4.relay.obol.dev/
- Add
CHARON_FEATURESET_ENABLE=quic
as an env variable - Add
CHARON_P2P_QUIC_ADDRESS=0.0.0.0:3610
as an env variable - Allow UDP traffic on your port 3610. If you're using our docker-compose examples, your ports section should be like
ports: - ${CHARON_PORT_P2P_TCP:-3610}:3610/tcp # P2P TCP libp2p - ${CHARON_PORT_P2P_QUIC:-3610}:3610/udp # P2P QUIC libp2p
This release also introduces new ways of modifying existing cluster which are still in alpha
version and are not recommended for Mainnet usage:
addvalidator
command which adds N validators to an existing cluster. This requires a new deposit for newly added validators.node_merge.sh
script which helps combining validator keys and configuration for single pair of nodes by merging two nodes' folders.cluster_merge.sh
script which helps expand an existing cluster with new validators by merging two existing clusters, given the same operators set and cluster configuration.
Feature
- Launchpad link per network (#3886)
charon --split-existing-keys
support multiple formats (#3872)- cluster-lock merge script (#3847)
- Support deleting partial exits (#3838)
- Add
add-validators
command (#3857) - Replace go-eth2-client with in-house solution (#3862)
- Put QUIC behind a feature flag (#3814)
- Add zipped flag to DKG (#3903)
- Add hostname verification (#3901)
Bug
- Invalid UUIDs are generated (#3887)
- Memory leak under attestation_inclusion feature flag (#3867)
- Increased duty timeout margin (#3800)
- Set content type in alpha test (#3808)
- Fixed vapi monitoring code (#3812)
- Fix attestation committee index (#3820)
- Remove fulu from fork schedule (#3822)
- Add missing encoding types (#3853)
- Fix flaky test (#3888)
Refactor
- Added sse_head_delay buckets (#3795)
- Changed reorg gauge to historgram (#3796)
- Changed sse-head-delay buckets (#3816)
- Replace HasPrefix+TrimPrefix with CutPrefix (#3824)
- Use maps.Copy for cleaner map handling (#3856)
- Improve fallback beacon node logic and metric (#3870)
- Batch duplicate logs (#3835)
combine
default input should align withcreate cluster
default output. (#3815)
Compatibility Matrix
This release of Charon is backwards compatible with Charon v1.0.*
, v1.1.*
, v1.2.0
, v1.3.*
, v1.4.*
, v1.5.*
Though only v1.3.*
and newer are Pectra-ready.
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 v25.7.1 ❗ | Lighthouse v7.1.0 ❗ | Lodestar v1.33.0 | Nimbus v25.7.1 | Prysm v6.0.4 ❗ | Vouch v1.10.3 ❗ |
---|---|---|---|---|---|---|
Teku v25.7.1 ❗ | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lighthouse v7.1.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lodestar v1.33.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Nimbus v25.7.1 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Prysm v6.0.4 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Grandine v1.1.2 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
What's Changed
v1.6.0-rc2
v1.6.0-rc2 - 2025-08-13
This is a release candidate for Charon's v1.6.0
release. Feedback is welcome and appreciated, please use github issues or discord if you have trouble with this release.
Read the rest of the release notes for more:
Full Changelog: v1.5.2..v1.6.0-rc2
Notable features
This release ships with opt-in support for the QUIC transport protocol. QUIC aims to improve performance in large, distant clusters. This may become a default feature in future versions once proven stable and well-incorporated across our stack.
To enable this feature, make the following additions:
- Add
https://4.relay.obol.dev/
to your obol relay list, e.g.CHARON_P2P_RELAYS:-https://0.relay.obol.tech,https://2.relay.obol.dev,https://1.relay.obol.tech,https://4.relay.obol.dev/
- Add
CHARON_FEATURESET_ENABLE=quic
as an env variable - Add
CHARON_P2P_QUIC_ADDRESS=0.0.0.0:3610
as an env variable - Allow UDP traffic on your port 3610. If you're using our docker-compose examples, your ports section should be like
ports: - ${CHARON_PORT_P2P_TCP:-3610}:3610/tcp # P2P TCP libp2p - ${CHARON_PORT_P2P_QUIC:-3610}:3610/udp # P2P QUIC libp2p
This release also introduces new ways of modifying existing cluster which are still in alpha
version and are not recommended for Mainnet usage:
addvalidator
command which adds N validators to an existing cluster. This requires a new deposit for newly added validators.node_merge.sh
script which helps combining validator keys and configuration for single pair of nodes by merging two nodes' folders.cluster_merge.sh
script which helps expand an existing cluster with new validators by merging two existing clusters, given the same operators set and cluster configuration.
Feature
- Launchpad link per network (#3886)
charon --split-existing-keys
support multiple formats (#3872)- cluster-lock merge script (#3847)
- Support deleting partial exits (#3838)
- Add
add-validators
command (#3857) - Replace go-eth2-client with in-house solution (#3862)
- Put QUIC behind a feature flag (#3814)
- Add zipped flag to DKG (#3903)
- Add hostname verification (#3901)
Bug
- Invalid UUIDs are generated (#3887)
- Memory leak under attestation_inclusion feature flag (#3867)
- Increased duty timeout margin (#3800)
- Set content type in alpha test (#3808)
- Fixed vapi monitoring code (#3812)
- Fix attestation committee index (#3820)
- Remove fulu from fork schedule (#3822)
- Add missing encoding types (#3853)
- Fix flaky test (#3888)
Refactor
- Added sse_head_delay buckets (#3795)
- Changed reorg gauge to historgram (#3796)
- Changed sse-head-delay buckets (#3816)
- Replace HasPrefix+TrimPrefix with CutPrefix (#3824)
- Use maps.Copy for cleaner map handling (#3856)
- Improve fallback beacon node logic and metric (#3870)
- Batch duplicate logs (#3835)
combine
default input should align withcreate cluster
default output. (#3815)
Compatibility Matrix
This release of Charon is backwards compatible with Charon v1.0.*
, v1.1.*
, v1.2.0
, v1.3.*
, v1.4.*
, v1.5.*
Though only v1.3.*
and newer are Pectra-ready.
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 v25.7.1 ❗ | Lighthouse v7.1.0 ❗ | Lodestar v1.33.0 | Nimbus v25.7.1 | Prysm v6.0.4 ❗ | Vouch v1.10.3 ❗ |
---|---|---|---|---|---|---|
Teku v25.7.1 ❗ | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lighthouse v7.1.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lodestar v1.33.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Nimbus v25.7.1 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Prysm v6.0.4 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Grandine v1.1.2 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
What's Changed
v1.6.0-rc1
v1.6.0-rc1 - 2025-08-07
This is a release candidate for Charon's v1.6.0
release. Feedback is welcome and appreciated, please use github issues or discord if you have trouble with this release.
Read the rest of the release notes for more:
Full Changelog: v1.5.2..v1.6.0-rc1
Notable features
This release ships with opt-in support for the QUIC transport protocol. QUIC aims to improve performance in large, distant clusters. This may become a default feature in future versions once proven stable and well-incorporated across our stack.
To enable this feature, make the following additions:
- Add
https://4.relay.obol.dev/
to your obol relay list, e.g.CHARON_P2P_RELAYS:-https://0.relay.obol.tech,https://2.relay.obol.dev,https://1.relay.obol.tech,https://4.relay.obol.dev/
- Add
CHARON_FEATURESET_ENABLE=quic
as an env variable - Add
CHARON_P2P_QUIC_ADDRESS=0.0.0.0:3610
as an env variable - Allow UDP traffic on your port 3610. If you're using our docker-compose examples, your ports section should be like
ports: - ${CHARON_PORT_P2P_TCP:-3610}:3610/tcp # P2P TCP libp2p - ${CHARON_PORT_P2P_QUIC:-3610}:3610/udp # P2P QUIC libp2p
Feature
- Launchpad link per network (#3886)
charon --split-existing-keys
support multiple formats (#3872)- cluster-lock merge script (#3847)
- Support deleting partial exits (#3838)
- Replace go-eth2-client with in-house solution (#3862)
- Put QUIC behind a feature flag (#3814)
Bug
- Invalid UUIDs are generated (#3887)
- Memory leak under attestation_inclusion feature flag (#3867)
- Increased duty timeout margin (#3800)
- Set content type in alpha test (#3808)
- Fixed vapi monitoring code (#3812)
- Fix attestation committee index (#3820)
- Remove fulu from fork schedule (#3822)
- Add missing encoding types (#3853)
- Fix flaky test (#3888)
Refactor
- Added sse_head_delay buckets (#3795)
- Changed reorg gauge to historgram (#3796)
- Changed sse-head-delay buckets (#3816)
- Replace HasPrefix+TrimPrefix with CutPrefix (#3824)
- Use maps.Copy for cleaner map handling (#3856)
- Improve fallback beacon node logic and metric (#3870)
- Batch duplicate logs (#3835)
combine
default input should align withcreate cluster
default output. (#3815)
Compatibility Matrix
This release of Charon is backwards compatible with Charon v1.0.*
, v1.1.*
, v1.2.0
, v1.3.*
, v1.4.*
, v1.5.*
Though only v1.3.*
and newer are Pectra-ready.
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 v25.7.1 ❗ | Lighthouse v7.1.0 ❗ | Lodestar v1.33.0 | Nimbus v25.7.1 | Prysm v6.0.4 ❗ | Vouch v1.10.3 ❗ |
---|---|---|---|---|---|---|
Teku v25.7.1 ❗ | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lighthouse v7.1.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lodestar v1.33.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Nimbus v25.7.1 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Prysm v6.0.4 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Grandine v1.1.2 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
What's Changed
v1.5.2
v1.5.2 - 2025-08-04
This is Charon's v1.5.2
release. Feedback is welcome and appreciated, please use github issues or discord if you have trouble with this release.
A memory leak fix, that was only affecting users with enabled attestation_inclusion
feature flag.
Read the rest of the release notes for more:
Full Changelog: v1.5.1..v1.5.2
Bug
- Trim state committees (#3868)
Compatibility Matrix
This release of Charon is backwards compatible with Charon v1.0.*
, v1.1.*
, v1.2.0
, v1.3.*
, v1.4.*
, v1.5.*
Though only v1.3.*
and newer are Pectra-ready.
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 duties;
- 🟠: One or more penalised duties may fail occasionally;
- 🔴: One or more penalised duties fail consistently;
- ❗: Remark regarding certain VC, CL or specific combination. Hover to reveal.
Validator 👉 Consensus 👇 | Teku v25.6.0 ❗ | Lighthouse v7.0.1 ❗ | Lodestar v1.31.0 | Nimbus v25.6.0 | Prysm v6.0.4 ❗ | Vouch v1.10.3 ❗ |
---|---|---|---|---|---|---|
Teku v25.6.0 ❗ | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lighthouse v7.0.1 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lodestar v1.31.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Nimbus v25.6.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Prysm v6.0.4 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Grandine v1.1.1 ❗ | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
What's Changed
v1.5.1
v1.5.1 - 2025-07-04
This is Charon's v1.5.1
release. Feedback is welcome and appreciated, please use github issues or discord if you have trouble with this release.
Inability of a dependency used by Charon to read arrays from beacon node's spec, caused Teku beacon nodes to fail, as they include now Fulu-specific fields in their spec.
Read the rest of the release notes for more:
Full Changelog: v1.5.0..v1.5.1
Misc
- Bump go-eth2-client (#3834)
Compatibility Matrix
This release of Charon is backwards compatible with Charon v1.0.*
, v1.1.*
, v1.2.0
, v1.3.*
, v1.4.*
, v1.5.*
Though only v1.3.*
and newer are Pectra-ready.
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 duties;
- 🟠: One or more penalised duties may fail occasionally;
- 🔴: One or more penalised duties fail consistently;
- ❗: Remark regarding certain VC, CL or specific combination. Hover to reveal.
Validator 👉 Consensus 👇 | Teku v25.6.0 ❗ | Lighthouse v7.0.1 ❗ | Lodestar v1.31.0 | Nimbus v25.6.0 | Prysm v6.0.4 ❗ | Vouch v1.10.3 ❗ |
---|---|---|---|---|---|---|
Teku v25.6.0 ❗ | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lighthouse v7.0.1 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lodestar v1.31.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Nimbus v25.6.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Prysm v6.0.4 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Grandine v1.1.1 ❗ | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
What's Changed
v1.5.0
v1.5.0 - 2025-07-01
This is Charon's v1.5.0
release. Feedback is welcome and appreciated, please use github issues or discord if you have trouble with this release.
Notable user-facing features shipping in this release include:
- A breaking change to the default behaviour for attestation and aggregation on-chain inclusion checking. Previously Charon checked for proposal, attestation and aggregation duties on-chain after the fact, but post-electra we've observed this to be an expensive operation that might unduly hurt the cluster's performance. As a result, the default behaviour for Charon now is to check for on chain inclusion for proposals only. Users can opt-in to continue monitoring on-chain inclusion for attestations and aggregations by adding
attestation_inclusion
to the--feature-set-enable
flag. Monitoring will now consider attestations successful if Charon receives a successful response from their beacon node during broadcast. However a successful broadcast of an attestation (or aggregation) does not guarantee that the attestation will be included by an aggregator (or proposer) later in the slot. - Beacon node call timings and retries were revisited and reduced in some cases, in order to lower the load Charon puts on a beacon node.
- A new optional feature flag
proposal_timeout
has been introduced. This flag increases the first round timeout for proposals from 1.0s to 1.5s. This has been added because it is common for MEV-relays to delay bid responses in an effort to maximise rewards, leaving too little time to achieve consensus in a one second window. If a cluster wants to leverage this feature, all nodes should apply the flag. Caution should be used with this flag, as it leaves a very short window for a second leader to achieve consensus on an alternative header, if the first leader is offline. It is recommended to only use this feature if encouraged by the core team. - Charon now supports TLS/HTTPS connections from validator clients, consult the documentation on the feature here.
- Charon now listens to the server sent events endpoint of the beacon nodes for head events and re-org events and exposes them to monitoring. This is useful for identifying slow beacon nodes to optimise performance and duty scheduling.
- Charon is now compatible with the Grandine consensus layer client and Vouch validator client. Both are part of our simulation testing environment.
- Obol now provides compiled executables for Charon as part of its release process. You can find them attached to this release as artifacts.
- The new default
targetGasLimit
for newly created clusters is 60 million gas. Override it with--target-gas-limit
if needed. - The default exit epoch for
charon exit sign
is changed to the Capella mainnet fork epoch. This means you should not need to ever change it for a mainnet cluster.
Read the rest of the release notes for more:
Full Changelog: v1.4.3..v1.5.0
Feature
- Improve consensus timings #3430 (#3739)
- Listen to the beacon node SSE endpoint and expose via prom metrics #3580 (#3756,#3666,#3759, #3737, #3795, #3796)
- Remove v1 attestation/aggregation calls post electra #3645 (#3727,#3676)
- Add SSZ support for builder endpoint #3724 (#3726)
- Keep a regex for minimum CL versions we support, and emit a startup/occasional warning log if its condition is not met #2922 (#3723)
- Change default gas limit to 60m #3788 (#3789)
- Secure and Simplify Import of .charon Folders for DappNode Integration #2978 (#3757)
- Revisiting BN calls and retry settings #3671 (#3721)
- Implement Fallback Beacon Node Selection for Charon #3328 (#3667)
- Add TLS/HTTPS to the validatorAPI #1634 (#3651, #3662)
- Optimized genesis and spec fetching (#3716)
- Check for attestation inclusion only under feature flag (#3740)
Bug
- Fix PRs parsings (#3653)
- Fix loaded keys ordering (#3655 )
- Create tracer only when configured (#3704)
- Add fork version support for MEV test (#3733)
- Scheduler edge case (#3762)
- Set content type in mev test (#3808)
- Always save attestation data committee index 0 (#3820)
- Fix VAPI monitoring falsely showing
VC missing validators
(#3812)
Misc
- Added app_eth2_requests_total metric (#3715)
- Add WithForkVersion to definition (#3718)
- Use maps.copy for cleaner map handling (#3722)
- Add missing entries to release template and stacksnipe (#3725)
- Minor scheduler improvements (#3735)
- Change exit sign default epoch from 162304 to 194048 (#3785)
Compatibility Matrix
This release of Charon is backwards compatible with Charon v1.0.*
, v1.1.*
, v1.2.0
, v1.3.*
, v1.4.*
Though only v1.3.*
and newer are Pectra-ready.
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.
Caution
Teku beacon nodes with version v25.5.0 and later are incompatible with this release. Use Charon v1.5.1 or later version.
Legend
- ✅: All duties succeed in testing;
- 🟡: All duties succeed in testing, except non-penalised duties;
- 🟠: One or more penalised duties may fail occasionally;
- 🔴: One or more penalised duties fail consistently;
- ❗: Remark regarding certain VC, CL or specific combination. Hover to reveal.
Validator 👉 Consensus 👇 | Teku v25.4.1 ❗ | Lighthouse v7.0.1 ❗ | Lodestar v1.31.0 | Nimbus v25.6.0 | Prysm v6.0.4 ❗ | Vouch v1.10.3 ❗ |
---|---|---|---|---|---|---|
Teku v25.4.1 ❗ | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lighthouse v7.0.1 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lodestar v1.31.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Nimbus v25.6.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Prysm v6.0.4 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Grandine v1.1.1 ❗ | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
What's Changed
-
tracker: check inclusion by validx, instead of agg bits (#3696)
-
core: fix incompatibility between v1.3/4.1 and v1.3/4.2 (#3702)
-
tracker: check for available validator index in inclusions (#3705)
-
*: add missing entries to release template and stacksnipe (#3725)
-
[*: minor scheduler improvements (#3735)](https://github.com/ObolN...
v1.5.0-rc4
v1.5.0-rc4 - 2025-06-27
This is a release candidate for Charon's v1.5.0
release. Feedback is welcome and appreciated, please use github issues or discord if you have trouble with this release.
Notable user-facing features shipping in this release include:
- A breaking change to the default behaviour for attestation and aggregation on-chain inclusion checking. Previously Charon checked for proposal, attestation and aggregation duties on-chain after the fact, but post-electra we've observed this to be an expensive operation that might unduly hurt the cluster's performance. As a result, the default behaviour for Charon now is to check for on chain inclusion for proposals only. Users can opt-in to continue monitoring on-chain inclusion for attestations and aggregations by adding
attestation_inclusion
to the--feature-set-enable
flag. Monitoring will now consider attestations successful if Charon receives a successful response from their beacon node during broadcast. However a successful broadcast of an attestation (or aggregation) does not guarantee that the attestation will be included by an aggregator (or proposer) later in the slot. - Beacon node call timings and retries were revisited and reduced in some cases, in order to lower the load Charon puts on a beacon node.
- A new optional feature flag
proposal_timeout
has been introduced. This flag increases the first round timeout for proposals from 1.0s to 1.5s. This has been added because it is common for MEV-relays to delay bid responses in an effort to maximise rewards, leaving too little time to achieve consensus in a one second window. If a cluster wants to leverage this feature, all nodes should apply the flag. Caution should be used with this flag, as it leaves a very short window for a second leader to achieve consensus on an alternative header, if the first leader is offline. It is recommended to only use this feature if encouraged by the core team. - Charon now supports TLS/HTTPS connections from validator clients, consult the documentation on the feature here.
- Charon now listens to the server sent events endpoint of the beacon nodes for head events and re-org events and exposes them to monitoring. This is useful for identifying slow beacon nodes to optimise performance and duty scheduling.
- Charon is now compatible with the Grandine consensus layer client and Vouch validator client. Both are part of our simulation testing environment.
- Obol now provides compiled executables for Charon as part of its release process. You can find them attached to this release as artifacts.
- The new default
targetGasLimit
for newly created clusters is 60 million gas. Override it with--target-gas-limit
if needed. - The default exit epoch for
charon exit sign
is changed to the Capella mainnet fork epoch. This means you should not need to ever change it for a mainnet cluster.
Read the rest of the release notes for more:
Full Changelog: v1.4.3..v1.5.0-rc4
Feature
- Improve consensus timings #3430 (#3739)
- Listen to the beacon node SSE endpoint and expose via prom metrics #3580 (#3756,#3666,#3759, #3737, #3795, #3796)
- Remove v1 attestation/aggregation calls post electra #3645 (#3727,#3676)
- Add SSZ support for builder endpoint #3724 (#3726)
- Keep a regex for minimum CL versions we support, and emit a startup/occasional warning log if its condition is not met #2922 (#3723)
- Change default gas limit to 60m #3788 (#3789)
- Secure and Simplify Import of .charon Folders for DappNode Integration #2978 (#3757)
- Revisiting BN calls and retry settings #3671 (#3721)
- Implement Fallback Beacon Node Selection for Charon #3328 (#3667)
- Add TLS/HTTPS to the validatorAPI #1634 (#3651, #3662)
- Optimized genesis and spec fetching (#3716)
- Check for attestation inclusion only under feature flag (#3740)
Bug
- Fix PRs parsings (#3653)
- Fix loaded keys ordering (#3655 )
- Create tracer only when configured (#3704)
- Add fork version support for MEV test (#3733)
- Scheduler edge case (#3762)
- Set content type in mev test (#3808)
- Always save attestation data committee index 0 (#3820)
- Fix VAPI monitoring falsely showing
VC missing validators
(#3812)
Misc
- Added app_eth2_requests_total metric (#3715)
- Add WithForkVersion to definition (#3718)
- Use maps.copy for cleaner map handling (#3722)
- Add missing entries to release template and stacksnipe (#3725)
- Minor scheduler improvements (#3735)
- Change exit sign default epoch from 162304 to 194048 (#3785)
Compatibility Matrix
This release of Charon is backwards compatible with Charon v1.0.*
, v1.1.*
, v1.2.0
, v1.3.*
, v1.4.*
Though only v1.3.*
and newer are Pectra-ready.
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 duties;
- 🟠: One or more penalised duties may fail occasionally;
- 🔴: One or more penalised duties fail consistently;
- ❗: Remark regarding certain VC, CL or specific combination. Hover to reveal.
Validator 👉 Consensus 👇 | Teku v25.6.0 ❗ | Lighthouse v7.0.1 ❗ | Lodestar v1.31.0 | Nimbus v25.6.0 | Prysm v6.0.4 ❗ | Vouch v1.10.3 ❗ |
---|---|---|---|---|---|---|
Teku v25.6.0 ❗ | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lighthouse v7.0.1 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Lodestar v1.31.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Nimbus v25.6.0 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Prysm v6.0.4 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
Grandine v1.1.1 | ✅ | 🟡 | ✅ | ✅ | ✅ | 🟡 |
What's Changed
-
tracker: check inclusion by validx, instead of agg bits (#3696)
-
core: fix incompatibility between v1.3/4.1 and v1.3/4.2 (#3702)
-
tracker: check for available validator index in inclusions (#3705)
-
*: add missing entries to release template and stacksnipe (#3725)
-
[*: check for attestation inclusion only under featu...