Repository navigation
compose: start validator clients once charon is live - #494
Closed
KaloyanTanev wants to merge 3 commits into
Closed
KaloyanTanev wants to merge 3 commits into
KaloyanTanev wants to merge 3 commits into
Conversation
|
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.



Validator clients now start once charon is healthy instead of waiting for
proposer-config.jsonto exist. On an existing node the file is already there, so a recreated VC rendered it right away, before charon (depends_ononly waited for its container to start) had rewritten it with its current flags.Charon's healthcheck moves from
/readyzto/livez, and every VC (including the default Lodestar one) depends oncharonwithcondition: service_healthy. Charon serves/livezonly once started, after it has written or updated the file, so a healthy charon means the file is current./readyzcan't be used: it stays unready until a VC connects.start_interval: 1skeeps the wait short instead of the 30s default interval (Docker Engine 25+). The wrappers drop their wait loops and keep the fallback for a missing file. The VC test override gives its stub charon an always-healthy check.Trade-off:
docker psshows charon healthy once it runs, not once it's ready; readiness stays in theapp_monitoring_readyzmetric and its alerts.Tested with
docker compose configon the real and test compose files, and with stub services: a VC depending on a charon stub that writes the file and serves/livezafter 5s started in the same second the file was written. Pairs with ObolNetwork/charon#4784, which updates the builder settings of an existing proposer config on start.