-
Notifications
You must be signed in to change notification settings - Fork 106
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
Feature: Query CL capability #1533
Comments
@yorickdowne , thanks for opening this issue. |
i think this is a good idea, however i'm unsure we can confirm support for a route such as SubmitBlindedBeaconBlock which requires POSTing an actual block. of course we can send an empty POST request and fail if we get back a 404, but i'm afraid some Beacon nodes would (incorrectly) return a 404 just because there was no block in the request, rather than because they don't support this route altogether |
Yeah that’s a good point. You could supplement with better error reporting. It took too long to know that the missed blocks were due to a missing endpoint. Logging more of the response on failure … code and message really … may have pinpointed that sooner |
@yorickdowne , From looking into the capabilities endpoint of beacon nodes, it only returns a list of supported forks (e.g capable of Capella, Deneb etc..). The only options which sounds cumbersome and complex is to try to call all endpoints at the beginning and crush if any is 404. Indeed we need to change some logs to be clear errors, the case of a not functioning endpoint is none of them. |
Is your feature request related to a problem? Please describe.
Consensus Layer clients might not implement new REST API endpoints at the same time. For example, Nimbus didn’t implement /eth/v2/beacon/blinded_block until July 2024.
As a result, block production with SSV and a pure Nimbus cluster failed.
Describe the solution you'd like
Query the available endpoints / CL capabilities on startup. Vouch code can be used as inspiration, as it does that.
Then either use the capabilities as discovered or, if a missing capability is mandatory, fail with a clear error message.
Describe alternatives you've considered
Robust QA to make sure SSV works with all CLs. The trouble is that this is hard to handle when new CLs come on the market, like Grandine and Lambda. Querying capabilities doesn’t replace QA, but it does provide a baseline that makes the QA job easier.
The text was updated successfully, but these errors were encountered: