-
Notifications
You must be signed in to change notification settings - Fork 31
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
EIP-4881 deposit snapshot support #74
Comments
We can certainly have a look at that @michaelsproul! Thanks for the issue 👍 |
Taking a look at the finalization conditions in the EIP, am I correct in understanding that the checkpoint that should be served is not necessarily the latest If there are more deposits than can be handled in an epoch (or worse, in @michaelsproul Does Lighthouse already take this into account when querying the |
Hello @pietjepuk2,
Not quite. The checkpoint that the In most cases, the Lighthouse will automatically serve the latest snapshot that satisfies the deposit finalization conditions. |
OK, that makes total sense! Got a bit confused with all the checkpoint/finalization nomenclature, thanks for elaborating :) |
@pietjepuk2 By the way I just timed it on my machine (16 core, 32 thread, 64 GB RAM). I already synced the execution engine (nethermind) and just started from an empty datadir for lighthouse. Time it takes for lighthouse to go from nothing to having the deposit cache synced:
In practice you still need to wait ~2 minutes for lighthouse to sync to the head of the chain before you can attest / propose, but still 2 minutes vs 13 minutes is a nice improvement :) |
Haven't had a chance to implement this yet but just noting that it's still on my TODO list 🙏. I'll be making some updates to support Shapella in the next few weeks so will likely be bundled in around then 👍 |
I'm not entirely sure how relevant snapshot deposit support is on the long term with https://eips.ethereum.org/EIPS/eip-6110 . I don't know how many clients will support 4881 (or 6110 for that matter), but thought I'd say least mention it here. |
Teku, Lighthouse, & Nimbus support 4881 already and Prysm has someone in the process of implementing it. Not sure about lodestar. It is possible that 4881 is obsoleted in the future but this will take years as this is still in the planning process and there are a lot of other issues more pressing at the moment. |
Bumping this. Any progress @samcm ? |
Having a look now. Am I correct in saying that there isn't any additional logic required in serving this endpoint? Checkpointz currently operates like this:
Is the change as simple as including the |
you could implement it this way, though for many ( |
Mind if I bump this again @samcm ? |
I've got the bulk of this working @ethDreamer, with the last remaining task being ssz support. Might just roll with JSON support for now - can revisit if needed down the track |
Checkpointz now supports deposit snapshot but [they only support returning them in JSON](ethpandaops/checkpointz#74) so I've modified lighthouse to request them in JSON by default. There's also `get_opt` & `get_opt_with_timeout` methods which seem to expect responses in JSON but were not adding `Accept: application/json` to the request headers so I fixed that as well. Also the beacon API puts quantities in quotes so I fixed that in the snapshot JSON serialization
Checkpointz now supports deposit snapshot but [they only support returning them in JSON](ethpandaops/checkpointz#74) so I've modified lighthouse to request them in JSON by default. There's also `get_opt` & `get_opt_with_timeout` methods which seem to expect responses in JSON but were not adding `Accept: application/json` to the request headers so I fixed that as well. Also the beacon API puts quantities in quotes so I fixed that in the snapshot JSON serialization
Checkpointz now supports deposit snapshot but [they only support returning them in JSON](ethpandaops/checkpointz#74) so I've modified lighthouse to request them in JSON by default. There's also `get_opt` & `get_opt_with_timeout` methods which seem to expect responses in JSON but were not adding `Accept: application/json` to the request headers so I fixed that as well. Also the beacon API puts quantities in quotes so I fixed that in the snapshot JSON serialization
Checkpointz now supports deposit snapshot but [they only support returning them in JSON](ethpandaops/checkpointz#74) so I've modified lighthouse to request them in JSON by default. There's also `get_opt` & `get_opt_with_timeout` methods which seem to expect responses in JSON but were not adding `Accept: application/json` to the request headers so I fixed that as well. Also the beacon API puts quantities in quotes so I fixed that in the snapshot JSON serialization
A new endpoint for quickly synchronising the execution layer deposit cache during checkpoint sync is being standardised in ethereum/beacon-APIs#245.
This API will be available in Lighthouse in our next release v3.3.0, and we would like to support it for our checkpointz instance (
mainnet.checkpoint.sigp.io
) and other checkpointz servers running Lighthouse.Unfortunately my own Go skills are too poor to help with implementation in
checkpointz
, but if someone had time to implement this I would be very grateful 😊The text was updated successfully, but these errors were encountered: