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

chore: v1.20.0 release #6942

Merged
merged 56 commits into from
Jul 11, 2024
Merged

chore: v1.20.0 release #6942

merged 56 commits into from
Jul 11, 2024

Conversation

philknows
Copy link
Member

Release PR for v1.20.0

philknows and others added 30 commits June 4, 2024 16:59
* Update and rename LICENSE to LICENSE-LGPL

* Create LICENSE-APACHE
* chore: improve vitest output

* chore: address comments

* chore: address comments
* chore: add new FAQ about yarn version

* chore address comments

* chore: address comments

* Update CONTRIBUTING.md

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: address comments

* chore: address comments

* Update docs/pages/faqs.md

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* Update docs/pages/faqs.md

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: address comments

* chore: address comments

* fix: typo

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
* docs: introduce new layout

* fix: incorrect paths

* chore: added binaries section

* fix: broken links

* chore: cleanup

* chore: setup redirects

* chore: added missing dependency

* chore: upgraded docusaurus

* chore: remove duplicated page

* chore: lints
* Second batch of changes

* Wire proposer boost related code to block production

* Update test

* Update metrics

* Update packages/beacon-node/test/e2e/chain/proposerBoostReorg.test.ts

Co-authored-by: twoeths <tuyen@chainsafe.io>

* Address comment

* Update packages/beacon-node/src/metrics/metrics/beacon.ts

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* Compute hash treet root of updatedPrepareState

* computeStateHashTreeRoot after prepareExecutionPayload

* fix build issue

* Fix spec test

* lint

* Remove Enabled suffix

* Fix merge

* Add alias

* Update packages/cli/src/options/beaconNodeOptions/chain.ts

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: add predictProposerHead regen enum

---------

Co-authored-by: twoeths <tuyen@chainsafe.io>
Co-authored-by: Nico Flaig <nflaig@protonmail.com>
Co-authored-by: Tuyen Nguyen <vutuyen2636@gmail.com>
* Add config route definitions

* Add debug route definitions

* Add events route description

* Add lightclient route definitions

* Flatten function params

* Type safety for optional params in write / parse req

* Method args are optional if only optional props

* Fix genesisValidatorsRoot type issue

* Revert requiring all params in write / parse req

* Update http client errors

* Add lodestar route definitions

* Add node route definitions

* Add proof route definitions

* Add builder route definitions

* Add validator route definitions

* Application method response can be void

* Generic options can be passed to application methods

* Default endpoint request type has body property

* Improve types of transform methods

* Export server types from index (to be removed)

* Update config api impl

* Update lightclient api impl

* Update events api impl

* Update lodestar api impl

* Update proof api impl

* Update node api impl

* Update debug api impl

* Update state api impl

* Update pool api impl

* Update blocks api impl

* Partially update validator api impl

* Update beacon routes export

* Align submitPoolBlsToExecutionChange method args

* Filters are always a object

* Update errors messages

* Add beacon client methods

* Add missing routeId label to stream time metric

* Fix json casing in codecs

* Apply remaining changes from #6227

* Produce block apis only have version meta

* Add block values meta to all produce block apis

* Apply changes from #6337

* Handle unsafe version in WithMeta and WithVersion

* Restore server api error

* Update fastify route types

* Update server routes / handlers

* Remove unnecessary type cast

* Restore per route clients

* Fix beacon route types

* Remove option to patch fetch from http client

* Update eventstream client, remove fetch override

Fallback does not work like this, see #6180 for proper solution

* Use StringType for validator status until #6059

* Remove empty fetch.ts file

* Add a few todos

* Update builder client and server routes

* Update beacon exports

* Update api index exports

* Update builder index imports

* Improve type safety of schema definitions

* Add headers to fastify schema

* Fix schema definition type

* Add missing schemas to route definitions

* Fix response codec type

* Remove response codec type casts

* Fix casing in json only codec

* Reuse EmptyResponseCodec

* Update base rest api server

* Update keymanager routes, client and server

* Reuse data types in keymanager impl

* Do not await setting headers, not a promise

* Improve type safety of empty codecs

* Only require to implement supported req methods

* Handle requests that only support one format

* Handle responses that only support one format

* Add json / ssz only req codecs

* Update only support errors

* Fix assertion

* Set correct accept header if only supports one format

* Fix eslint / prettier issues

* More formatting fixes

* Fix fallback request retries in case of http errors

* Formatting of res.error

* Add add retry functionality to http client (from #6387)

* Update rewards routes and server (#6178 and #6260)

* Allow to omit body in ssz req if not defined

* Always set metadata headers in response

* Cache wire format in api response

* Only call raw body for json meta

* Update api package tests (wip)

* Test json and ssz format in generic server tests

* Add a bunch of todos

* Fix a few broken route definitions

* Fix partial config test

* Another todo note

* Stringify body of json requests

* Override default response json method

* Validate external consensus version headers in request

* Add error handling todo

* Skip body schema validation for ssz request bodies

* Clean up generic server tests

* Pass node, proof, events generic tests

* Use enum for media types

* Fix a bunch of route definitions

* Add justified to blockid type

* Properly handle booleans, remove block values codec

* Create Uint8Array test data without allocating Buffer

* Let fastify handle Buffer conversion

* Convert Buffer to Uint8Array in content type parser

* Fix build issues

* Fix fork type in builder routes

* Add some notes

* Properly parse request headers

* Fix incorrect type assumptions in transform

* Generic server tests are passing (except lightclient)

* Correctly handle APIs with empty responses

* Update getHeader return type to reflect no bid responses

* Do not append '?' to URL if query string is empty

* Let server handler set status code for parsing errors

* Remove unused import

* Rename function, request specific

* Completely drop ssz support from getSpec

* Spec tests are passing against latest releases

* Drop unused fastify route config

* Drop ssz request from builder routes, not yet supported

* Remove import

* Apply change from #6695

* Update execution optimistic meta

* Apply changes from #6645

* Add workaround to fix epoch committees type issue

* Add todo to fix inefficient state conversion

* Convert committee to normal array

* Apply changes from #6655

* Align args of validators endpoints

* Convert indices to str in rewards apis

* Update api spec version of README badges

* Revert table formatting changes

* Make this accessible for class-basd API implementations

* Throw err if metadata is accessed for failed response

* Add assertOk to api response

* Tweak api error message

* Update operationIds match spec value

* Add missing version to blob sidecars metadata

* Test headers and ssz bodies against spec

* Minor reordering of code in spec parsing

* submitBlindedBlock throws err if fork is not execution

* responseOk might be undefined

* Remove statusOk from route definition

* Remove stale comment

* Less build errors in beacon-node

* getBlobSidecars return version from server impl

* Update validator produce block impl

* More expressive pool method args

* Application methods might be undefined in mock implementations

* Adress open TODOs in server handler

* Api response methods are synchronous now

* Fix all remaining build issues

* Use more performant from/toHex in server api impls

* Clean up some TODOs

* Fix ApiError type

* Errors related to parsing return a 400 status code

* Simplify method binding

* Forward api context to application methods

* There is no easy way to make generic opts typesafe

* Better separation of server / client code

* Fix comment about missing builder bid

* Remove todo, not worth the change / extra indentation

* Rename route definitions functions

* Return 400 if data passed to keymanager is invalid

* Properly handle response metadata headers

* Fix lint issues

* Add header jsdoc

* Move metadata related code into separate file

* Remove ssz from POST requests without body

* Only set content-type header if body exists

* Fix headers extra

* POST requests without body are handled similar to GET requests

* Fix http client options tests

* Improve validation and type safety of JSON metadata

* Add type guard for request without body

* Differentiate based on body instead of GET vs POST

* More renaming

* Simplify RequestCode type

* Review routes, improve validation

* Remaining local diff

* Fix accept header handling if only support one wire format

* Update 406 error to more closely match spec example

* Enforce version header via custom check instead of schema

* Use ssz as default request wire format

* Log failure to receive head event to verbose

* Do not set default value for context

* Update getClient return type to better align with method name

* Consistent pattern to get route definitions

* Dedupe api client type for builder and keymanager

* Fix fallback logic if server returns http error

* Update head event error logging

* Retry 415 errors with JSON and cache SSZ not supported

* Use fetch spy to assert call times

* Update comment

* Update getLightClientUpdatesByRange endpoint meta

* Do not forward ssz bytes of blinded block to publishBlock

* Fix lightclient e2e tests

* Version header in publishBlock api is optional

* Reduce type duplication

* Add option to override request init in route definition

* Add JsonOnlyResp codec

* Validate boolean str value from headers

* Document default wire formats

* Simplify merging of inits in http client

* Remove type hacks from fetchBeaconHealth

* Reduce call stack in http client

* Add .ssz() equivalent method for json to api response

* More http client tests

* Ensure topics query is provided to eventstream api

* Validate request content type in handler

Fastify does not cover all edge cases

* Review routes, fix param docs, no empty comments

* Fix typo

* Add note about builder spec not supporting ssz

* Consistently move keymanager jsdoc to routes

* Sanitize user provided init values before merging

* Remove unused ssz only codec

* Allow passing wire formats as string literals

* chore: review proof routes (#6843)

Review proof routes

* chore: review lightclient routes (#6842)

Review lightclient routes

* chore: review node routes (#6844)

Review node routes

* feat: add cli flags to configure http wire format (#6840)

* Review PR, mostly cosmetic changes

* Fix event stream error handling

---------

Co-authored-by: Cayman <caymannava@gmail.com>
* chore: remove no longer supported networks from config

* Fix spelling of lighthouse
…l interface of crucible (#6871)

* Use the logger consistently

* Fix types

* Fix lint errors

* Fix types
fix: ignore empty ids/statuses when filtering validators
* fix: revert docs link removal

* chore: address comments

* update links and fix broken links

* fix lint

* update wordlist

* fix wordlist sort

---------

Co-authored-by: Phil Ngo <phil@chainsafe.io>
This is not possible for most routes as request will fail schema validation
…a columns (#6693)

rename types and fix references to them

update forkchoice and availability flow

propagate changes to the codebase

lint and tsc

some fixes

cleanup

test run fixes

fix the tests

fix

apply feedback
* Fix browser failing tests

* Phrasing

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
* Fix test case

* Lint

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
* fix: update holesky repository layout

* fix sepolia url too

* update sepolia repository

* fix lint
* fix: prune invalid ssz objects

* fix: handle non-existing invalidSszObjects folder

* Review PR

* fix: expect empty dirs to be removed in unit tests

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
…6890)

* fix: move server api method invocation out of try-catch for parsing

* Further simplify / group handler logic
nflaig and others added 22 commits June 24, 2024 10:52
* feat: add endpoint to fetch blinded blocks

* Reorder test assertions
* Remove all types

* Add unit tests

* Update the function name

* Update fork utility functions

* Cleanup utility usage

* Fix lint errors

* Fix types

* Update spec tests

* Update the types usage

* Fix the lint errors

* Update code as per feedback

* Update code as per feedback

* Fix lint errors

* Fix lint errors

* chore: fix type inference of exclude function (#6916)

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
* feat: add to block processor and bls dashboards

* chore: fix up dashboards
* fix: prepareNextEpoch metric

* Apply suggestions from code review

---------

Co-authored-by: Cayman <caymannava@gmail.com>
…6912)

* Split bundle build process

* Add build:bundle task

* Add check-bundle task

* Ignore bundle from lint

* Add ignore pattern to config file
* feat: add warning log to notifier if execution client is offline

* refactor: convert execution engine state to a public property
…#6920)

* fix: getHealth returns 206 status code if EL is syncing / optimistic

* Report 206 if EL is offline
* feat: add warning log if primary beacon node is unhealthy

* Fix api client stub type

* Improve http client stub

* Update all api client stubs

* Only sanitize primary node url once
* Add no-reorg reason panel

* Add weak block panel
* chore: reduce call stack in http client

* Fix binding

* Add private method to get request method

* Pass init to request method getter
@philknows philknows requested a review from a team as a code owner July 10, 2024 01:09
Copy link

codecov bot commented Jul 10, 2024

Codecov Report

Attention: Patch coverage is 91.47966% with 467 lines in your changes missing coverage. Please review.

Project coverage is 62.51%. Comparing base (c5b4c1c) to head (539fcc5).

Additional details and impacted files
@@            Coverage Diff             @@
##           stable    #6942      +/-   ##
==========================================
+ Coverage   62.20%   62.51%   +0.31%     
==========================================
  Files         571      575       +4     
  Lines       60021    61015     +994     
  Branches     1977     2130     +153     
==========================================
+ Hits        37334    38143     +809     
- Misses      22644    22833     +189     
+ Partials       43       39       -4     

Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 691bd4d Previous: - Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 976.25 us/op
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 44.339 us/op
BLS verify - blst-native 1.1036 ms/op
BLS verifyMultipleSignatures 3 - blst-native 2.3429 ms/op
BLS verifyMultipleSignatures 8 - blst-native 5.1994 ms/op
BLS verifyMultipleSignatures 32 - blst-native 19.000 ms/op
BLS verifyMultipleSignatures 64 - blst-native 37.658 ms/op
BLS verifyMultipleSignatures 128 - blst-native 73.997 ms/op
BLS deserializing 10000 signatures 771.28 ms/op
BLS deserializing 100000 signatures 7.9730 s/op
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.1404 ms/op
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.3687 ms/op
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.0275 ms/op
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.0202 ms/op
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.8788 ms/op
BLS aggregatePubkeys 32 - blst-native 23.558 us/op
BLS aggregatePubkeys 128 - blst-native 89.612 us/op
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 69.738 ms/op
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 52.863 ms/op
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 30.247 ms/op
getSlashingsAndExits - default max 80.491 us/op
getSlashingsAndExits - 2k 276.51 us/op
proposeBlockBody type=full, size=empty 4.5597 ms/op
isKnown best case - 1 super set check 468.00 ns/op
isKnown normal case - 2 super set checks 447.00 ns/op
isKnown worse case - 16 super set checks 442.00 ns/op
InMemoryCheckpointStateCache - add get delete 4.0900 us/op
validate api signedAggregateAndProof - struct 2.2895 ms/op
validate gossip signedAggregateAndProof - struct 2.2891 ms/op
validate gossip attestation - vc 640000 1.0864 ms/op
batch validate gossip attestation - vc 640000 - chunk 32 132.84 us/op
batch validate gossip attestation - vc 640000 - chunk 64 114.84 us/op
batch validate gossip attestation - vc 640000 - chunk 128 107.25 us/op
batch validate gossip attestation - vc 640000 - chunk 256 102.76 us/op
pickEth1Vote - no votes 763.33 us/op
pickEth1Vote - max votes 7.8929 ms/op
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.099 ms/op
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 17.952 ms/op
pickEth1Vote - Eth1Data fastSerialize value x2048 375.95 us/op
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.3016 ms/op
bytes32 toHexString 580.00 ns/op
bytes32 Buffer.toString(hex) 440.00 ns/op
bytes32 Buffer.toString(hex) from Uint8Array 542.00 ns/op
bytes32 Buffer.toString(hex) + 0x 442.00 ns/op
Object access 1 prop 0.32400 ns/op
Map access 1 prop 0.32500 ns/op
Object get x1000 5.1040 ns/op
Map get x1000 5.9660 ns/op
Object set x1000 25.078 ns/op
Map set x1000 19.702 ns/op
Return object 10000 times 0.29990 ns/op
Throw Error 10000 times 2.6952 us/op
fastMsgIdFn sha256 / 200 bytes 1.9450 us/op
fastMsgIdFn h32 xxhash / 200 bytes 420.00 ns/op
fastMsgIdFn h64 xxhash / 200 bytes 471.00 ns/op
fastMsgIdFn sha256 / 1000 bytes 5.8960 us/op
fastMsgIdFn h32 xxhash / 1000 bytes 542.00 ns/op
fastMsgIdFn h64 xxhash / 1000 bytes 542.00 ns/op
fastMsgIdFn sha256 / 10000 bytes 50.639 us/op
fastMsgIdFn h32 xxhash / 10000 bytes 1.9200 us/op
fastMsgIdFn h64 xxhash / 10000 bytes 1.3460 us/op
send data - 1000 256B messages 9.3962 ms/op
send data - 1000 512B messages 13.134 ms/op
send data - 1000 1024B messages 20.308 ms/op
send data - 1000 1200B messages 22.949 ms/op
send data - 1000 2048B messages 28.254 ms/op
send data - 1000 4096B messages 26.072 ms/op
send data - 1000 16384B messages 66.456 ms/op
send data - 1000 65536B messages 243.13 ms/op
enrSubnets - fastDeserialize 64 bits 1.1090 us/op
enrSubnets - ssz BitVector 64 bits 504.00 ns/op
enrSubnets - fastDeserialize 4 bits 325.00 ns/op
enrSubnets - ssz BitVector 4 bits 505.00 ns/op
prioritizePeers score -10:0 att 32-0.1 sync 2-0 107.01 us/op
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 126.05 us/op
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 187.79 us/op
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 333.98 us/op
prioritizePeers score 0:0 att 64-1 sync 4-1 404.76 us/op
array of 16000 items push then shift 1.2856 us/op
LinkedList of 16000 items push then shift 6.3640 ns/op
array of 16000 items push then pop 75.967 ns/op
LinkedList of 16000 items push then pop 6.0480 ns/op
array of 24000 items push then shift 1.7392 us/op
LinkedList of 24000 items push then shift 6.8900 ns/op
array of 24000 items push then pop 101.18 ns/op
LinkedList of 24000 items push then pop 6.0950 ns/op
intersect bitArray bitLen 8 5.3680 ns/op
intersect array and set length 8 35.606 ns/op
intersect bitArray bitLen 128 25.368 ns/op
intersect array and set length 128 547.43 ns/op
bitArray.getTrueBitIndexes() bitLen 128 1.3470 us/op
bitArray.getTrueBitIndexes() bitLen 248 2.1270 us/op
bitArray.getTrueBitIndexes() bitLen 512 3.9350 us/op
Buffer.concat 32 items 943.00 ns/op
Uint8Array.set 32 items 1.9520 us/op
Buffer.copy 2.0340 us/op
Uint8Array.set - with subarray 2.6600 us/op
Uint8Array.set - without subarray 1.7680 us/op
Set add up to 64 items then delete first 1.6308 us/op
OrderedSet add up to 64 items then delete first 2.5362 us/op
Set add up to 64 items then delete last 1.8865 us/op
OrderedSet add up to 64 items then delete last 2.9193 us/op
Set add up to 64 items then delete middle 1.8779 us/op
OrderedSet add up to 64 items then delete middle 4.2240 us/op
Set add up to 128 items then delete first 3.6245 us/op
OrderedSet add up to 128 items then delete first 5.4815 us/op
Set add up to 128 items then delete last 3.6063 us/op
OrderedSet add up to 128 items then delete last 5.6777 us/op
Set add up to 128 items then delete middle 3.5923 us/op
OrderedSet add up to 128 items then delete middle 11.064 us/op
Set add up to 256 items then delete first 7.1370 us/op
OrderedSet add up to 256 items then delete first 11.018 us/op
Set add up to 256 items then delete last 7.1363 us/op
OrderedSet add up to 256 items then delete last 11.387 us/op
Set add up to 256 items then delete middle 7.1155 us/op
OrderedSet add up to 256 items then delete middle 32.445 us/op
transfer serialized Status (84 B) 1.4250 us/op
copy serialized Status (84 B) 1.2250 us/op
transfer serialized SignedVoluntaryExit (112 B) 1.5110 us/op
copy serialized SignedVoluntaryExit (112 B) 1.2430 us/op
transfer serialized ProposerSlashing (416 B) 2.1480 us/op
copy serialized ProposerSlashing (416 B) 2.0800 us/op
transfer serialized Attestation (485 B) 2.2820 us/op
copy serialized Attestation (485 B) 2.1510 us/op
transfer serialized AttesterSlashing (33232 B) 2.3800 us/op
copy serialized AttesterSlashing (33232 B) 4.1610 us/op
transfer serialized Small SignedBeaconBlock (128000 B) 2.5560 us/op
copy serialized Small SignedBeaconBlock (128000 B) 9.9350 us/op
transfer serialized Avg SignedBeaconBlock (200000 B) 2.7590 us/op
copy serialized Avg SignedBeaconBlock (200000 B) 14.090 us/op
transfer serialized BlobsSidecar (524380 B) 2.9920 us/op
copy serialized BlobsSidecar (524380 B) 135.18 us/op
transfer serialized Big SignedBeaconBlock (1000000 B) 3.2420 us/op
copy serialized Big SignedBeaconBlock (1000000 B) 317.22 us/op
pass gossip attestations to forkchoice per slot 2.6165 ms/op
forkChoice updateHead vc 100000 bc 64 eq 0 506.23 us/op
forkChoice updateHead vc 600000 bc 64 eq 0 2.4792 ms/op
forkChoice updateHead vc 1000000 bc 64 eq 0 4.1327 ms/op
forkChoice updateHead vc 600000 bc 320 eq 0 2.4796 ms/op
forkChoice updateHead vc 600000 bc 1200 eq 0 2.5549 ms/op
forkChoice updateHead vc 600000 bc 7200 eq 0 3.1932 ms/op
forkChoice updateHead vc 600000 bc 64 eq 1000 9.1174 ms/op
forkChoice updateHead vc 600000 bc 64 eq 10000 8.9880 ms/op
forkChoice updateHead vc 600000 bc 64 eq 300000 11.419 ms/op
computeDeltas 500000 validators 300 proto nodes 2.8307 ms/op
computeDeltas 500000 validators 1200 proto nodes 2.9107 ms/op
computeDeltas 500000 validators 7200 proto nodes 2.9528 ms/op
computeDeltas 750000 validators 300 proto nodes 4.4032 ms/op
computeDeltas 750000 validators 1200 proto nodes 4.3666 ms/op
computeDeltas 750000 validators 7200 proto nodes 4.4176 ms/op
computeDeltas 1400000 validators 300 proto nodes 7.9904 ms/op
computeDeltas 1400000 validators 1200 proto nodes 8.2089 ms/op
computeDeltas 1400000 validators 7200 proto nodes 8.1814 ms/op
computeDeltas 2100000 validators 300 proto nodes 12.658 ms/op
computeDeltas 2100000 validators 1200 proto nodes 12.608 ms/op
computeDeltas 2100000 validators 7200 proto nodes 12.377 ms/op
altair processAttestation - 250000 vs - 7PWei normalcase 1.4400 ms/op
altair processAttestation - 250000 vs - 7PWei worstcase 2.1164 ms/op
altair processAttestation - setStatus - 1/6 committees join 65.447 us/op
altair processAttestation - setStatus - 1/3 committees join 128.88 us/op
altair processAttestation - setStatus - 1/2 committees join 190.85 us/op
altair processAttestation - setStatus - 2/3 committees join 243.09 us/op
altair processAttestation - setStatus - 4/5 committees join 374.09 us/op
altair processAttestation - setStatus - 100% committees join 473.03 us/op
altair processBlock - 250000 vs - 7PWei normalcase 3.2185 ms/op
altair processBlock - 250000 vs - 7PWei normalcase hashState 26.651 ms/op
altair processBlock - 250000 vs - 7PWei worstcase 44.791 ms/op
altair processBlock - 250000 vs - 7PWei worstcase hashState 73.741 ms/op
phase0 processBlock - 250000 vs - 7PWei normalcase 2.5728 ms/op
phase0 processBlock - 250000 vs - 7PWei worstcase 23.341 ms/op
altair processEth1Data - 250000 vs - 7PWei normalcase 243.82 us/op
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 5.1940 us/op
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 11.484 us/op
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 6.1050 us/op
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 2.7460 us/op
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 40.864 us/op
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 816.92 us/op
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 694.35 us/op
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.0260 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.0465 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.1571 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.2398 ms/op
Tree 40 250000 create 182.60 ms/op
Tree 40 250000 get(125000) 113.98 ns/op
Tree 40 250000 set(125000) 545.65 ns/op
Tree 40 250000 toArray() 9.4947 ms/op
Tree 40 250000 iterate all - toArray() + loop 9.4974 ms/op
Tree 40 250000 iterate all - get(i) 37.450 ms/op
MutableVector 250000 create 10.270 ms/op
MutableVector 250000 get(125000) 5.9470 ns/op
MutableVector 250000 set(125000) 179.31 ns/op
MutableVector 250000 toArray() 2.7682 ms/op
MutableVector 250000 iterate all - toArray() + loop 2.8735 ms/op
MutableVector 250000 iterate all - get(i) 1.5475 ms/op
Array 250000 create 2.3504 ms/op
Array 250000 clone - spread 1.3242 ms/op
Array 250000 get(125000) 0.57200 ns/op
Array 250000 set(125000) 0.58200 ns/op
Array 250000 iterate all - loop 77.312 us/op
effectiveBalanceIncrements clone Uint8Array 300000 14.429 us/op
effectiveBalanceIncrements clone MutableVector 300000 306.00 ns/op
effectiveBalanceIncrements rw all Uint8Array 300000 167.35 us/op
effectiveBalanceIncrements rw all MutableVector 300000 57.692 ms/op
phase0 afterProcessEpoch - 250000 vs - 7PWei 75.375 ms/op
phase0 beforeProcessEpoch - 250000 vs - 7PWei 32.723 ms/op
altair processEpoch - mainnet_e81889 332.95 ms/op
mainnet_e81889 - altair beforeProcessEpoch 43.115 ms/op
mainnet_e81889 - altair processJustificationAndFinalization 8.1710 us/op
mainnet_e81889 - altair processInactivityUpdates 5.4926 ms/op
mainnet_e81889 - altair processRewardsAndPenalties 45.922 ms/op
mainnet_e81889 - altair processRegistryUpdates 1.7780 us/op
mainnet_e81889 - altair processSlashings 792.00 ns/op
mainnet_e81889 - altair processEth1DataReset 726.00 ns/op
mainnet_e81889 - altair processEffectiveBalanceUpdates 781.92 us/op
mainnet_e81889 - altair processSlashingsReset 1.3030 us/op
mainnet_e81889 - altair processRandaoMixesReset 2.5100 us/op
mainnet_e81889 - altair processHistoricalRootsUpdate 673.00 ns/op
mainnet_e81889 - altair processParticipationFlagUpdates 1.2370 us/op
mainnet_e81889 - altair processSyncCommitteeUpdates 427.00 ns/op
mainnet_e81889 - altair afterProcessEpoch 80.188 ms/op
capella processEpoch - mainnet_e217614 1.2166 s/op
mainnet_e217614 - capella beforeProcessEpoch 235.96 ms/op
mainnet_e217614 - capella processJustificationAndFinalization 6.0190 us/op
mainnet_e217614 - capella processInactivityUpdates 16.551 ms/op
mainnet_e217614 - capella processRewardsAndPenalties 263.38 ms/op
mainnet_e217614 - capella processRegistryUpdates 11.434 us/op
mainnet_e217614 - capella processSlashings 693.00 ns/op
mainnet_e217614 - capella processEth1DataReset 663.00 ns/op
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.1975 ms/op
mainnet_e217614 - capella processSlashingsReset 2.8340 us/op
mainnet_e217614 - capella processRandaoMixesReset 2.9180 us/op
mainnet_e217614 - capella processHistoricalRootsUpdate 675.00 ns/op
mainnet_e217614 - capella processParticipationFlagUpdates 1.3430 us/op
mainnet_e217614 - capella afterProcessEpoch 243.32 ms/op
phase0 processEpoch - mainnet_e58758 285.31 ms/op
mainnet_e58758 - phase0 beforeProcessEpoch 96.084 ms/op
mainnet_e58758 - phase0 processJustificationAndFinalization 14.084 us/op
mainnet_e58758 - phase0 processRewardsAndPenalties 33.535 ms/op
mainnet_e58758 - phase0 processRegistryUpdates 4.0870 us/op
mainnet_e58758 - phase0 processSlashings 434.00 ns/op
mainnet_e58758 - phase0 processEth1DataReset 620.00 ns/op
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1272 ms/op
mainnet_e58758 - phase0 processSlashingsReset 2.9100 us/op
mainnet_e58758 - phase0 processRandaoMixesReset 2.9250 us/op
mainnet_e58758 - phase0 processHistoricalRootsUpdate 684.00 ns/op
mainnet_e58758 - phase0 processParticipationRecordUpdates 2.4570 us/op
mainnet_e58758 - phase0 afterProcessEpoch 67.192 ms/op
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.1915 ms/op
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5640 ms/op
altair processInactivityUpdates - 250000 normalcase 15.559 ms/op
altair processInactivityUpdates - 250000 worstcase 18.420 ms/op
phase0 processRegistryUpdates - 250000 normalcase 3.0870 us/op
phase0 processRegistryUpdates - 250000 badcase_full_deposits 289.15 us/op
phase0 processRegistryUpdates - 250000 worstcase 0.5 117.04 ms/op
altair processRewardsAndPenalties - 250000 normalcase 53.119 ms/op
altair processRewardsAndPenalties - 250000 worstcase 46.521 ms/op
phase0 getAttestationDeltas - 250000 normalcase 5.6303 ms/op
phase0 getAttestationDeltas - 250000 worstcase 6.0624 ms/op
phase0 processSlashings - 250000 worstcase 85.235 us/op
altair processSyncCommitteeUpdates - 250000 106.29 ms/op
BeaconState.hashTreeRoot - No change 488.00 ns/op
BeaconState.hashTreeRoot - 1 full validator 142.38 us/op
BeaconState.hashTreeRoot - 32 full validator 1.4078 ms/op
BeaconState.hashTreeRoot - 512 full validator 12.164 ms/op
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 160.15 us/op
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.9286 ms/op
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 29.243 ms/op
BeaconState.hashTreeRoot - 1 balances 110.50 us/op
BeaconState.hashTreeRoot - 32 balances 1.0162 ms/op
BeaconState.hashTreeRoot - 512 balances 9.8745 ms/op
BeaconState.hashTreeRoot - 250000 balances 175.15 ms/op
aggregationBits - 2048 els - zipIndexesInBitList 19.598 us/op
byteArrayEquals 32 48.024 ns/op
Buffer.compare 32 15.635 ns/op
byteArrayEquals 1024 1.2633 us/op
Buffer.compare 1024 24.010 ns/op
byteArrayEquals 16384 19.257 us/op
Buffer.compare 16384 192.98 ns/op
byteArrayEquals 123687377 144.91 ms/op
Buffer.compare 123687377 3.6652 ms/op
byteArrayEquals 32 - diff last byte 46.774 ns/op
Buffer.compare 32 - diff last byte 15.730 ns/op
byteArrayEquals 1024 - diff last byte 1.2645 us/op
Buffer.compare 1024 - diff last byte 24.542 ns/op
byteArrayEquals 16384 - diff last byte 20.078 us/op
Buffer.compare 16384 - diff last byte 176.59 ns/op
byteArrayEquals 123687377 - diff last byte 144.97 ms/op
Buffer.compare 123687377 - diff last byte 5.4035 ms/op
byteArrayEquals 32 - random bytes 4.5590 ns/op
Buffer.compare 32 - random bytes 16.115 ns/op
byteArrayEquals 1024 - random bytes 4.8120 ns/op
Buffer.compare 1024 - random bytes 15.848 ns/op
byteArrayEquals 16384 - random bytes 4.7960 ns/op
Buffer.compare 16384 - random bytes 15.880 ns/op
byteArrayEquals 123687377 - random bytes 7.6100 ns/op
Buffer.compare 123687377 - random bytes 18.850 ns/op
regular array get 100000 times 30.680 us/op
wrappedArray get 100000 times 30.665 us/op
arrayWithProxy get 100000 times 10.364 ms/op
ssz.Root.equals 43.682 ns/op
byteArrayEquals 42.905 ns/op
Buffer.compare 9.3830 ns/op
shuffle list - 16384 els 5.1587 ms/op
shuffle list - 250000 els 76.387 ms/op
processSlot - 1 slots 11.703 us/op
processSlot - 32 slots 2.7364 ms/op
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 42.140 ms/op
getCommitteeAssignments - req 1 vs - 250000 vc 1.6822 ms/op
getCommitteeAssignments - req 100 vs - 250000 vc 3.3138 ms/op
getCommitteeAssignments - req 1000 vs - 250000 vc 3.5471 ms/op
findModifiedValidators - 10000 modified validators 265.40 ms/op
findModifiedValidators - 1000 modified validators 179.69 ms/op
findModifiedValidators - 100 modified validators 157.00 ms/op
findModifiedValidators - 10 modified validators 162.19 ms/op
findModifiedValidators - 1 modified validators 172.63 ms/op
findModifiedValidators - no difference 156.89 ms/op
compare ViewDUs 3.0103 s/op
compare each validator Uint8Array 1.4526 s/op
compare ViewDU to Uint8Array 770.52 ms/op
migrate state 1000000 validators, 24 modified, 0 new 506.07 ms/op
migrate state 1000000 validators, 1700 modified, 1000 new 797.12 ms/op
migrate state 1000000 validators, 3400 modified, 2000 new 1.1101 s/op
migrate state 1500000 validators, 24 modified, 0 new 544.75 ms/op
migrate state 1500000 validators, 1700 modified, 1000 new 652.22 ms/op
migrate state 1500000 validators, 3400 modified, 2000 new 960.20 ms/op
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 6.9000 ns/op
state getBlockRootAtSlot - 250000 vs - 7PWei 933.72 ns/op
computeProposers - vc 250000 7.3369 ms/op
computeEpochShuffling - vc 250000 86.008 ms/op
getNextSyncCommittee - vc 250000 101.30 ms/op
computeSigningRoot for AttestationData 17.207 us/op
hash AttestationData serialized data then Buffer.toString(base64) 1.2377 us/op
toHexString serialized data 849.94 ns/op
Buffer.toString(base64) 157.02 ns/op

by benchmarkbot/action

@philknows philknows merged commit 27b9c03 into stable Jul 11, 2024
20 checks passed
@philknows philknows deleted the rc/v1.20.0 branch July 11, 2024 16:15
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.20.0 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.