## Issue Addressed
Closes https://github.com/sigp/lighthouse/issues/4291, part of #3613.
## Proposed Changes
- Implement the `el_offline` field on `/eth/v1/node/syncing`. We set `el_offline=true` if:
- The EL's internal status is `Offline` or `AuthFailed`, _or_
- The most recent call to `newPayload` resulted in an error (more on this in a moment).
- Use the `el_offline` field in the VC to mark nodes with offline ELs as _unsynced_. These nodes will still be used, but only after synced nodes.
- Overhaul the usage of `RequireSynced` so that `::No` is used almost everywhere. The `--allow-unsynced` flag was broken and had the opposite effect to intended, so it has been deprecated.
- Add tests for the EL being offline on the upcheck call, and being offline due to the newPayload check.
## Why track `newPayload` errors?
Tracking the EL's online/offline status is too coarse-grained to be useful in practice, because:
- If the EL is timing out to some calls, it's unlikely to timeout on the `upcheck` call, which is _just_ `eth_syncing`. Every failed call is followed by an upcheck [here](
|
||
|---|---|---|
| .. | ||
| account_utils | ||
| clap_utils | ||
| compare_fields | ||
| compare_fields_derive | ||
| deposit_contract | ||
| directory | ||
| eth2 | ||
| eth2_config | ||
| eth2_interop_keypairs | ||
| eth2_network_config | ||
| eth2_wallet_manager | ||
| filesystem | ||
| lighthouse_metrics | ||
| lighthouse_version | ||
| lockfile | ||
| logging | ||
| lru_cache | ||
| malloc_utils | ||
| monitoring_api | ||
| oneshot_broadcast | ||
| sensitive_url | ||
| slot_clock | ||
| system_health | ||
| target_check | ||
| task_executor | ||
| test_random_derive | ||
| unused_port | ||
| validator_dir | ||
| warp_utils | ||
| README.md | ||
eth2
Common crates containing eth2-specific logic.