Skip to content
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

Do not store withdrawal_credentials #937

Closed
JustinDrake opened this issue Apr 16, 2019 · 1 comment
Closed

Do not store withdrawal_credentials #937

JustinDrake opened this issue Apr 16, 2019 · 1 comment
Labels
general:enhancement New feature or request

Comments

@JustinDrake
Copy link
Collaborator

The Validator object does not need to store withdrawal_credentials. Instead, we can have a stateless approach where withdrawal operations include a Merkle proof to a historical deposit via historical_roots. To make this safe we can check that deposit.data.withdrawal_credentials == ZERO_HASH for deposits to existing validators.

The general heuristic is that consensus storage is much more expensive than consensus bandwidth. This is especially true for withdrawal_credentials which is read exactly once. In the worst case we can save over 100MB from the beacon state.

@JustinDrake
Copy link
Collaborator Author

Closing this issue because withdrawal_credentialsdoes not need to be stored in RAM by validators (it can be stored on disk). It may also be possible to implement statelessness with without consensus support.

@ralexstokes: You gave a thumbs up. Feel free to reopen the issue :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
general:enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants