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

feat: implement maxEB EIP-7251 #6539

Merged
merged 41 commits into from
May 7, 2024
Merged

feat: implement maxEB EIP-7251 #6539

merged 41 commits into from
May 7, 2024

Commits on May 6, 2024

  1. feat: implement EIP-6110 (#6042)

    * Add immutable in the dependencies
    
    * Initial change to pubkeyCache
    
    * Added todos
    
    * Moved unfinalized cache to epochCache
    
    * Move populating finalized cache to afterProcessEpoch
    
    * Specify unfinalized cache during state cloning
    
    * Move from unfinalized to finalized cache in afterProcessEpoch
    
    * Confused myself
    
    * Clean up
    
    * Change logic
    
    * Fix cloning issue
    
    * Clean up redundant code
    
    * Add CarryoverData in epochCtx.createFromState
    
    * Fix typo
    
    * Update usage of pubkeyCache
    
    * Update pubkeyCache usage
    
    * Fix lint
    
    * Fix lint
    
    * Add 6110 to ChainConfig
    
    * Add 6110 to BeaconPreset
    
    * Define 6110 fork and container
    
    * Add V6110 api to execution engine
    
    * Update test
    
    * Add depositReceiptsRoot to process_execution_payload
    
    * State transitioning to EIP6110
    
    * State transitioning to EIP6110
    
    * Light client change in EIP-6110
    
    * Update tests
    
    * produceBlock
    
    * Refactor processDeposit to match the spec
    
    * Implement processDepositReceipt
    
    * Implement 6110 fork guard for pubkeyCache
    
    * Handle changes in eth1 deposit
    
    * Update eth1 deposit test
    
    * Fix typo
    
    * Lint
    
    * Remove embarassing comments
    
    * Address comments
    
    * Modify applyDeposit signature
    
    * Update packages/state-transition/src/cache/epochCache.ts
    
    Co-authored-by: Lion - dapplion <[email protected]>
    
    * Update packages/state-transition/src/cache/epochCache.ts
    
    Co-authored-by: Lion - dapplion <[email protected]>
    
    * Update packages/state-transition/src/cache/pubkeyCache.ts
    
    Co-authored-by: Lion - dapplion <[email protected]>
    
    * Remove old code
    
    * Rename fields in epochCache and immutableData
    
    * Remove CarryoverData
    
    * Move isAfter6110 from var to method
    
    * Fix cyclic import
    
    * Fix operations spec runner
    
    * Fix for spec test
    
    * Fix spec test
    
    * state.depositReceiptsStartIndex to BigInt
    
    * getDeposit requires cached state
    
    * default depositReceiptsStartIndex value in genesis
    
    * Fix pubkeyCache bug
    
    * newUnfinalizedPubkeyIndexMap in createCachedBeaconState
    
    * Lint
    
    * Pass epochCache instead of pubkey2IndexFn in apis
    
    * Address comments
    
    * Add unit test on pubkey cache cloning
    
    * Add unfinalizedPubkeyCacheSize to metrics
    
    * Add unfinalizedPubkeyCacheSize to metrics
    
    * Clean up code
    
    * Add besu to el-interop
    
    * Add 6110 genesis file
    
    * Template for sim test
    
    * Add unit test for getEth1DepositCount
    
    * Update sim test
    
    * Update besudocker
    
    * Finish beacon api calls in sim test
    
    * Update epochCache.createFromState()
    
    * Fix bug unfinalized validators are not finalized
    
    * Add sim test to run a few blocks
    
    * Lint
    
    * Merge branch 'unstable' into 611
    
    * Add more check to sim test
    
    * Update besu docker image instruction
    
    * Update sim test with correct tx
    
    * Address comment + cleanup
    
    * Clean up code
    
    * Properly handle promise rejection
    
    * Lint
    
    * Update packages/beacon-node/src/execution/engine/types.ts
    
    Co-authored-by: Lion - dapplion <[email protected]>
    
    * Update comments
    
    * Accept type undefined in ExecutionPayloadBodyRpc
    
    * Update comment and semantic
    
    * Remove if statement when adding finalized validator
    
    * Comment on repeated insert on finalized cache
    
    * rename createFromState
    
    * Add comment on getPubkey()
    
    * Stash change to reduce diffs
    
    * Stash change to reduce diffs
    
    * Lint
    
    * addFinalizedPubkey on finalized checkpoint
    
    * Update comment
    
    * Use OrderedMap for unfinalized cache
    
    * Pull out logic of deleting pubkeys for batch op
    
    * Add updateUnfinalizedPubkeys in regen
    
    * Update updateUnfinalizedPubkeys logic
    
    * Add comment
    
    * Add metrics for state context caches
    
    * Address comment
    
    * Address comment
    
    * Deprecate eth1Data polling when condition is reached
    
    * Fix conflicts
    
    * Fix sim test
    
    * Lint
    
    * Fix type
    
    * Fix test
    
    * Fix test
    
    * Lint
    
    * Update packages/light-client/src/spec/utils.ts
    
    Co-authored-by: Lion - dapplion <[email protected]>
    
    * Fix spec test
    
    * Address comments
    
    * Improve cache logic on checkpoint finalized
    
    * Update sim test according to new cache logic
    
    * Update comment
    
    * Lint
    
    * Finalized pubkey cache only update once per checkpoint
    
    * Add perf test for updateUnfinalizedPubkeys
    
    * Add perf test for updateUnfinalizedPubkeys
    
    * Tweak params for perf test
    
    * Freeze besu docker image version for 6110
    
    * Add benchmark result
    
    * Use Map instead of OrderedMap. Update benchmark
    
    * Minor optimization
    
    * Minor optimization
    
    * Add memory test for immutable.js
    
    * Update test
    
    * Reduce code duplication
    
    * Lint
    
    * Remove try/catch in updateUnfinalizedPubkeys
    
    * Introduce EpochCache metric
    
    * Add historicalValidatorLengths
    
    * Polish code
    
    * Migrate state-transition unit tests to vitest
    
    * Fix calculation of pivot index
    
    * `historicalValidatorLengths` only activate post 6110
    
    * Update sim test
    
    * Lint
    
    * Update packages/state-transition/src/cache/epochCache.ts
    
    Co-authored-by: Lion - dapplion <[email protected]>
    
    * Improve readability on historicalValidatorLengths
    
    * Update types
    
    * Fix calculation
    
    * Add eth1data poll todo
    
    * Add epochCache.getValidatorCountAtEpoch
    
    * Add todo
    
    * Add getStateIterator for state cache
    
    * Partial commit
    
    * Update perf test
    
    * updateUnfinalizedPubkeys directly modify states from regen
    
    * Update sim test. Lint
    
    * Add todo
    
    * some improvements and a fix for effectiveBalanceIncrements fork safeness
    
    * rename eip6110 to elctra
    
    * fix electra-interop.test.ts
    
    ---------
    
    Co-authored-by: Lion - dapplion <[email protected]>
    Co-authored-by: gajinder <[email protected]>
    
    lint and tsc
    
    small cleanup
    
    fix rebase issue
    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    f5a9d9c View commit details
    Browse the repository at this point in the history
  2. feat: implement EIP-6110 (#6042)

    * Add immutable in the dependencies
    
    * Initial change to pubkeyCache
    
    * Added todos
    
    * Moved unfinalized cache to epochCache
    
    * Move populating finalized cache to afterProcessEpoch
    
    * Specify unfinalized cache during state cloning
    
    * Move from unfinalized to finalized cache in afterProcessEpoch
    
    * Confused myself
    
    * Clean up
    
    * Change logic
    
    * Fix cloning issue
    
    * Clean up redundant code
    
    * Add CarryoverData in epochCtx.createFromState
    
    * Fix typo
    
    * Update usage of pubkeyCache
    
    * Update pubkeyCache usage
    
    * Fix lint
    
    * Fix lint
    
    * Add 6110 to ChainConfig
    
    * Add 6110 to BeaconPreset
    
    * Define 6110 fork and container
    
    * Add V6110 api to execution engine
    
    * Update test
    
    * Add depositReceiptsRoot to process_execution_payload
    
    * State transitioning to EIP6110
    
    * State transitioning to EIP6110
    
    * Light client change in EIP-6110
    
    * Update tests
    
    * produceBlock
    
    * Refactor processDeposit to match the spec
    
    * Implement processDepositReceipt
    
    * Implement 6110 fork guard for pubkeyCache
    
    * Handle changes in eth1 deposit
    
    * Update eth1 deposit test
    
    * Fix typo
    
    * Lint
    
    * Remove embarassing comments
    
    * Address comments
    
    * Modify applyDeposit signature
    
    * Update packages/state-transition/src/cache/epochCache.ts
    
    Co-authored-by: Lion - dapplion <[email protected]>
    
    * Update packages/state-transition/src/cache/epochCache.ts
    
    Co-authored-by: Lion - dapplion <[email protected]>
    
    * Update packages/state-transition/src/cache/pubkeyCache.ts
    
    Co-authored-by: Lion - dapplion <[email protected]>
    
    * Remove old code
    
    * Rename fields in epochCache and immutableData
    
    * Remove CarryoverData
    
    * Move isAfter6110 from var to method
    
    * Fix cyclic import
    
    * Fix operations spec runner
    
    * Fix for spec test
    
    * Fix spec test
    
    * state.depositReceiptsStartIndex to BigInt
    
    * getDeposit requires cached state
    
    * default depositReceiptsStartIndex value in genesis
    
    * Fix pubkeyCache bug
    
    * newUnfinalizedPubkeyIndexMap in createCachedBeaconState
    
    * Lint
    
    * Pass epochCache instead of pubkey2IndexFn in apis
    
    * Address comments
    
    * Add unit test on pubkey cache cloning
    
    * Add unfinalizedPubkeyCacheSize to metrics
    
    * Add unfinalizedPubkeyCacheSize to metrics
    
    * Clean up code
    
    * Add besu to el-interop
    
    * Add 6110 genesis file
    
    * Template for sim test
    
    * Add unit test for getEth1DepositCount
    
    * Update sim test
    
    * Update besudocker
    
    * Finish beacon api calls in sim test
    
    * Update epochCache.createFromState()
    
    * Fix bug unfinalized validators are not finalized
    
    * Add sim test to run a few blocks
    
    * Lint
    
    * Merge branch 'unstable' into 611
    
    * Add more check to sim test
    
    * Update besu docker image instruction
    
    * Update sim test with correct tx
    
    * Address comment + cleanup
    
    * Clean up code
    
    * Properly handle promise rejection
    
    * Lint
    
    * Update packages/beacon-node/src/execution/engine/types.ts
    
    Co-authored-by: Lion - dapplion <[email protected]>
    
    * Update comments
    
    * Accept type undefined in ExecutionPayloadBodyRpc
    
    * Update comment and semantic
    
    * Remove if statement when adding finalized validator
    
    * Comment on repeated insert on finalized cache
    
    * rename createFromState
    
    * Add comment on getPubkey()
    
    * Stash change to reduce diffs
    
    * Stash change to reduce diffs
    
    * Lint
    
    * addFinalizedPubkey on finalized checkpoint
    
    * Update comment
    
    * Use OrderedMap for unfinalized cache
    
    * Pull out logic of deleting pubkeys for batch op
    
    * Add updateUnfinalizedPubkeys in regen
    
    * Update updateUnfinalizedPubkeys logic
    
    * Add comment
    
    * Add metrics for state context caches
    
    * Address comment
    
    * Address comment
    
    * Deprecate eth1Data polling when condition is reached
    
    * Fix conflicts
    
    * Fix sim test
    
    * Lint
    
    * Fix type
    
    * Fix test
    
    * Fix test
    
    * Lint
    
    * Update packages/light-client/src/spec/utils.ts
    
    Co-authored-by: Lion - dapplion <[email protected]>
    
    * Fix spec test
    
    * Address comments
    
    * Improve cache logic on checkpoint finalized
    
    * Update sim test according to new cache logic
    
    * Update comment
    
    * Lint
    
    * Finalized pubkey cache only update once per checkpoint
    
    * Add perf test for updateUnfinalizedPubkeys
    
    * Add perf test for updateUnfinalizedPubkeys
    
    * Tweak params for perf test
    
    * Freeze besu docker image version for 6110
    
    * Add benchmark result
    
    * Use Map instead of OrderedMap. Update benchmark
    
    * Minor optimization
    
    * Minor optimization
    
    * Add memory test for immutable.js
    
    * Update test
    
    * Reduce code duplication
    
    * Lint
    
    * Remove try/catch in updateUnfinalizedPubkeys
    
    * Introduce EpochCache metric
    
    * Add historicalValidatorLengths
    
    * Polish code
    
    * Migrate state-transition unit tests to vitest
    
    * Fix calculation of pivot index
    
    * `historicalValidatorLengths` only activate post 6110
    
    * Update sim test
    
    * Lint
    
    * Update packages/state-transition/src/cache/epochCache.ts
    
    Co-authored-by: Lion - dapplion <[email protected]>
    
    * Improve readability on historicalValidatorLengths
    
    * Update types
    
    * Fix calculation
    
    * Add eth1data poll todo
    
    * Add epochCache.getValidatorCountAtEpoch
    
    * Add todo
    
    * Add getStateIterator for state cache
    
    * Partial commit
    
    * Update perf test
    
    * updateUnfinalizedPubkeys directly modify states from regen
    
    * Update sim test. Lint
    
    * Add todo
    
    * some improvements and a fix for effectiveBalanceIncrements fork safeness
    
    * rename eip6110 to elctra
    
    * fix electra-interop.test.ts
    
    ---------
    
    Co-authored-by: Lion - dapplion <[email protected]>
    Co-authored-by: gajinder <[email protected]>
    
    lint and tsc
    
    small cleanup
    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    6aad4cd View commit details
    Browse the repository at this point in the history
  3. Add presets

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    62c76df View commit details
    Browse the repository at this point in the history
  4. Update config

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    9f1efb2 View commit details
    Browse the repository at this point in the history
  5. Add necessary containers

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    2e0ba78 View commit details
    Browse the repository at this point in the history
  6. Update presets

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    4879368 View commit details
    Browse the repository at this point in the history
  7. Update config

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    e931b18 View commit details
    Browse the repository at this point in the history
  8. Add todo comments

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    9ff94c5 View commit details
    Browse the repository at this point in the history
  9. Update constants and params

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    6ea4e2d View commit details
    Browse the repository at this point in the history
  10. Impl new process withdrawal

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    7e20b15 View commit details
    Browse the repository at this point in the history
  11. Add withdrawaRequests to payload

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    d8abeef View commit details
    Browse the repository at this point in the history
  12. Add processConsolidation

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    1e98f41 View commit details
    Browse the repository at this point in the history
  13. Add process withdraw request

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    df3f376 View commit details
    Browse the repository at this point in the history
  14. Update deposit and withdrawal flow

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    be5fd01 View commit details
    Browse the repository at this point in the history
  15. epoch processing

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    5e8be92 View commit details
    Browse the repository at this point in the history
  16. Implement churn limits

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    3d06e16 View commit details
    Browse the repository at this point in the history
  17. Lint

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    c0fa539 View commit details
    Browse the repository at this point in the history
  18. lint

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    1f473fc View commit details
    Browse the repository at this point in the history
  19. Update state-transition utils

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    ff30b74 View commit details
    Browse the repository at this point in the history
  20. processExecutionLayerWithdrawRequest

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    16e18e1 View commit details
    Browse the repository at this point in the history
  21. processConsolidation

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    cf27a34 View commit details
    Browse the repository at this point in the history
  22. queueExcessActiveBalance

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    284b925 View commit details
    Browse the repository at this point in the history
  23. isValidDepositSignature

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    f15a42c View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    ca157c6 View commit details
    Browse the repository at this point in the history
  25. Lint

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    16914f3 View commit details
    Browse the repository at this point in the history
  26. Update maxEB

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    ef15bc2 View commit details
    Browse the repository at this point in the history
  27. update voluntary exit

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    5c16ff3 View commit details
    Browse the repository at this point in the history
  28. Fix config

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    2a967fe View commit details
    Browse the repository at this point in the history
  29. Update initiateValidatorExit

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    2349afa View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    5646fd5 View commit details
    Browse the repository at this point in the history
  31. Fix conflict

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    ffb5ad1 View commit details
    Browse the repository at this point in the history
  32. Add MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    bb29c54 View commit details
    Browse the repository at this point in the history
  33. Reflect latest spec changes

    ensi321 authored and g11tech committed May 6, 2024
    Configuration menu
    Copy the full SHA
    5aba7f4 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    271b7c5 View commit details
    Browse the repository at this point in the history

Commits on May 7, 2024

  1. Upgrade ssz version

    ensi321 committed May 7, 2024
    Configuration menu
    Copy the full SHA
    2f6df3d View commit details
    Browse the repository at this point in the history
  2. Use sliceFrom()

    ensi321 committed May 7, 2024
    Configuration menu
    Copy the full SHA
    a5b5fe0 View commit details
    Browse the repository at this point in the history
  3. cleanup as per specs feedback

    subarry
    g11tech committed May 7, 2024
    Configuration menu
    Copy the full SHA
    fa066f4 View commit details
    Browse the repository at this point in the history
  4. simplify

    g11tech committed May 7, 2024
    Configuration menu
    Copy the full SHA
    51eaa3e View commit details
    Browse the repository at this point in the history
  5. fix withdrawals

    g11tech committed May 7, 2024
    Configuration menu
    Copy the full SHA
    4a7d167 View commit details
    Browse the repository at this point in the history
  6. remove slice

    g11tech committed May 7, 2024
    Configuration menu
    Copy the full SHA
    5ca66e2 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    d5c4c92 View commit details
    Browse the repository at this point in the history