-
Notifications
You must be signed in to change notification settings - Fork 986
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
Checkpoint Sync 5/5 - end-to-end test #10387
Conversation
5be0fa9
to
a4e0afd
Compare
164b6c7
to
34571cd
Compare
I just built Prysm using this branch and tried to checkpoint sync against a Lighthouse node, but it failed due to the absence of the
I noticed that you try to detect a 404 from the BN and fallback to a backwards-compatible impl if it doesn't exist, but Lighthouse returns a 405 for non-existent HTTP methods (this is our bad, I've opened an issue here to track that: sigp/lighthouse#3112). It might be cool to handle the 405 in the meantime 🙏 After trying Lighthouse I tried Teku via Infura, and got a
|
a4e0afd
to
d17c1c7
Compare
feb5120
to
c1a8f56
Compare
Hi @kasey curious about the status of this one and if there's anything I can do to help |
Hi @michaelsproul, thanks for trying this out! I opened a bug last week on the basic auth issue #10467 and plan to handle 405 equivalent to 404. Sorry this PR got a little stalled, I had to take some personal time off in the last week - I will ping you when these issues are resolved. |
34571cd
to
23baedc
Compare
39c2df1
to
03fba41
Compare
@michaelsproul we just merged PR #10723 which significantly changes the way our checkpoint sync works. Instead of trying to fetch the block from the beginning of the latest weak subjectivity period, we simply fetch the latest finalized block, working on the assumption that this is preferable in terms of sync speed. This is also more compatible with Infura, which fails to serve the state-by-slot request we need to accompany the checkpoint block, but does a fine job fetching |
Closing this PR as checkpoint sync behavior changed heavily in #10723 which includes its own e2e test. |
What type of PR is this?
Other
What does this PR do? Why is it needed?
This PR adds a step to the existing end-to-end test to perform retrieve a checkpoint state+block from one of the running nodes once all nodes are in their final synced state.
Which issues(s) does this PR fix?
Fixes #
Other notes for review
Due to the way the checkpoint sync period is calculated and the small number of epochs in the end-to-end, this test will currently always fetch the genesis state. It would probably be better for it to fetch HEAD-1, but that would require modifying ws calculation. Alternatively we could tweak the parameters of the checkpoint sync algorithm (like the safety coefficient) to try to shorten the interval to just an epoch or so, but I need to look at the math again to check how many epochs e2e would need to run for this to be feasible.