-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Regular Sync Inserts PostChainStart Deposits Again Into the State #2199
Comments
This happens consistently under the following conditions:
|
i think there are three (or more) problems here:
|
I recommend solving from the bottom up. So in this order:
|
We should include the spec change from PR ethereum/consensus-specs#594 & PR ethereum/consensus-specs#709 to solve the missing precondition for including a new validator deposit This change has a deposit index that must be equal to the state.deposit_index. def process_deposit(state: BeaconState, deposit: Deposit) -> None:
"""
Process a deposit from Ethereum 1.0.
Note that this function mutates ``state``.
"""
# Deposits must be processed in order
assert deposit.index == state.deposit_index
... |
Pending deposits can be dropped on the following condition:
Pending deposits can only be served via RPC on the following condition:
New blocks can be considered valid with deposits only if deposits are processed in order where:
|
This is part of #1586. We have a major bug in which after restarting a node, regular sync processes previous post-chainstart deposits again into the state, leading validators to double their money. We should not allow this to be the case.
The text was updated successfully, but these errors were encountered: