Skip to content

Conversation

@paulhauner
Copy link
Member

@paulhauner paulhauner commented Oct 5, 2021

Issue Addressed

NA

Proposed Changes

Causes the BN HTTP API to return errors for various API endpoints when we don't have a synced and reachable execution engine.

We do for two reasons:

  1. To help inform the user that their node is presently unable to follow head due to the lack of an available EE.
  2. To help prevent network chaos.

An example of network chaos would be nodes who can't follow the head still producing attestations for old heads with lots of skip slots. As we saw in the Medalla chaos, this is very resource intensive for nodes and is the sort of thing that leads to death spirals 🙀.

I've also added a "watchdog" task that will run on startup and every 2.5s. This task will attempt to contact all offline execution engines and see if they're now online again. This should help ensure that quickly discover when an offline node comes back online.

Additional Info

NA

@paulhauner paulhauner added work-in-progress PR is a work-in-progress merge-f2f Relates to the Oct 2021 Merge F2F labels Oct 5, 2021
@paulhauner paulhauner marked this pull request as ready for review October 6, 2021 10:21
@paulhauner paulhauner added ready-for-review The code is ready for review and removed work-in-progress PR is a work-in-progress labels Oct 6, 2021
@paulhauner paulhauner merged commit 74cfc76 into sigp:merge-f2f Oct 6, 2021
paulhauner added a commit that referenced this pull request Oct 12, 2021
* Reject some HTTP endpoints when EL is not ready

* Restrict more endpoints

* Add watchdog task

* Change scheduling

* Update to new schedule

* Add "syncing" concept

* Remove RequireSynced

* Add is_merge_complete to head_info

* Cache latest_head in Engines

* Call consensus_forkchoiceUpdate on startup
paulhauner added a commit that referenced this pull request Oct 27, 2021
* Reject some HTTP endpoints when EL is not ready

* Restrict more endpoints

* Add watchdog task

* Change scheduling

* Update to new schedule

* Add "syncing" concept

* Remove RequireSynced

* Add is_merge_complete to head_info

* Cache latest_head in Engines

* Call consensus_forkchoiceUpdate on startup
paulhauner added a commit to paulhauner/lighthouse that referenced this pull request Nov 3, 2021
* Reject some HTTP endpoints when EL is not ready

* Restrict more endpoints

* Add watchdog task

* Change scheduling

* Update to new schedule

* Add "syncing" concept

* Remove RequireSynced

* Add is_merge_complete to head_info

* Cache latest_head in Engines

* Call consensus_forkchoiceUpdate on startup
paulhauner added a commit that referenced this pull request Nov 11, 2021
* Reject some HTTP endpoints when EL is not ready

* Restrict more endpoints

* Add watchdog task

* Change scheduling

* Update to new schedule

* Add "syncing" concept

* Remove RequireSynced

* Add is_merge_complete to head_info

* Cache latest_head in Engines

* Call consensus_forkchoiceUpdate on startup
paulhauner added a commit that referenced this pull request Nov 28, 2021
* Reject some HTTP endpoints when EL is not ready

* Restrict more endpoints

* Add watchdog task

* Change scheduling

* Update to new schedule

* Add "syncing" concept

* Remove RequireSynced

* Add is_merge_complete to head_info

* Cache latest_head in Engines

* Call consensus_forkchoiceUpdate on startup
paulhauner added a commit that referenced this pull request Nov 28, 2021
* Reject some HTTP endpoints when EL is not ready

* Restrict more endpoints

* Add watchdog task

* Change scheduling

* Update to new schedule

* Add "syncing" concept

* Remove RequireSynced

* Add is_merge_complete to head_info

* Cache latest_head in Engines

* Call consensus_forkchoiceUpdate on startup
paulhauner added a commit that referenced this pull request Dec 2, 2021
* Reject some HTTP endpoints when EL is not ready

* Restrict more endpoints

* Add watchdog task

* Change scheduling

* Update to new schedule

* Add "syncing" concept

* Remove RequireSynced

* Add is_merge_complete to head_info

* Cache latest_head in Engines

* Call consensus_forkchoiceUpdate on startup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-f2f Relates to the Oct 2021 Merge F2F ready-for-review The code is ready for review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant