Wire charon proposer config into validator clients - #486
Open
KaloyanTanev wants to merge 9 commits into
Open
KaloyanTanev wants to merge 9 commits into
KaloyanTanev wants to merge 9 commits into
Conversation
KaloyanTanev
force-pushed
the
kalo/proposer-config
branch
from
September 16, 2026 09:27
ec0362c to
b3e9c97
Compare
KaloyanTanev
marked this pull request as ready for review
September 16, 2026 09:28
KaloyanTanev
force-pushed
the
kalo/proposer-config
branch
4 times, most recently
from
September 16, 2026 14:33
10fec34 to
74e278f
Compare
KaloyanTanev
force-pushed
the
kalo/proposer-config
branch
from
September 16, 2026 20:45
74e278f to
8612503
Compare
7 tasks
KaloyanTanev
force-pushed
the
kalo/proposer-config
branch
from
September 16, 2026 21:50
8612503 to
ec82eae
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Wires the charon-generated proposer configuration (ObolNetwork/charon#4700,
vc-config/proposer-config.jsonnext to the cluster lock) into the four validator clients, so VCs hold the cluster fee recipient and gas limit — required from the gloas fork, where VCs sign these values into proposer preferences (ObolNetwork/charon#4692).vc-configdirectory read-only and wait for charon to be healthy. Directory mounts are safe with any charon version: a missing directory is auto-created empty, and files charon writes later propagate into running containers.run.shentrypoint (like the other VCs): it uses the proposer config when present, otherwise falls back to today's zero-address default fee recipient..yml(it rejects.jsonfile extensions); Nimbus renders per-validatorsuggested_fee_recipient.hex+suggested_gas_limit.jsonfiles after key import. All degrade gracefully with a warning when the file is absent.Verified empirically: Teku parses the charon-generated file and falls back cleanly without it; Lodestar rejects
.jsonand accepts the.ymlcopy; the Nimbus renderer tested against a real generated file for both validator-directory naming conventions. Safe to run with anyCHARON_VERSION; with pre-#4700 charon everything behaves exactly as today. Lighthouse follows in a separate PR as a new profile.Also aligns the VC services while touching them: all scripts take the beacon endpoint from
BEACON_NODE_ADDRESS, prysmexecs the validator (graceful shutdown) and binds its metrics on0.0.0.0, teku enables metrics on its default8008, the prometheus example scrapes all VCs, and compose service definitions follow one key order.Update: charon's file is now a canonical sparse schema (
default_configholds majority values, entries only carry diverging fields, no pre-gloas legacy fields), so every wrapper renders its client's native format from it: Teku and Prysm get thin custom images addingjqand render their proposer config at start, Lodestar renders vianode, and Nimbus resolves per-validator values with the default fallback.