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

WIP: request result simulation #236

Draft
wants to merge 49 commits into
base: master
Choose a base branch
from
Draft

Conversation

pk910
Copy link
Member

@pk910 pk910 commented Feb 8, 2025

This PR adds a simulator for el triggered requests, that allows showing more details about the request outcome:
image

Simulation is needed because dora does not fetch and hold a full beacon state for each epoch. Beacon states are only available for the dependent block of each epoch - which is normally the post-state of the last slot in previous epoch.
To make accurate assumptions about the outcome of el triggered requests at any slot number, dora needs to replay all blocks on top of the last available state, simulating all relevant operations that have an effect of the validator set (partial withdrawals, voluntary exits, slashings, consolidations & withdrawal requests).
Fortunately, all blocks are available in memory and the max number of blocks to process is limited by the number of slots in one epoch, so the CPU overhead for this simulation should be manageable. However, to avoid potential computation bottlenecks, the simulation results are also cached in the block container.

Simulation results for consolidation requests

  • Success
  • Total active balance too low (required: xx ETH)
  • Consolidation queue is full
  • Source validator not found
  • Source validator has invalid credentials
  • Source validator withdrawal address does not match tx sender
  • Source validator is not active
  • Source validator is not old enough (min. xx epochs)
  • Source validator has pending partial withdrawal
  • Target validator not found
  • Target validator has invalid credentials
  • Target validator withdrawal address does not match tx sender
  • Target validator is not compounding
  • Target validator is not active

Simulation results for withdrawal requests

  • Success
  • Withdrawal queue is full
  • Validator not found
  • Validator has invalid credentials
  • Validator withdrawal address does not match tx sender
  • Validator is not active
  • Validator is not old enough (min. xx epochs)
  • Validator is not compounding
  • Validator has pending partial withdrawal
  • Validator balance too low

Test instance running for pectra-devnet-6:
http://157.180.18.78:8080/validators/el_consolidations?f=&f.minsi=100&f.orphaned=1&c=50

gated on:

pk910 added 30 commits December 17, 2024 23:07
…eferenced from the activity cache (huge memory leak for big networks)
@pk910 pk910 added the build-docker-image Automatically build docker image for PR branch label Feb 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build-docker-image Automatically build docker image for PR branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant