-
-
Notifications
You must be signed in to change notification settings - Fork 317
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: electra fork rebasejul1 - DONOT MERGE #6927
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
add types stub and epoch config fix types
* 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
* feat: implement execution layer exits eip 7002 * lint and tsc fix * apply feedback * improve comment
* Update spec-test version * Skip electra
* Add types * Update unit test * lint * Address comments * Address comments * Lint * Update packages/beacon-node/src/util/sszBytes.ts Co-authored-by: tuyennhv <[email protected]> * Add isElectraAttestation * Update unit test * Update unit test * chore: add comments for sszBytes.ts --------- Co-authored-by: tuyennhv <[email protected]> Co-authored-by: Tuyen Nguyen <[email protected]> Co-authored-by: Gajinder <[email protected]>
* chore: fix the rebase build * fix test
* feat: upgrade 7002 exits to withdrawal request * fix types * fix types and references * further fix the types references and get build passing * update the process ops fn but needs to be extended by maxeb
* 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 * 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 * Add presets * Update config * Add necessary containers * Update presets * Update config * Add todo comments * Update constants and params * Impl new process withdrawal * Add withdrawaRequests to payload * Add processConsolidation * Add process withdraw request * Update deposit and withdrawal flow * epoch processing * Implement churn limits * Lint * lint * Update state-transition utils * processExecutionLayerWithdrawRequest * processConsolidation * queueExcessActiveBalance * isValidDepositSignature * Add jsdoc and timer for new processEpoch functions * Lint * Update maxEB * update voluntary exit * Fix config * Update initiateValidatorExit * Remove churn limit in processRegistryUpdates * Fix conflict * Add MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD * Reflect latest spec changes * rebase fixes, fixes, improvements and cleanup lint * Upgrade ssz version * Use sliceFrom() * cleanup as per specs feedback subarry * simplify * fix withdrawals * remove slice * fix the slashing quotient determination in slashvalidator --------- Co-authored-by: harkamal <[email protected]>
* Process attestations in block * Fix check-types * Address comments
…of deposit receipts (#6746)
* initial commit * lint * Add getAttestingIndices and update getIndexedAttestation * Update gossip validation * Update attestation gossip validation * aggregateAndProof validation * clean up * Validator * Misc * Fix the build erros * feat: get attestations for electra block (#6732) * feat: getAttestationsForBlock() for electra * chore: fix lint * fix: MAX_ATTESTATIONS_PER_GROUP_ELECTRA and address PR comments * chore: unit test aggregateConsolidation * Fix rebase mistake * Address my own comment :) --------- Co-authored-by: Navie Chan <[email protected]> * Fix check-types * Address comments --------- Co-authored-by: Nazar Hussain <[email protected]> Co-authored-by: tuyennhv <[email protected]> Co-authored-by: gajinder <[email protected]>
* feat: attestationPool to group by slot by data root by committee index for electra * fix: gossip validation and assert.notNull() util * fix: remove light-client stats.html * fix: lint and check-types
* Rename receipt to request * Remove stats.html
* initial commit * Update gossip validation * Update attestation gossip validation * aggregateAndProof validation * Extend spec runner to be more flexible * Add missing state attributes for electra * Fix ss data types for electra spec * Make the spec runner more flexible * Fix the bug in process attestation * Update the sepc test version * clean up * Misc * Fix the build erros * feat: get attestations for electra block (#6732) * feat: getAttestationsForBlock() for electra * chore: fix lint * fix: MAX_ATTESTATIONS_PER_GROUP_ELECTRA and address PR comments * chore: unit test aggregateConsolidation * Fix rebase mistake * Address my own comment :) --------- Co-authored-by: Navie Chan <[email protected]> * Fix check-types * Address comments * Fix the build erros * Extend spec runner to be more flexible * Add missing state attributes for electra * Fix ss data types for electra spec * Make the spec runner more flexible * Fix the bug in process attestation * Update the sepc test version * Fix rebase issue * Update committee index count check --------- Co-authored-by: NC <[email protected]> Co-authored-by: Navie Chan <[email protected]> Co-authored-by: tuyennhv <[email protected]>
Update spec version
…g with fork transition (#6754)
fix: get signature for SignedAggregateAndProof based on fork
* Fix attester slashing specs for electra * Remove unused import * Add code comment * Update the expression * Update the fork check
* chore: fix types and lint * fx * type and lint fix
* process pending deposit from eth1 * Fix the genesis params * fix * Fix * clean up --------- Co-authored-by: Nazar Hussain <[email protected]>
Add spec test
* chore: update EffectiveBalanceIncrements type * chore: remove now irrelevant tests
Fix the chunk limit logic
* fix: electra fork transition * fix: merge issue * chore: remove unwanted change
…balance (#6780) Update eb cache at fork transition
fix lint and check-types
Fix publishing att with non-zero comm index
* fix attestation duty validation * Update packages/validator/src/services/validatorStore.ts Co-authored-by: twoeths <[email protected]> * Update packages/validator/src/services/validatorStore.ts --------- Co-authored-by: twoeths <[email protected]> Co-authored-by: Cayman <[email protected]>
* fix: align BeaconBlockBody and BlindedBeaconBlockBody * Remove type hacks in test --------- Co-authored-by: Nico Flaig <[email protected]>
* test: improve ssz tests consistency * chore: address comments
* fix: get seen AttData key from SignedAggregateAndProof electra * chore: revert the naming change to COMMITTEE_BITS_SIZE and add comment * fix: add toBase64() util
* test: only skip ssz_static tests associated to missing type * More detailed error message if type is not defined
* Add ByHash and ByRange V2 * Fix build issue * Fix CI error
chore: fix bls and blst versioning fix: add ForkName.electra to ForkBlobsInfo some api header lookup fixes more api fixes make the api data safe Co-authored-by: matthewkeil <[email protected]>
* Handle exiting validataor * lint * Add todo
…ix (#6865) * init commit * Add consolidation request * fix lint * Remove ExecutionLayer prefix * Address comment * Fix verification logic * lint * Add todo
* Update spec test version * Use new max effective balance * Relax loop breaking condition for `computeProposerIndex` * fix remaining * check-types & lint * Skip invalid test * Fix rebase + lint * Remove early return statement in `computeProposers` * Address comment * Address comment
lint & type fix lint
get the signing log
g11tech
changed the title
Electra fork rebasejul1 - DONOT MERGE
feat: electra fork rebasejul1 - DONOT MERGE
Jul 1, 2024
|
Benchmark suite | Current: 50e4d98 | Previous: e6c559f | Ratio |
---|---|---|---|
altair processBlock - 250000 vs - 7PWei normalcase | 12.481 ms/op | 3.4702 ms/op | 3.60 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 69.928 us/op | 17.538 us/op | 3.99 |
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 222.00 us/op | 69.570 us/op | 3.19 |
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 1.6862 ms/op | 490.12 us/op | 3.44 |
altair processEpoch - mainnet_e81889 | 4.7769 s/op | 347.15 ms/op | 13.76 |
phase0 processEpoch - mainnet_e58758 | 3.0845 s/op | 354.81 ms/op | 8.69 |
phase0 processEffectiveBalanceUpdates - 250000 normalcase | 7.8049 ms/op | 755.84 us/op | 10.33 |
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 8.4294 ms/op | 1.4120 ms/op | 5.97 |
Buffer.compare 123687377 | 11.049 ms/op | 3.6191 ms/op | 3.05 |
Full benchmark results
Benchmark suite | Current: 50e4d98 | Previous: e6c559f | Ratio |
---|---|---|---|
getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 464.63 us/op | 680.59 us/op | 0.68 |
getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 48.247 us/op | 37.482 us/op | 1.29 |
BLS verify - blst-native | 1.2593 ms/op | 1.0529 ms/op | 1.20 |
BLS verifyMultipleSignatures 3 - blst-native | 2.7222 ms/op | 2.2441 ms/op | 1.21 |
BLS verifyMultipleSignatures 8 - blst-native | 6.0089 ms/op | 4.9718 ms/op | 1.21 |
BLS verifyMultipleSignatures 32 - blst-native | 21.670 ms/op | 18.278 ms/op | 1.19 |
BLS verifyMultipleSignatures 64 - blst-native | 42.252 ms/op | 36.012 ms/op | 1.17 |
BLS verifyMultipleSignatures 128 - blst-native | 83.551 ms/op | 71.514 ms/op | 1.17 |
BLS deserializing 10000 signatures | 867.25 ms/op | 760.79 ms/op | 1.14 |
BLS deserializing 100000 signatures | 8.7463 s/op | 7.5924 s/op | 1.15 |
BLS verifyMultipleSignatures - same message - 3 - blst-native | 1.2599 ms/op | 1.0994 ms/op | 1.15 |
BLS verifyMultipleSignatures - same message - 8 - blst-native | 1.4328 ms/op | 1.2495 ms/op | 1.15 |
BLS verifyMultipleSignatures - same message - 32 - blst-native | 2.3229 ms/op | 2.0526 ms/op | 1.13 |
BLS verifyMultipleSignatures - same message - 64 - blst-native | 3.6940 ms/op | 3.2425 ms/op | 1.14 |
BLS verifyMultipleSignatures - same message - 128 - blst-native | 5.6005 ms/op | 5.3955 ms/op | 1.04 |
BLS aggregatePubkeys 32 - blst-native | 26.155 us/op | 22.102 us/op | 1.18 |
BLS aggregatePubkeys 128 - blst-native | 99.961 us/op | 82.664 us/op | 1.21 |
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 82.062 ms/op | 57.600 ms/op | 1.42 |
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 69.774 ms/op | 41.358 ms/op | 1.69 |
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 54.269 ms/op | 28.982 ms/op | 1.87 |
getSlashingsAndExits - default max | 99.251 us/op | 69.462 us/op | 1.43 |
getSlashingsAndExits - 2k | 323.98 us/op | 229.50 us/op | 1.41 |
proposeBlockBody type=full, size=empty | 7.2218 ms/op | 5.0027 ms/op | 1.44 |
isKnown best case - 1 super set check | 286.00 ns/op | 225.00 ns/op | 1.27 |
isKnown normal case - 2 super set checks | 279.00 ns/op | 221.00 ns/op | 1.26 |
isKnown worse case - 16 super set checks | 278.00 ns/op | 223.00 ns/op | 1.25 |
InMemoryCheckpointStateCache - add get delete | 4.4160 us/op | 3.6990 us/op | 1.19 |
updateUnfinalizedPubkeys - updating 10 pubkeys | 984.98 us/op | ||
updateUnfinalizedPubkeys - updating 100 pubkeys | 4.4158 ms/op | ||
updateUnfinalizedPubkeys - updating 1000 pubkeys | 67.773 ms/op | ||
validate api signedAggregateAndProof - struct | 2.7011 ms/op | 2.2215 ms/op | 1.22 |
validate gossip signedAggregateAndProof - struct | 2.7425 ms/op | 2.2253 ms/op | 1.23 |
validate gossip attestation - vc 640000 | 1.3161 ms/op | 1.0987 ms/op | 1.20 |
batch validate gossip attestation - vc 640000 - chunk 32 | 158.34 us/op | 126.21 us/op | 1.25 |
batch validate gossip attestation - vc 640000 - chunk 64 | 137.99 us/op | 114.32 us/op | 1.21 |
batch validate gossip attestation - vc 640000 - chunk 128 | 124.05 us/op | 105.64 us/op | 1.17 |
batch validate gossip attestation - vc 640000 - chunk 256 | 123.96 us/op | 104.59 us/op | 1.19 |
pickEth1Vote - no votes | 1.1030 ms/op | 847.56 us/op | 1.30 |
pickEth1Vote - max votes | 7.9013 ms/op | 7.2483 ms/op | 1.09 |
pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 11.886 ms/op | 13.108 ms/op | 0.91 |
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 16.479 ms/op | 17.456 ms/op | 0.94 |
pickEth1Vote - Eth1Data fastSerialize value x2048 | 516.14 us/op | 330.40 us/op | 1.56 |
pickEth1Vote - Eth1Data fastSerialize tree x2048 | 3.9260 ms/op | 4.7988 ms/op | 0.82 |
bytes32 toHexString | 454.00 ns/op | 353.00 ns/op | 1.29 |
bytes32 Buffer.toString(hex) | 240.00 ns/op | 190.00 ns/op | 1.26 |
bytes32 Buffer.toString(hex) from Uint8Array | 373.00 ns/op | 265.00 ns/op | 1.41 |
bytes32 Buffer.toString(hex) + 0x | 244.00 ns/op | 187.00 ns/op | 1.30 |
Object access 1 prop | 0.14800 ns/op | 0.11200 ns/op | 1.32 |
Map access 1 prop | 0.13900 ns/op | 0.10700 ns/op | 1.30 |
Object get x1000 | 6.0630 ns/op | 5.1910 ns/op | 1.17 |
Map get x1000 | 6.3620 ns/op | 5.5090 ns/op | 1.15 |
Object set x1000 | 32.970 ns/op | 24.932 ns/op | 1.32 |
Map set x1000 | 22.820 ns/op | 18.212 ns/op | 1.25 |
Return object 10000 times | 0.29240 ns/op | 0.27050 ns/op | 1.08 |
Throw Error 10000 times | 3.4189 us/op | 2.5170 us/op | 1.36 |
fastMsgIdFn sha256 / 200 bytes | 2.4160 us/op | 1.5780 us/op | 1.53 |
fastMsgIdFn h32 xxhash / 200 bytes | 249.00 ns/op | 178.00 ns/op | 1.40 |
fastMsgIdFn h64 xxhash / 200 bytes | 275.00 ns/op | 200.00 ns/op | 1.38 |
fastMsgIdFn sha256 / 1000 bytes | 7.4830 us/op | 5.3350 us/op | 1.40 |
fastMsgIdFn h32 xxhash / 1000 bytes | 391.00 ns/op | 295.00 ns/op | 1.33 |
fastMsgIdFn h64 xxhash / 1000 bytes | 342.00 ns/op | 263.00 ns/op | 1.30 |
fastMsgIdFn sha256 / 10000 bytes | 66.074 us/op | 46.294 us/op | 1.43 |
fastMsgIdFn h32 xxhash / 10000 bytes | 1.9520 us/op | 1.5850 us/op | 1.23 |
fastMsgIdFn h64 xxhash / 10000 bytes | 1.2520 us/op | 1.0220 us/op | 1.23 |
send data - 1000 256B messages | 14.911 ms/op | 9.4890 ms/op | 1.57 |
send data - 1000 512B messages | 18.793 ms/op | 12.867 ms/op | 1.46 |
send data - 1000 1024B messages | 27.903 ms/op | 19.907 ms/op | 1.40 |
send data - 1000 1200B messages | 28.930 ms/op | 21.536 ms/op | 1.34 |
send data - 1000 2048B messages | 36.890 ms/op | 26.333 ms/op | 1.40 |
send data - 1000 4096B messages | 33.080 ms/op | 24.722 ms/op | 1.34 |
send data - 1000 16384B messages | 76.898 ms/op | 59.399 ms/op | 1.29 |
send data - 1000 65536B messages | 218.90 ms/op | 184.61 ms/op | 1.19 |
enrSubnets - fastDeserialize 64 bits | 1.1260 us/op | 808.00 ns/op | 1.39 |
enrSubnets - ssz BitVector 64 bits | 360.00 ns/op | 266.00 ns/op | 1.35 |
enrSubnets - fastDeserialize 4 bits | 145.00 ns/op | 121.00 ns/op | 1.20 |
enrSubnets - ssz BitVector 4 bits | 351.00 ns/op | 263.00 ns/op | 1.33 |
prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 141.41 us/op | 110.38 us/op | 1.28 |
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 169.34 us/op | 129.77 us/op | 1.30 |
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 229.37 us/op | 189.31 us/op | 1.21 |
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 409.68 us/op | 336.56 us/op | 1.22 |
prioritizePeers score 0:0 att 64-1 sync 4-1 | 520.63 us/op | 405.49 us/op | 1.28 |
array of 16000 items push then shift | 1.6444 us/op | 1.1859 us/op | 1.39 |
LinkedList of 16000 items push then shift | 7.2410 ns/op | 7.0350 ns/op | 1.03 |
array of 16000 items push then pop | 100.63 ns/op | 77.215 ns/op | 1.30 |
LinkedList of 16000 items push then pop | 7.0050 ns/op | 6.0860 ns/op | 1.15 |
array of 24000 items push then shift | 2.4357 us/op | 1.7278 us/op | 1.41 |
LinkedList of 24000 items push then shift | 7.4240 ns/op | 6.3580 ns/op | 1.17 |
array of 24000 items push then pop | 153.20 ns/op | 98.779 ns/op | 1.55 |
LinkedList of 24000 items push then pop | 8.2110 ns/op | 5.6940 ns/op | 1.44 |
intersect bitArray bitLen 8 | 6.4460 ns/op | 4.8560 ns/op | 1.33 |
intersect array and set length 8 | 45.632 ns/op | 34.627 ns/op | 1.32 |
intersect bitArray bitLen 128 | 29.413 ns/op | 24.696 ns/op | 1.19 |
intersect array and set length 128 | 671.11 ns/op | 528.50 ns/op | 1.27 |
bitArray.getTrueBitIndexes() bitLen 128 | 1.4290 us/op | 1.0660 us/op | 1.34 |
bitArray.getTrueBitIndexes() bitLen 248 | 2.2560 us/op | 1.8360 us/op | 1.23 |
bitArray.getTrueBitIndexes() bitLen 512 | 4.4130 us/op | 3.4220 us/op | 1.29 |
Buffer.concat 32 items | 918.00 ns/op | 759.00 ns/op | 1.21 |
Uint8Array.set 32 items | 1.9040 us/op | 1.5850 us/op | 1.20 |
Buffer.copy | 2.2990 us/op | 2.0840 us/op | 1.10 |
Uint8Array.set - with subarray | 3.1360 us/op | 2.8890 us/op | 1.09 |
Uint8Array.set - without subarray | 1.8280 us/op | 1.8590 us/op | 0.98 |
Set add up to 64 items then delete first | 2.1881 us/op | 1.7721 us/op | 1.23 |
OrderedSet add up to 64 items then delete first | 3.2165 us/op | 2.7261 us/op | 1.18 |
Set add up to 64 items then delete last | 2.4480 us/op | 2.0798 us/op | 1.18 |
OrderedSet add up to 64 items then delete last | 3.7575 us/op | 2.9007 us/op | 1.30 |
Set add up to 64 items then delete middle | 2.4536 us/op | 1.8476 us/op | 1.33 |
OrderedSet add up to 64 items then delete middle | 5.2595 us/op | 4.1120 us/op | 1.28 |
Set add up to 128 items then delete first | 4.9431 us/op | 3.9800 us/op | 1.24 |
OrderedSet add up to 128 items then delete first | 7.6478 us/op | 6.1807 us/op | 1.24 |
Set add up to 128 items then delete last | 4.8374 us/op | 3.8154 us/op | 1.27 |
OrderedSet add up to 128 items then delete last | 6.9451 us/op | 5.7575 us/op | 1.21 |
Set add up to 128 items then delete middle | 4.6756 us/op | 3.8230 us/op | 1.22 |
OrderedSet add up to 128 items then delete middle | 13.205 us/op | 11.233 us/op | 1.18 |
Set add up to 256 items then delete first | 9.8310 us/op | 7.7339 us/op | 1.27 |
OrderedSet add up to 256 items then delete first | 15.619 us/op | 12.154 us/op | 1.29 |
Set add up to 256 items then delete last | 9.3578 us/op | 7.4695 us/op | 1.25 |
OrderedSet add up to 256 items then delete last | 13.904 us/op | 11.429 us/op | 1.22 |
Set add up to 256 items then delete middle | 9.2458 us/op | 7.4371 us/op | 1.24 |
OrderedSet add up to 256 items then delete middle | 39.988 us/op | 33.522 us/op | 1.19 |
transfer serialized Status (84 B) | 1.2800 us/op | 1.2560 us/op | 1.02 |
copy serialized Status (84 B) | 1.0420 us/op | 974.00 ns/op | 1.07 |
transfer serialized SignedVoluntaryExit (112 B) | 1.3440 us/op | 1.3000 us/op | 1.03 |
copy serialized SignedVoluntaryExit (112 B) | 1.0790 us/op | 1.0520 us/op | 1.03 |
transfer serialized ProposerSlashing (416 B) | 1.4280 us/op | 2.0170 us/op | 0.71 |
copy serialized ProposerSlashing (416 B) | 1.4720 us/op | 2.1440 us/op | 0.69 |
transfer serialized Attestation (485 B) | 1.5390 us/op | 1.9400 us/op | 0.79 |
copy serialized Attestation (485 B) | 1.5110 us/op | 2.0850 us/op | 0.72 |
transfer serialized AttesterSlashing (33232 B) | 1.7260 us/op | 1.9820 us/op | 0.87 |
copy serialized AttesterSlashing (33232 B) | 4.4130 us/op | 5.6550 us/op | 0.78 |
transfer serialized Small SignedBeaconBlock (128000 B) | 2.2820 us/op | 2.4230 us/op | 0.94 |
copy serialized Small SignedBeaconBlock (128000 B) | 13.038 us/op | 12.111 us/op | 1.08 |
transfer serialized Avg SignedBeaconBlock (200000 B) | 2.9100 us/op | 2.6970 us/op | 1.08 |
copy serialized Avg SignedBeaconBlock (200000 B) | 19.746 us/op | 17.000 us/op | 1.16 |
transfer serialized BlobsSidecar (524380 B) | 2.7770 us/op | 2.5320 us/op | 1.10 |
copy serialized BlobsSidecar (524380 B) | 95.150 us/op | 109.53 us/op | 0.87 |
transfer serialized Big SignedBeaconBlock (1000000 B) | 3.2230 us/op | 2.9630 us/op | 1.09 |
copy serialized Big SignedBeaconBlock (1000000 B) | 149.53 us/op | 130.50 us/op | 1.15 |
pass gossip attestations to forkchoice per slot | 3.0885 ms/op | 2.3925 ms/op | 1.29 |
forkChoice updateHead vc 100000 bc 64 eq 0 | 492.91 us/op | 374.43 us/op | 1.32 |
forkChoice updateHead vc 600000 bc 64 eq 0 | 3.0883 ms/op | 2.5107 ms/op | 1.23 |
forkChoice updateHead vc 1000000 bc 64 eq 0 | 5.1780 ms/op | 4.5978 ms/op | 1.13 |
forkChoice updateHead vc 600000 bc 320 eq 0 | 3.0936 ms/op | 2.5358 ms/op | 1.22 |
forkChoice updateHead vc 600000 bc 1200 eq 0 | 3.1281 ms/op | 2.5371 ms/op | 1.23 |
forkChoice updateHead vc 600000 bc 7200 eq 0 | 3.8310 ms/op | 2.7924 ms/op | 1.37 |
forkChoice updateHead vc 600000 bc 64 eq 1000 | 10.623 ms/op | 9.4519 ms/op | 1.12 |
forkChoice updateHead vc 600000 bc 64 eq 10000 | 10.626 ms/op | 9.3944 ms/op | 1.13 |
forkChoice updateHead vc 600000 bc 64 eq 300000 | 14.622 ms/op | 10.875 ms/op | 1.34 |
computeDeltas 500000 validators 300 proto nodes | 3.7583 ms/op | 3.0213 ms/op | 1.24 |
computeDeltas 500000 validators 1200 proto nodes | 3.8144 ms/op | 3.1402 ms/op | 1.21 |
computeDeltas 500000 validators 7200 proto nodes | 3.6843 ms/op | 3.0369 ms/op | 1.21 |
computeDeltas 750000 validators 300 proto nodes | 5.8891 ms/op | 4.4145 ms/op | 1.33 |
computeDeltas 750000 validators 1200 proto nodes | 6.0631 ms/op | 4.4399 ms/op | 1.37 |
computeDeltas 750000 validators 7200 proto nodes | 6.2146 ms/op | 4.3963 ms/op | 1.41 |
computeDeltas 1400000 validators 300 proto nodes | 11.224 ms/op | 8.2329 ms/op | 1.36 |
computeDeltas 1400000 validators 1200 proto nodes | 10.784 ms/op | 8.2271 ms/op | 1.31 |
computeDeltas 1400000 validators 7200 proto nodes | 13.112 ms/op | 8.2651 ms/op | 1.59 |
computeDeltas 2100000 validators 300 proto nodes | 17.796 ms/op | 11.962 ms/op | 1.49 |
computeDeltas 2100000 validators 1200 proto nodes | 17.346 ms/op | 12.354 ms/op | 1.40 |
computeDeltas 2100000 validators 7200 proto nodes | 18.092 ms/op | 12.111 ms/op | 1.49 |
altair processAttestation - 250000 vs - 7PWei normalcase | 3.3118 ms/op | 1.3274 ms/op | 2.50 |
altair processAttestation - 250000 vs - 7PWei worstcase | 4.9269 ms/op | 2.0343 ms/op | 2.42 |
altair processAttestation - setStatus - 1/6 committees join | 124.39 us/op | 68.473 us/op | 1.82 |
altair processAttestation - setStatus - 1/3 committees join | 240.89 us/op | 131.70 us/op | 1.83 |
altair processAttestation - setStatus - 1/2 committees join | 306.73 us/op | 183.78 us/op | 1.67 |
altair processAttestation - setStatus - 2/3 committees join | 400.55 us/op | 262.07 us/op | 1.53 |
altair processAttestation - setStatus - 4/5 committees join | 576.50 us/op | 377.46 us/op | 1.53 |
altair processAttestation - setStatus - 100% committees join | 705.08 us/op | 456.20 us/op | 1.55 |
altair processBlock - 250000 vs - 7PWei normalcase | 12.481 ms/op | 3.4702 ms/op | 3.60 |
altair processBlock - 250000 vs - 7PWei normalcase hashState | 35.673 ms/op | 24.516 ms/op | 1.46 |
altair processBlock - 250000 vs - 7PWei worstcase | 41.380 ms/op | 39.116 ms/op | 1.06 |
altair processBlock - 250000 vs - 7PWei worstcase hashState | 101.63 ms/op | 76.947 ms/op | 1.32 |
phase0 processBlock - 250000 vs - 7PWei normalcase | 2.8103 ms/op | 2.1728 ms/op | 1.29 |
phase0 processBlock - 250000 vs - 7PWei worstcase | 31.234 ms/op | 22.028 ms/op | 1.42 |
altair processEth1Data - 250000 vs - 7PWei normalcase | 534.33 us/op | 237.11 us/op | 2.25 |
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 10.481 us/op | 4.1210 us/op | 2.54 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 69.928 us/op | 17.538 us/op | 3.99 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 18.670 us/op | 6.3970 us/op | 2.92 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 13.042 us/op | 4.5490 us/op | 2.87 |
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 222.00 us/op | 69.570 us/op | 3.19 |
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 1.6862 ms/op | 490.12 us/op | 3.44 |
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 2.2334 ms/op | 1.0416 ms/op | 2.14 |
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 2.0882 ms/op | 1.1104 ms/op | 1.88 |
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 5.0068 ms/op | 1.8457 ms/op | 2.71 |
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 2.1103 ms/op | 1.1820 ms/op | 1.79 |
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 5.3635 ms/op | 2.9122 ms/op | 1.84 |
Tree 40 250000 create | 513.67 ms/op | 174.28 ms/op | 2.95 |
Tree 40 250000 get(125000) | 175.58 ns/op | 103.06 ns/op | 1.70 |
Tree 40 250000 set(125000) | 1.2703 us/op | 482.01 ns/op | 2.64 |
Tree 40 250000 toArray() | 23.837 ms/op | 11.896 ms/op | 2.00 |
Tree 40 250000 iterate all - toArray() + loop | 23.136 ms/op | 11.851 ms/op | 1.95 |
Tree 40 250000 iterate all - get(i) | 62.840 ms/op | 39.135 ms/op | 1.61 |
Array 250000 create | 4.4116 ms/op | 2.2465 ms/op | 1.96 |
Array 250000 clone - spread | 1.6903 ms/op | 1.1641 ms/op | 1.45 |
Array 250000 get(125000) | 0.47000 ns/op | 0.35600 ns/op | 1.32 |
Array 250000 set(125000) | 0.48800 ns/op | 0.36600 ns/op | 1.33 |
Array 250000 iterate all - loop | 92.452 us/op | 74.972 us/op | 1.23 |
phase0 afterProcessEpoch - 250000 vs - 7PWei | 95.630 ms/op | 77.154 ms/op | 1.24 |
phase0 beforeProcessEpoch - 250000 vs - 7PWei | 52.074 ms/op | 36.117 ms/op | 1.44 |
altair processEpoch - mainnet_e81889 | 4.7769 s/op | 347.15 ms/op | 13.76 |
mainnet_e81889 - altair beforeProcessEpoch | 77.496 ms/op | 43.367 ms/op | 1.79 |
mainnet_e81889 - altair processJustificationAndFinalization | 28.222 us/op | 9.2700 us/op | 3.04 |
mainnet_e81889 - altair processInactivityUpdates | 8.7035 ms/op | 5.2472 ms/op | 1.66 |
mainnet_e81889 - altair processRewardsAndPenalties | 49.705 ms/op | 49.556 ms/op | 1.00 |
mainnet_e81889 - altair processRegistryUpdates | 3.8630 us/op | 1.5830 us/op | 2.44 |
mainnet_e81889 - altair processSlashings | 679.00 ns/op | 348.00 ns/op | 1.95 |
mainnet_e81889 - altair processEth1DataReset | 535.00 ns/op | 267.00 ns/op | 2.00 |
mainnet_e81889 - altair processEffectiveBalanceUpdates | 215.02 ms/op | 1.1248 ms/op | 191.16 |
mainnet_e81889 - altair processSlashingsReset | 3.9090 us/op | 2.3290 us/op | 1.68 |
mainnet_e81889 - altair processRandaoMixesReset | 3.9590 us/op | 2.9780 us/op | 1.33 |
mainnet_e81889 - altair processHistoricalRootsUpdate | 472.00 ns/op | 365.00 ns/op | 1.29 |
mainnet_e81889 - altair processParticipationFlagUpdates | 3.6720 us/op | 1.2480 us/op | 2.94 |
mainnet_e81889 - altair processSyncCommitteeUpdates | 908.00 ns/op | 297.00 ns/op | 3.06 |
mainnet_e81889 - altair afterProcessEpoch | 99.916 ms/op | 80.556 ms/op | 1.24 |
capella processEpoch - mainnet_e217614 | 2.4383 s/op | 1.1798 s/op | 2.07 |
mainnet_e217614 - capella beforeProcessEpoch | 259.56 ms/op | 217.77 ms/op | 1.19 |
mainnet_e217614 - capella processJustificationAndFinalization | 17.494 us/op | 9.7180 us/op | 1.80 |
mainnet_e217614 - capella processInactivityUpdates | 22.811 ms/op | 14.896 ms/op | 1.53 |
mainnet_e217614 - capella processRewardsAndPenalties | 259.97 ms/op | 251.56 ms/op | 1.03 |
mainnet_e217614 - capella processRegistryUpdates | 15.685 us/op | 10.264 us/op | 1.53 |
mainnet_e217614 - capella processSlashings | 413.00 ns/op | 313.00 ns/op | 1.32 |
mainnet_e217614 - capella processEth1DataReset | 405.00 ns/op | 240.00 ns/op | 1.69 |
mainnet_e217614 - capella processEffectiveBalanceUpdates | 108.21 ms/op | 3.8012 ms/op | 28.47 |
mainnet_e217614 - capella processSlashingsReset | 3.7640 us/op | 1.5520 us/op | 2.43 |
mainnet_e217614 - capella processRandaoMixesReset | 8.0320 us/op | 2.3650 us/op | 3.40 |
mainnet_e217614 - capella processHistoricalRootsUpdate | 1.6150 us/op | 265.00 ns/op | 6.09 |
mainnet_e217614 - capella processParticipationFlagUpdates | 2.0230 us/op | 1.1070 us/op | 1.83 |
mainnet_e217614 - capella afterProcessEpoch | 247.89 ms/op | 228.63 ms/op | 1.08 |
phase0 processEpoch - mainnet_e58758 | 3.0845 s/op | 354.81 ms/op | 8.69 |
mainnet_e58758 - phase0 beforeProcessEpoch | 128.05 ms/op | 98.406 ms/op | 1.30 |
mainnet_e58758 - phase0 processJustificationAndFinalization | 14.498 us/op | 9.4680 us/op | 1.53 |
mainnet_e58758 - phase0 processRewardsAndPenalties | 40.135 ms/op | 32.832 ms/op | 1.22 |
mainnet_e58758 - phase0 processRegistryUpdates | 13.777 us/op | 5.6420 us/op | 2.44 |
mainnet_e58758 - phase0 processSlashings | 405.00 ns/op | 288.00 ns/op | 1.41 |
mainnet_e58758 - phase0 processEth1DataReset | 666.00 ns/op | 300.00 ns/op | 2.22 |
mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 150.21 ms/op | 723.34 us/op | 207.66 |
mainnet_e58758 - phase0 processSlashingsReset | 4.5560 us/op | 1.4860 us/op | 3.07 |
mainnet_e58758 - phase0 processRandaoMixesReset | 5.9940 us/op | 2.2010 us/op | 2.72 |
mainnet_e58758 - phase0 processHistoricalRootsUpdate | 446.00 ns/op | 274.00 ns/op | 1.63 |
mainnet_e58758 - phase0 processParticipationRecordUpdates | 5.1470 us/op | 3.4700 us/op | 1.48 |
mainnet_e58758 - phase0 afterProcessEpoch | 86.759 ms/op | 63.283 ms/op | 1.37 |
phase0 processEffectiveBalanceUpdates - 250000 normalcase | 7.8049 ms/op | 755.84 us/op | 10.33 |
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 8.4294 ms/op | 1.4120 ms/op | 5.97 |
altair processInactivityUpdates - 250000 normalcase | 23.726 ms/op | 16.188 ms/op | 1.47 |
altair processInactivityUpdates - 250000 worstcase | 25.130 ms/op | 16.084 ms/op | 1.56 |
phase0 processRegistryUpdates - 250000 normalcase | 12.502 us/op | 4.2810 us/op | 2.92 |
phase0 processRegistryUpdates - 250000 badcase_full_deposits | 392.11 us/op | 302.09 us/op | 1.30 |
phase0 processRegistryUpdates - 250000 worstcase 0.5 | 146.25 ms/op | 107.69 ms/op | 1.36 |
altair processRewardsAndPenalties - 250000 normalcase | 35.220 ms/op | 39.511 ms/op | 0.89 |
altair processRewardsAndPenalties - 250000 worstcase | 35.381 ms/op | 39.312 ms/op | 0.90 |
phase0 getAttestationDeltas - 250000 normalcase | 9.5731 ms/op | 5.6705 ms/op | 1.69 |
phase0 getAttestationDeltas - 250000 worstcase | 10.480 ms/op | 5.9105 ms/op | 1.77 |
phase0 processSlashings - 250000 worstcase | 120.58 us/op | 48.773 us/op | 2.47 |
altair processSyncCommitteeUpdates - 250000 | 141.38 ms/op | 107.30 ms/op | 1.32 |
BeaconState.hashTreeRoot - No change | 435.00 ns/op | 217.00 ns/op | 2.00 |
BeaconState.hashTreeRoot - 1 full validator | 133.95 us/op | 115.84 us/op | 1.16 |
BeaconState.hashTreeRoot - 32 full validator | 1.3533 ms/op | 1.3593 ms/op | 1.00 |
BeaconState.hashTreeRoot - 512 full validator | 14.639 ms/op | 13.302 ms/op | 1.10 |
BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 171.85 us/op | 128.00 us/op | 1.34 |
BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 2.5145 ms/op | 1.6546 ms/op | 1.52 |
BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 35.550 ms/op | 20.866 ms/op | 1.70 |
BeaconState.hashTreeRoot - 1 balances | 148.24 us/op | 122.88 us/op | 1.21 |
BeaconState.hashTreeRoot - 32 balances | 1.0720 ms/op | 784.34 us/op | 1.37 |
BeaconState.hashTreeRoot - 512 balances | 11.029 ms/op | 11.739 ms/op | 0.94 |
BeaconState.hashTreeRoot - 250000 balances | 195.92 ms/op | 164.03 ms/op | 1.19 |
aggregationBits - 2048 els - zipIndexesInBitList | 36.672 us/op | 18.713 us/op | 1.96 |
byteArrayEquals 32 | 58.084 ns/op | 46.390 ns/op | 1.25 |
Buffer.compare 32 | 17.953 ns/op | 16.062 ns/op | 1.12 |
byteArrayEquals 1024 | 1.6484 us/op | 1.2397 us/op | 1.33 |
Buffer.compare 1024 | 25.986 ns/op | 22.594 ns/op | 1.15 |
byteArrayEquals 16384 | 26.384 us/op | 19.672 us/op | 1.34 |
Buffer.compare 16384 | 200.39 ns/op | 175.26 ns/op | 1.14 |
byteArrayEquals 123687377 | 199.77 ms/op | 146.38 ms/op | 1.36 |
Buffer.compare 123687377 | 11.049 ms/op | 3.6191 ms/op | 3.05 |
byteArrayEquals 32 - diff last byte | 55.198 ns/op | 45.481 ns/op | 1.21 |
Buffer.compare 32 - diff last byte | 18.085 ns/op | 15.718 ns/op | 1.15 |
byteArrayEquals 1024 - diff last byte | 1.6666 us/op | 1.2204 us/op | 1.37 |
Buffer.compare 1024 - diff last byte | 26.752 ns/op | 22.587 ns/op | 1.18 |
byteArrayEquals 16384 - diff last byte | 26.410 us/op | 19.385 us/op | 1.36 |
Buffer.compare 16384 - diff last byte | 200.36 ns/op | 168.99 ns/op | 1.19 |
byteArrayEquals 123687377 - diff last byte | 196.92 ms/op | 145.72 ms/op | 1.35 |
Buffer.compare 123687377 - diff last byte | 9.7382 ms/op | 5.2654 ms/op | 1.85 |
byteArrayEquals 32 - random bytes | 5.4470 ns/op | 4.2380 ns/op | 1.29 |
Buffer.compare 32 - random bytes | 17.811 ns/op | 14.002 ns/op | 1.27 |
byteArrayEquals 1024 - random bytes | 5.4250 ns/op | 4.2100 ns/op | 1.29 |
Buffer.compare 1024 - random bytes | 17.798 ns/op | 13.798 ns/op | 1.29 |
byteArrayEquals 16384 - random bytes | 5.4260 ns/op | 4.2030 ns/op | 1.29 |
Buffer.compare 16384 - random bytes | 17.865 ns/op | 13.767 ns/op | 1.30 |
byteArrayEquals 123687377 - random bytes | 7.3600 ns/op | 5.4700 ns/op | 1.35 |
Buffer.compare 123687377 - random bytes | 20.960 ns/op | 14.670 ns/op | 1.43 |
regular array get 100000 times | 37.698 us/op | 27.323 us/op | 1.38 |
wrappedArray get 100000 times | 34.501 us/op | 27.097 us/op | 1.27 |
arrayWithProxy get 100000 times | 13.620 ms/op | 8.2046 ms/op | 1.66 |
ssz.Root.equals | 47.733 ns/op | 39.494 ns/op | 1.21 |
byteArrayEquals | 46.998 ns/op | 39.174 ns/op | 1.20 |
Buffer.compare | 10.939 ns/op | 8.0020 ns/op | 1.37 |
shuffle list - 16384 els | 6.6505 ms/op | 5.0002 ms/op | 1.33 |
shuffle list - 250000 els | 96.925 ms/op | 72.911 ms/op | 1.33 |
processSlot - 1 slots | 16.699 us/op | 10.110 us/op | 1.65 |
processSlot - 32 slots | 4.3382 ms/op | 2.8659 ms/op | 1.51 |
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 39.742 ms/op | 42.280 ms/op | 0.94 |
getCommitteeAssignments - req 1 vs - 250000 vc | 2.2326 ms/op | 1.7798 ms/op | 1.25 |
getCommitteeAssignments - req 100 vs - 250000 vc | 4.3210 ms/op | 3.4565 ms/op | 1.25 |
getCommitteeAssignments - req 1000 vs - 250000 vc | 4.6536 ms/op | 3.6917 ms/op | 1.26 |
findModifiedValidators - 10000 modified validators | 326.70 ms/op | 228.07 ms/op | 1.43 |
findModifiedValidators - 1000 modified validators | 207.75 ms/op | 161.64 ms/op | 1.29 |
findModifiedValidators - 100 modified validators | 230.02 ms/op | 157.34 ms/op | 1.46 |
findModifiedValidators - 10 modified validators | 237.93 ms/op | 140.47 ms/op | 1.69 |
findModifiedValidators - 1 modified validators | 207.08 ms/op | 136.59 ms/op | 1.52 |
findModifiedValidators - no difference | 187.96 ms/op | 148.61 ms/op | 1.26 |
compare ViewDUs | 3.5060 s/op | 2.8320 s/op | 1.24 |
compare each validator Uint8Array | 1.6244 s/op | 1.5759 s/op | 1.03 |
compare ViewDU to Uint8Array | 1.3589 s/op | 669.58 ms/op | 2.03 |
migrate state 1000000 validators, 24 modified, 0 new | 771.11 ms/op | 569.76 ms/op | 1.35 |
migrate state 1000000 validators, 1700 modified, 1000 new | 1.0509 s/op | 795.04 ms/op | 1.32 |
migrate state 1000000 validators, 3400 modified, 2000 new | 1.3257 s/op | 990.87 ms/op | 1.34 |
migrate state 1500000 validators, 24 modified, 0 new | 797.62 ms/op | 563.49 ms/op | 1.42 |
migrate state 1500000 validators, 1700 modified, 1000 new | 1.0225 s/op | 742.10 ms/op | 1.38 |
migrate state 1500000 validators, 3400 modified, 2000 new | 1.2699 s/op | 981.87 ms/op | 1.29 |
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 5.1900 ns/op | 3.7200 ns/op | 1.40 |
state getBlockRootAtSlot - 250000 vs - 7PWei | 830.62 ns/op | 517.87 ns/op | 1.60 |
computeProposers - vc 250000 | 8.6168 ms/op | 6.3329 ms/op | 1.36 |
computeEpochShuffling - vc 250000 | 106.47 ms/op | 80.882 ms/op | 1.32 |
getNextSyncCommittee - vc 250000 | 151.93 ms/op | 94.895 ms/op | 1.60 |
computeSigningRoot for AttestationData | 25.952 us/op | 17.136 us/op | 1.51 |
hash AttestationData serialized data then Buffer.toString(base64) | 1.7303 us/op | 1.1619 us/op | 1.49 |
toHexString serialized data | 1.1492 us/op | 756.74 ns/op | 1.52 |
Buffer.toString(base64) | 207.04 ns/op | 139.31 ns/op | 1.49 |
by benchmarkbot/action
Merged
superceeded in favour of #6986 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
track/fix CI on the electra-fork rebase on allforks removal work