You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
However, in the meantime I think there are probably some changes charon could make to make this more reliable.
The error log seems to show a request for /eth/v1/beacon/states/head/validators?id=XXX with a single ID. It's possible that timeouts could be avoided by batching multiple IDs in one request. Based on my reading of go-eth2-client, it already has the ability to use the more efficient POST method which can handle an unbounded number of pubkey requests in one go:
Further, it could be good to give charon users the ability to adjust the timeouts used for communicating with the beacon node. I couldn't find in the charon code where the timeout is set, but it seems to be 2s based on the error. On beacon nodes that are struggling under load (or heavily deprioritising charon's requests as in the case of Lighthouse) a fixed timeout that is too short is just going to lead to indefinitely repeating requests. Giving users the ability to lengthen this timeout could mitigate this. Dynamic timeouts a la exponential backoff could also be an option, but are more complicated to implement.
Has this worked before in a previous version?
Not sure.
🔬 Minimal Reproduction
Run charon with Lighthouse and 1000+ inactive validator keys.
🔥 Error
See above.
🌍 Your Environment
Not sure. I can check with Stakely.
The text was updated successfully, but these errors were encountered:
🐞 Bug Report
Description
Based on reports from Stakely, Charon sometimes times out when requesting validator info from Lighthouse:
Part of the reason for this is that Lighthouse considers these request low-priority. I have opened a PR on Lighthouse to change this:
However, in the meantime I think there are probably some changes
charon
could make to make this more reliable.The error log seems to show a request for
/eth/v1/beacon/states/head/validators?id=XXX
with a single ID. It's possible that timeouts could be avoided by batching multiple IDs in one request. Based on my reading ofgo-eth2-client
, it already has the ability to use the more efficientPOST
method which can handle an unbounded number of pubkey requests in one go:https://github.com/attestantio/go-eth2-client/blob/490d07a8e0c258f4528d3039109696679d79787d/http/validators.go#L81
Further, it could be good to give
charon
users the ability to adjust the timeouts used for communicating with the beacon node. I couldn't find in thecharon
code where the timeout is set, but it seems to be 2s based on the error. On beacon nodes that are struggling under load (or heavily deprioritisingcharon
's requests as in the case of Lighthouse) a fixed timeout that is too short is just going to lead to indefinitely repeating requests. Giving users the ability to lengthen this timeout could mitigate this. Dynamic timeouts a la exponential backoff could also be an option, but are more complicated to implement.Has this worked before in a previous version?
Not sure.
🔬 Minimal Reproduction
Run
charon
with Lighthouse and 1000+ inactive validator keys.🔥 Error
See above.
🌍 Your Environment
Not sure. I can check with Stakely.
The text was updated successfully, but these errors were encountered: