Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CheckConnectionState: option to consider node as not synced if el_offline is true #192

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

nkryuchkov
Copy link
Contributor

@nkryuchkov nkryuchkov commented Feb 3, 2025

Closes #171

The multi client doesn't switch clients if the current client's EL goes offline until the client sets is_syncing to true. It causes duty misses.

The PR adds a WithELConnectionCheck parameter to both http and multi, which makes the client consider a node as synced only if el_offline is false

It seems to work with Teku, Lighthouse, Nimbus correctly. It didn't work with Prysm because of prysmaticlabs/prysm#14226, its implementation of el_offline is incorrect, so the switch wouldn't happen until it started returning "is_syncing":true. So I added a temporary workaround for Prysm if SyncDistance > 1

@nkryuchkov
Copy link
Contributor Author

Linter and tests seem to fail due to the same reasons as in #191

@mcdee
Copy link
Contributor

mcdee commented Feb 10, 2025

Which beacon node(s) exhibit this behavior? And is this an issue with the beacon node not supplying duties, or is it that the multi client fails to recognize that the beacon node is not supplying duties?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

/eth/v1/node/syncing endpoint does not return correct output as per beacon spec
2 participants