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: release v1.12.0 #6091

Merged
merged 95 commits into from
Nov 9, 2023
Merged

chore: release v1.12.0 #6091

merged 95 commits into from
Nov 9, 2023

Conversation

philknows
Copy link
Member

No description provided.

twoeths and others added 30 commits August 29, 2023 12:11
* fix: mesh peers - inclusion and churn sum by reason metrics

* fix: remove unintentional change
* chore: track time to stable mesh metric in Grafana

* fix: add rate()
render eventloop lags metrics as quantiles
…for deneb containers (#5929)

* refactor: cleanup deneb types and use max blob commitments per block for deneb containers

* further cleanup
* chore: add benchmark for signature deserialization

* chore: add reference to v1.11.0 profiles

* feat: track time to deserialize and validate signature on main thread

* chore: use timer?.()
* Update testcontainers package to 10.2.1

* Add missing dockerode types
* Enable mixed client sim tests

* Add host.docker.internal as host

* Fix typo in lodestar

* Rename multi client to mixed client sim tests
* Fix the close handler for the worker

* Add retry to exit the thread

* Update code with feedback
* feat: keymanager API to create signed voluntary exit message

* Run e2e tests in a single step

* Remove before hook to clean up dataDir

* Remove abort controller
* feat: getBlock api to support application/octet-stream header

* fix: use specific handler for getBlock getBlockV2

* fix: build error

* Revert "fix: build error"

This reverts commit fbeb88a.

* fix: infer returned type for getBlock apis

* feat: add getBlock() client api supporting ssz

* chore: remove comments
…ion (#5939)

* Add custom type for epocch cache errors

* Fix failing unit test
* feat: simplify enr initialization

* chore: fix tests

* chore: more cleanup
* chore: avoid using bigint for metrics

* chore: use tuple for sec and ns
* feat: add metric for slot of next scheduled attestation duty

* Remove .entries() when iterating over dutiesByIndexByEpoch

* Set duty slot to next slot if more than 64 validators

* Add comment to explain metric name and usage

* Remove validator count check

* Stop searching once a next duty slot is found
* chore: add noise perf test

* feat: use nodejs crypto for noise

* feat: selectively use nodejs or as implementation
* chore: update to ssz 0.13.0

* chore: use deserializeUint8ArrayBitListFromBytes util from ssz
* Update beacon chain config

* Update bootnode enrs
* feat: Always try to fetch optimistic update when starting lc

Currently fetching an optimistic update at client start happens only if a sync is needed. 
The proposed change tries to fetch an optimistic update even if no sync is needed, e.g. the client was initialized with a recent checkpoint

* Move the update fetching to the correct place
* Enable debug logging for e2e tests

* Reduce the duration of lightclient test

* Run all e2e tests with minimal preset

* Fix the few e2e tests

* Fix test job names

* Fix the task script

* Add yarn cache to node actions

* Update few e2e tests after code review

* Fix the type export to use with transpilation

* Remove unused file

* Revert changes to an e2e test file

* Reduce the genesis delay

* Refactor workflow jobs

* Add .git-data to build cache

* Fix spec tests option

* Upgrade the github action version

* Add a package dev dependency

* Add artifact name

* Update the workflow to add env variables

* Update the workflow to add env variables

* Add tsnode option

* Parallelize the spec tests

* Add the ts-node configuration

* Update tsconfig for the e2e tests

* Update the tsconfig for the project

* Fix the types issue

* Remove unused file
chore: update holesky bootnode enrs
Bumps [electron](https://github.com/electron/electron) from 21.4.4 to 22.3.24.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](electron/electron@v21.4.4...v22.3.24)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
g11tech and others added 20 commits October 20, 2023 13:33
* feat: add blob_sidecar sse event

* fix tests

* fix

* apply feedback
add twitter link to readme
* chore: fix usage of dependant where should be dependent

* fix various instances of "dependant root" spelling
* Add id and clv to jwt claim and cli

* Update doc

* Add unit test

* Update comments and lint

* Update unit test

* Update unit test

* Revert "Update unit test"

This reverts commit ef35d9f.

* Add id and clv to eth1

* Lint

* Address comment

* Update doc to remove jwt version

* Remove jwt version from cli arg

* Populate jwtVersion from beaconHandlerinit

* Rename jwt-id to jwtId

* Rename jwt-secret to jwtSecret

* Use Date.now() for iat

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

* Update packages/beacon-node/src/eth1/provider/jwt.ts

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

* Update packages/beacon-node/src/execution/engine/http.ts

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

* Update packages/beacon-node/src/execution/engine/http.ts

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

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

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

* Address comments

* Fix jsdoc

* id is not used for authentication but jwt tokens are, id is just included in those

* Remove jwt claim section from doc

* Update private description and lint

* Remove extra white space from jsdoc

* Fix lint issues

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
…bs (#6066)

fix: skip only proofs validation on gossiped blobs
…eacon (#5880)

feat: switch blinded and full block production to produce block v3

update the impl interfaces

Restore the previous versions

update test

fix oapi spec

fix tests

fix merge tests

fix tests

fix the tests

implement produce blockv3

refac forktypes

plug v3 into vlidator and get it working

mock test produceblockv3 and fix issues

fix lint

fixes

update head opts

cleanup the validator flags

shift fee recipient to extra args as well

typo

fix tests

missed commit

deprecate flag instead of removing

backward produceblock v2 compatability

lint

disable produce blockv3 for mixed tests

run on only execution

sim option fixes

improve log

pass args

fix spell check

sort wordlist

chore: sort wordlist

chore: fix spell check

refactor block types and introduce builder/execution race in produceblindedblock api as well

fix the publish blinded block to pick locally cached blinded data

add flag in get init dev vals

fix unit test

fixes

switch to v2 as default fix issues and run sim tests on mix configurations

remove utf8 graffiti from text log

apply feedback on api

cleanup on the sidecar cache

blinded to full utils

small produced cache cleanup

add metrics

cleanup response parsing

lint

further improv

improve interface

fix

apply feedback
* add: initial ephemery config based on pk910's work in progress

* fix: add missing new line

* fix: rm unused disable es-lint directive

* fix: rename ephemeryBaseChainConfig to baseChainConfig

* fix: update comment to reflect 7 day reset period

* fix: reset period in MS, latest spec linked (EIP), dev comments updated

* fix: config fixes, add ref to config.yaml

* add: case ephemery added in packages/prover
implement missing blindedblock publishing

remove the throw

refactor the type reconstructions for builder

improv
* fix: implement loadState api

* chore: benchmark findModifiedValidators()

* feat: implement deserializeContainerIgnoreFields()

* feat: implement loadValidator()

* fix: type the ignoreFields

* chore: benchmark loadState()

* fix: add '--max-old-space-size=4096' to github workflow

* fix: revert default vc count in perf test

* Revert "fix: add '--max-old-space-size=4096' to github workflow"

This reverts commit a420c54.

* chore: rename loadCachedBeaconState to loadUnfinalizedCachedBeaconState

* chore: loadValidator - reuse fields as much as possible

* chore: more benchmarks to compare Uint8Array
…on and turn builder off by default (#6081)

* refac: repurpose --builder flag to alias maxprofit builder.selection and turn builder off by default

* log init options for validator

* Update packages/cli/src/cmds/validator/options.ts

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

---------

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

* feat: allow keymanager to configure a validator pubkey utf8 graffiti

* fix and tests
* Setup getStateRandao endpoint base

* Implement logic for getStateRandao

* Group getStateRandao with getStateRoot and getStateFork

* Do not serialize response data in handler

* Remove todo comment

* Remove todo comment

* Rework getStateRandao out-of-range checking

* Add jsdoc for getStateRandao

* Review code

* Update test data

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
…neb (#6084)

refactor: cleanup publishblock v1 support and usage
@philknows philknows requested a review from a team as a code owner November 7, 2023 15:38
@philknows philknows changed the title Release v1.12.0 chore: release v1.12.0 Nov 7, 2023
Copy link
Contributor

github-actions bot commented Nov 7, 2023

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: e7d1709 Previous: - Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 582.74 us/op
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 120.53 us/op
BLS verify - blst-native 1.3745 ms/op
BLS verifyMultipleSignatures 3 - blst-native 2.9356 ms/op
BLS verifyMultipleSignatures 8 - blst-native 6.3760 ms/op
BLS verifyMultipleSignatures 32 - blst-native 23.455 ms/op
BLS verifyMultipleSignatures 64 - blst-native 46.044 ms/op
BLS verifyMultipleSignatures 128 - blst-native 90.880 ms/op
BLS deserializing 10000 signatures 951.93 ms/op
BLS deserializing 100000 signatures 9.4406 s/op
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3925 ms/op
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5528 ms/op
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.4019 ms/op
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.5189 ms/op
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.8446 ms/op
BLS aggregatePubkeys 32 - blst-native 26.406 us/op
BLS aggregatePubkeys 128 - blst-native 104.31 us/op
getAttestationsForBlock 41.231 ms/op
isKnown best case - 1 super set check 377.00 ns/op
isKnown normal case - 2 super set checks 326.00 ns/op
isKnown worse case - 16 super set checks 425.00 ns/op
CheckpointStateCache - add get delete 5.8620 us/op
validate api signedAggregateAndProof - struct 2.8701 ms/op
validate gossip signedAggregateAndProof - struct 2.8690 ms/op
validate gossip attestation - vc 640000 1.3972 ms/op
batch validate gossip attestation - vc 640000 - chunk 32 165.28 us/op
batch validate gossip attestation - vc 640000 - chunk 64 142.82 us/op
batch validate gossip attestation - vc 640000 - chunk 128 131.73 us/op
batch validate gossip attestation - vc 640000 - chunk 256 125.96 us/op
pickEth1Vote - no votes 1.2207 ms/op
pickEth1Vote - max votes 8.5316 ms/op
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.487 ms/op
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 22.109 ms/op
pickEth1Vote - Eth1Data fastSerialize value x2048 588.13 us/op
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.6463 ms/op
bytes32 toHexString 533.00 ns/op
bytes32 Buffer.toString(hex) 285.00 ns/op
bytes32 Buffer.toString(hex) from Uint8Array 439.00 ns/op
bytes32 Buffer.toString(hex) + 0x 286.00 ns/op
Object access 1 prop 0.15700 ns/op
Map access 1 prop 0.14200 ns/op
Object get x1000 7.4970 ns/op
Map get x1000 0.63800 ns/op
Object set x1000 52.414 ns/op
Map set x1000 40.257 ns/op
Return object 10000 times 0.23990 ns/op
Throw Error 10000 times 3.9269 us/op
fastMsgIdFn sha256 / 200 bytes 3.4200 us/op
fastMsgIdFn h32 xxhash / 200 bytes 337.00 ns/op
fastMsgIdFn h64 xxhash / 200 bytes 380.00 ns/op
fastMsgIdFn sha256 / 1000 bytes 11.689 us/op
fastMsgIdFn h32 xxhash / 1000 bytes 484.00 ns/op
fastMsgIdFn h64 xxhash / 1000 bytes 464.00 ns/op
fastMsgIdFn sha256 / 10000 bytes 104.76 us/op
fastMsgIdFn h32 xxhash / 10000 bytes 1.9940 us/op
fastMsgIdFn h64 xxhash / 10000 bytes 1.3560 us/op
send data - 1000 256B messages 20.939 ms/op
send data - 1000 512B messages 27.386 ms/op
send data - 1000 1024B messages 42.171 ms/op
send data - 1000 1200B messages 35.204 ms/op
send data - 1000 2048B messages 22.513 ms/op
send data - 1000 4096B messages 28.460 ms/op
send data - 1000 16384B messages 107.16 ms/op
send data - 1000 65536B messages 421.66 ms/op
enrSubnets - fastDeserialize 64 bits 1.3320 us/op
enrSubnets - ssz BitVector 64 bits 413.00 ns/op
enrSubnets - fastDeserialize 4 bits 177.00 ns/op
enrSubnets - ssz BitVector 4 bits 415.00 ns/op
prioritizePeers score -10:0 att 32-0.1 sync 2-0 101.19 us/op
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 122.23 us/op
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 159.04 us/op
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 288.35 us/op
prioritizePeers score 0:0 att 64-1 sync 4-1 337.14 us/op
array of 16000 items push then shift 1.6112 us/op
LinkedList of 16000 items push then shift 8.9810 ns/op
array of 16000 items push then pop 73.767 ns/op
LinkedList of 16000 items push then pop 8.7290 ns/op
array of 24000 items push then shift 2.4088 us/op
LinkedList of 24000 items push then shift 9.0300 ns/op
array of 24000 items push then pop 99.935 ns/op
LinkedList of 24000 items push then pop 8.6210 ns/op
intersect bitArray bitLen 8 6.8580 ns/op
intersect array and set length 8 58.966 ns/op
intersect bitArray bitLen 128 32.211 ns/op
intersect array and set length 128 773.73 ns/op
bitArray.getTrueBitIndexes() bitLen 128 1.4500 us/op
bitArray.getTrueBitIndexes() bitLen 248 2.4380 us/op
bitArray.getTrueBitIndexes() bitLen 512 4.7590 us/op
Buffer.concat 32 items 981.00 ns/op
Uint8Array.set 32 items 1.7960 us/op
Set add up to 64 items then delete first 4.4151 us/op
OrderedSet add up to 64 items then delete first 5.4294 us/op
Set add up to 64 items then delete last 4.8835 us/op
OrderedSet add up to 64 items then delete last 6.0446 us/op
Set add up to 64 items then delete middle 4.7285 us/op
OrderedSet add up to 64 items then delete middle 7.5872 us/op
Set add up to 128 items then delete first 10.116 us/op
OrderedSet add up to 128 items then delete first 12.549 us/op
Set add up to 128 items then delete last 9.3876 us/op
OrderedSet add up to 128 items then delete last 11.855 us/op
Set add up to 128 items then delete middle 9.3490 us/op
OrderedSet add up to 128 items then delete middle 18.273 us/op
Set add up to 256 items then delete first 20.054 us/op
OrderedSet add up to 256 items then delete first 27.580 us/op
Set add up to 256 items then delete last 19.722 us/op
OrderedSet add up to 256 items then delete last 23.844 us/op
Set add up to 256 items then delete middle 18.333 us/op
OrderedSet add up to 256 items then delete middle 45.507 us/op
transfer serialized Status (84 B) 1.7800 us/op
copy serialized Status (84 B) 1.5020 us/op
transfer serialized SignedVoluntaryExit (112 B) 1.9230 us/op
copy serialized SignedVoluntaryExit (112 B) 1.5510 us/op
transfer serialized ProposerSlashing (416 B) 2.0140 us/op
copy serialized ProposerSlashing (416 B) 1.8180 us/op
transfer serialized Attestation (485 B) 2.0660 us/op
copy serialized Attestation (485 B) 1.8450 us/op
transfer serialized AttesterSlashing (33232 B) 2.2720 us/op
copy serialized AttesterSlashing (33232 B) 5.1670 us/op
transfer serialized Small SignedBeaconBlock (128000 B) 2.5430 us/op
copy serialized Small SignedBeaconBlock (128000 B) 13.510 us/op
transfer serialized Avg SignedBeaconBlock (200000 B) 2.9620 us/op
copy serialized Avg SignedBeaconBlock (200000 B) 20.634 us/op
transfer serialized BlobsSidecar (524380 B) 2.8940 us/op
copy serialized BlobsSidecar (524380 B) 240.27 us/op
transfer serialized Big SignedBeaconBlock (1000000 B) 3.1250 us/op
copy serialized Big SignedBeaconBlock (1000000 B) 206.69 us/op
pass gossip attestations to forkchoice per slot 3.9189 ms/op
forkChoice updateHead vc 100000 bc 64 eq 0 704.55 us/op
forkChoice updateHead vc 600000 bc 64 eq 0 5.0872 ms/op
forkChoice updateHead vc 1000000 bc 64 eq 0 7.1179 ms/op
forkChoice updateHead vc 600000 bc 320 eq 0 4.2492 ms/op
forkChoice updateHead vc 600000 bc 1200 eq 0 4.4250 ms/op
forkChoice updateHead vc 600000 bc 7200 eq 0 5.3268 ms/op
forkChoice updateHead vc 600000 bc 64 eq 1000 11.534 ms/op
forkChoice updateHead vc 600000 bc 64 eq 10000 12.104 ms/op
forkChoice updateHead vc 600000 bc 64 eq 300000 15.389 ms/op
computeDeltas 500000 validators 300 proto nodes 6.6376 ms/op
computeDeltas 500000 validators 1200 proto nodes 6.6447 ms/op
computeDeltas 500000 validators 7200 proto nodes 6.4662 ms/op
computeDeltas 750000 validators 300 proto nodes 9.7301 ms/op
computeDeltas 750000 validators 1200 proto nodes 9.6783 ms/op
computeDeltas 750000 validators 7200 proto nodes 9.7331 ms/op
computeDeltas 1400000 validators 300 proto nodes 18.212 ms/op
computeDeltas 1400000 validators 1200 proto nodes 18.324 ms/op
computeDeltas 1400000 validators 7200 proto nodes 18.772 ms/op
computeDeltas 2100000 validators 300 proto nodes 27.888 ms/op
computeDeltas 2100000 validators 1200 proto nodes 27.604 ms/op
computeDeltas 2100000 validators 7200 proto nodes 27.378 ms/op
computeProposerBoostScoreFromBalances 500000 validators 3.3415 ms/op
computeProposerBoostScoreFromBalances 750000 validators 3.3183 ms/op
computeProposerBoostScoreFromBalances 1400000 validators 3.8990 ms/op
computeProposerBoostScoreFromBalances 2100000 validators 3.5591 ms/op
altair processAttestation - 250000 vs - 7PWei normalcase 2.2537 ms/op
altair processAttestation - 250000 vs - 7PWei worstcase 3.5265 ms/op
altair processAttestation - setStatus - 1/6 committees join 153.25 us/op
altair processAttestation - setStatus - 1/3 committees join 294.96 us/op
altair processAttestation - setStatus - 1/2 committees join 381.44 us/op
altair processAttestation - setStatus - 2/3 committees join 480.03 us/op
altair processAttestation - setStatus - 4/5 committees join 678.72 us/op
altair processAttestation - setStatus - 100% committees join 764.90 us/op
altair processBlock - 250000 vs - 7PWei normalcase 10.817 ms/op
altair processBlock - 250000 vs - 7PWei normalcase hashState 41.283 ms/op
altair processBlock - 250000 vs - 7PWei worstcase 44.314 ms/op
altair processBlock - 250000 vs - 7PWei worstcase hashState 94.139 ms/op
phase0 processBlock - 250000 vs - 7PWei normalcase 3.0538 ms/op
phase0 processBlock - 250000 vs - 7PWei worstcase 30.152 ms/op
altair processEth1Data - 250000 vs - 7PWei normalcase 492.39 us/op
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 9.1570 us/op
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 62.900 us/op
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 20.225 us/op
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 12.564 us/op
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 135.77 us/op
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.1081 ms/op
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.5386 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.5029 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.2448 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.3157 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.7339 ms/op
Tree 40 250000 create 347.56 ms/op
Tree 40 250000 get(125000) 199.47 ns/op
Tree 40 250000 set(125000) 1.0625 us/op
Tree 40 250000 toArray() 21.740 ms/op
Tree 40 250000 iterate all - toArray() + loop 20.941 ms/op
Tree 40 250000 iterate all - get(i) 78.844 ms/op
MutableVector 250000 create 15.259 ms/op
MutableVector 250000 get(125000) 6.5830 ns/op
MutableVector 250000 set(125000) 292.80 ns/op
MutableVector 250000 toArray() 3.1340 ms/op
MutableVector 250000 iterate all - toArray() + loop 3.4444 ms/op
MutableVector 250000 iterate all - get(i) 1.5276 ms/op
Array 250000 create 3.2565 ms/op
Array 250000 clone - spread 1.2659 ms/op
Array 250000 get(125000) 0.58300 ns/op
Array 250000 set(125000) 0.65600 ns/op
Array 250000 iterate all - loop 84.224 us/op
effectiveBalanceIncrements clone Uint8Array 300000 34.159 us/op
effectiveBalanceIncrements clone MutableVector 300000 370.00 ns/op
effectiveBalanceIncrements rw all Uint8Array 300000 180.25 us/op
effectiveBalanceIncrements rw all MutableVector 300000 95.032 ms/op
phase0 afterProcessEpoch - 250000 vs - 7PWei 118.39 ms/op
phase0 beforeProcessEpoch - 250000 vs - 7PWei 51.734 ms/op
altair processEpoch - mainnet_e81889 504.95 ms/op
mainnet_e81889 - altair beforeProcessEpoch 86.274 ms/op
mainnet_e81889 - altair processJustificationAndFinalization 23.413 us/op
mainnet_e81889 - altair processInactivityUpdates 7.7686 ms/op
mainnet_e81889 - altair processRewardsAndPenalties 63.394 ms/op
mainnet_e81889 - altair processRegistryUpdates 4.6590 us/op
mainnet_e81889 - altair processSlashings 1.1400 us/op
mainnet_e81889 - altair processEth1DataReset 1.0980 us/op
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.1291 ms/op
mainnet_e81889 - altair processSlashingsReset 8.2210 us/op
mainnet_e81889 - altair processRandaoMixesReset 9.8920 us/op
mainnet_e81889 - altair processHistoricalRootsUpdate 1.5870 us/op
mainnet_e81889 - altair processParticipationFlagUpdates 4.6440 us/op
mainnet_e81889 - altair processSyncCommitteeUpdates 1.7680 us/op
mainnet_e81889 - altair afterProcessEpoch 135.78 ms/op
capella processEpoch - mainnet_e217614 2.6729 s/op
mainnet_e217614 - capella beforeProcessEpoch 627.84 ms/op
mainnet_e217614 - capella processJustificationAndFinalization 28.731 us/op
mainnet_e217614 - capella processInactivityUpdates 27.244 ms/op
mainnet_e217614 - capella processRewardsAndPenalties 687.15 ms/op
mainnet_e217614 - capella processRegistryUpdates 27.508 us/op
mainnet_e217614 - capella processSlashings 577.00 ns/op
mainnet_e217614 - capella processEth1DataReset 507.00 ns/op
mainnet_e217614 - capella processEffectiveBalanceUpdates 15.736 ms/op
mainnet_e217614 - capella processSlashingsReset 4.0000 us/op
mainnet_e217614 - capella processRandaoMixesReset 4.9830 us/op
mainnet_e217614 - capella processHistoricalRootsUpdate 614.00 ns/op
mainnet_e217614 - capella processParticipationFlagUpdates 1.9510 us/op
mainnet_e217614 - capella afterProcessEpoch 344.78 ms/op
phase0 processEpoch - mainnet_e58758 438.49 ms/op
mainnet_e58758 - phase0 beforeProcessEpoch 153.85 ms/op
mainnet_e58758 - phase0 processJustificationAndFinalization 16.026 us/op
mainnet_e58758 - phase0 processRewardsAndPenalties 69.393 ms/op
mainnet_e58758 - phase0 processRegistryUpdates 11.310 us/op
mainnet_e58758 - phase0 processSlashings 571.00 ns/op
mainnet_e58758 - phase0 processEth1DataReset 463.00 ns/op
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.4176 ms/op
mainnet_e58758 - phase0 processSlashingsReset 2.6730 us/op
mainnet_e58758 - phase0 processRandaoMixesReset 3.9660 us/op
mainnet_e58758 - phase0 processHistoricalRootsUpdate 389.00 ns/op
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.7860 us/op
mainnet_e58758 - phase0 afterProcessEpoch 103.11 ms/op
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.2747 ms/op
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4546 ms/op
altair processInactivityUpdates - 250000 normalcase 25.700 ms/op
altair processInactivityUpdates - 250000 worstcase 19.739 ms/op
phase0 processRegistryUpdates - 250000 normalcase 10.409 us/op
phase0 processRegistryUpdates - 250000 badcase_full_deposits 427.52 us/op
phase0 processRegistryUpdates - 250000 worstcase 0.5 146.37 ms/op
altair processRewardsAndPenalties - 250000 normalcase 59.653 ms/op
altair processRewardsAndPenalties - 250000 worstcase 75.185 ms/op
phase0 getAttestationDeltas - 250000 normalcase 13.154 ms/op
phase0 getAttestationDeltas - 250000 worstcase 13.605 ms/op
phase0 processSlashings - 250000 worstcase 2.9219 ms/op
altair processSyncCommitteeUpdates - 250000 167.99 ms/op
BeaconState.hashTreeRoot - No change 255.00 ns/op
BeaconState.hashTreeRoot - 1 full validator 132.57 us/op
BeaconState.hashTreeRoot - 32 full validator 1.2492 ms/op
BeaconState.hashTreeRoot - 512 full validator 14.719 ms/op
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 169.00 us/op
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.1765 ms/op
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 26.787 ms/op
BeaconState.hashTreeRoot - 1 balances 121.81 us/op
BeaconState.hashTreeRoot - 32 balances 1.0807 ms/op
BeaconState.hashTreeRoot - 512 balances 10.259 ms/op
BeaconState.hashTreeRoot - 250000 balances 204.83 ms/op
aggregationBits - 2048 els - zipIndexesInBitList 21.599 us/op
byteArrayEquals 32 52.443 ns/op
Buffer.compare 32 58.123 ns/op
byteArrayEquals 1024 1.5192 us/op
Buffer.compare 1024 73.476 ns/op
byteArrayEquals 16384 24.178 us/op
Buffer.compare 16384 266.26 ns/op
byteArrayEquals 123687377 181.43 ms/op
Buffer.compare 123687377 7.1892 ms/op
byteArrayEquals 32 - diff last byte 52.738 ns/op
Buffer.compare 32 - diff last byte 60.301 ns/op
byteArrayEquals 1024 - diff last byte 1.5343 us/op
Buffer.compare 1024 - diff last byte 77.334 ns/op
byteArrayEquals 16384 - diff last byte 24.271 us/op
Buffer.compare 16384 - diff last byte 281.76 ns/op
byteArrayEquals 123687377 - diff last byte 183.85 ms/op
Buffer.compare 123687377 - diff last byte 6.7328 ms/op
byteArrayEquals 32 - random bytes 6.4330 ns/op
Buffer.compare 32 - random bytes 62.955 ns/op
byteArrayEquals 1024 - random bytes 6.1550 ns/op
Buffer.compare 1024 - random bytes 61.971 ns/op
byteArrayEquals 16384 - random bytes 5.9290 ns/op
Buffer.compare 16384 - random bytes 64.199 ns/op
byteArrayEquals 123687377 - random bytes 9.2900 ns/op
Buffer.compare 123687377 - random bytes 66.810 ns/op
regular array get 100000 times 45.485 us/op
wrappedArray get 100000 times 34.654 us/op
arrayWithProxy get 100000 times 14.853 ms/op
ssz.Root.equals 52.011 ns/op
byteArrayEquals 51.643 ns/op
Buffer.compare 11.531 ns/op
shuffle list - 16384 els 7.5988 ms/op
shuffle list - 250000 els 106.47 ms/op
processSlot - 1 slots 16.008 us/op
processSlot - 32 slots 2.6486 ms/op
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 62.538 ms/op
getCommitteeAssignments - req 1 vs - 250000 vc 2.6163 ms/op
getCommitteeAssignments - req 100 vs - 250000 vc 3.8429 ms/op
getCommitteeAssignments - req 1000 vs - 250000 vc 4.2942 ms/op
findModifiedValidators - 10000 modified validators 629.80 ms/op
findModifiedValidators - 1000 modified validators 434.94 ms/op
findModifiedValidators - 100 modified validators 412.46 ms/op
findModifiedValidators - 10 modified validators 425.38 ms/op
findModifiedValidators - 1 modified validators 397.57 ms/op
findModifiedValidators - no difference 401.47 ms/op
compare ViewDUs 4.3479 s/op
compare each validator Uint8Array 1.8016 s/op
compare ViewDU to Uint8Array 1.0870 s/op
migrate state 1000000 validators, 24 modified, 0 new 810.36 ms/op
migrate state 1000000 validators, 1700 modified, 1000 new 1.0726 s/op
migrate state 1000000 validators, 3400 modified, 2000 new 1.3398 s/op
migrate state 1500000 validators, 24 modified, 0 new 844.83 ms/op
migrate state 1500000 validators, 1700 modified, 1000 new 1.0985 s/op
migrate state 1500000 validators, 3400 modified, 2000 new 1.2999 s/op
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.7500 ns/op
state getBlockRootAtSlot - 250000 vs - 7PWei 817.05 ns/op
computeProposers - vc 250000 9.7377 ms/op
computeEpochShuffling - vc 250000 109.09 ms/op
getNextSyncCommittee - vc 250000 163.11 ms/op
computeSigningRoot for AttestationData 25.925 us/op
hash AttestationData serialized data then Buffer.toString(base64) 2.4227 us/op
toHexString serialized data 1.1726 us/op
Buffer.toString(base64) 237.04 ns/op

by benchmarkbot/action

@philknows
Copy link
Member Author

philknows commented Nov 8, 2023

Draft Release Notes:

Hey Lodestar users! We've just released v1.12.0 packed with a bunch of updates! We recommend all users to upgrade when possible and ensure to upgrade both your validator and beacon node clients together. More information below about notable changes:

  • produceBlockV2 builder/execution race moved from validator to beacon: You will have issues building blocks if you do not upgrade the Lodestar beacon and validator together to v1.12.0. You can continue using the --builder flag on your validator client, but it will default to --builder.selection maxprofit. If you do not want to use the builder on a validator that might still be hooked onto a builder enabled beacon, you may provide the --builder.selection executiononly or skip --builder. DVTs which are based off on only builder based block production can still continue using --builder.selection builderonly.

  • Ephemery Network: v1.12 supports using the --ephemery flag to configure Lodestar for the Ephemery network. To see additional details, please see the PR here: feat: add ephemery network #6054

  • IDs for JWT claims: We've added --jwtId to allow for auth + id of Lodestar being sent to execution clients. This allows for more flexibility than the 1-1 connection between the consensus and execution clients by using multiplexers such as eleel. It is now compliant with the execution spec identified here: https://github.com/ethereum/execution-apis/blob/main/src/engine/authentication.md#jwt-claims

  • Swagger UI on root endpoint of REST API: If you would like to enable a REST swagger API, you can now add --rest.swaggerUI to enable and it will be served under http://localhost:9596/documentation

  • Validator monitor logs: It is now possible to log validator monitor events on the beacon node as info to get detailed information about validator performance. This can be enabled by setting the --validatorMonitorLogs flag, please see the PR for details and log examples: feat: add option to log validator monitor events as info #6009

  • For Rocket Pool users: v1.12 now supports the metric used by Rocket Pool Dashboard v1.3.0 to display the time until the next attestation duty.

  • Restart aware doppelganger protection: There is now almost no downside to using doppelganger protection while still getting all security benefits. The only time doppelganger detection will run is if validator is imported for the first time or has not been active for more than one epoch due to a longer downtime / maintenance.

  • Support for q-value weighting in Accept headers: feat: support qvalue weighting in Accept headers #6014

  • Some additional support for keymanager-API: Added validator voluntary exit endpoint (https://github.com/ethereum/keymanager-APIs/blob/master/apis/voluntary_exit.yaml) and allow graffiti configuration per validator (Add graffiti API ethereum/keymanager-APIs#63)

@nflaig nflaig closed this Nov 8, 2023
@nflaig nflaig reopened this Nov 8, 2023
@philknows philknows merged commit 7000473 into stable Nov 9, 2023
34 of 35 checks passed
@philknows philknows deleted the rc/v1.12.0 branch November 9, 2023 07:33
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.12.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.