feat: implement Nimbus beacon service #434
Merged
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.
Implements Nimbus Beacon service (validator service to follow).
Two things I think could be contentious:
Using
ExecPreStart
for the checkpoint sync. Nimbus has this implemented somewhat awkwardly IMO, in that it's a separate command.ExecPreStart
has a timeout of 15 mins; in all my testing the checkpoint finished downloading in 2 or 3 mins, but had it not completed before the timeout, the systemd service will fail to start. We can as well adjust that 15 minute timeout to be longer or infinite.Opening REST and Metrics ports by default. This seems to be done by default in Lighthouse at least, which i used for reference for a lot of this, however I would argue that the majority of users would not want these exposed and as such maybe it should be a more explicit enable, either within the module or done outside of it. Not sure what the best UX is here.