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

v0.39.0 #4217

Merged
merged 42 commits into from
Jun 30, 2022
Merged

v0.39.0 #4217

merged 42 commits into from
Jun 30, 2022

Conversation

wemeetagain
Copy link
Member

No description provided.

dapplion and others added 30 commits June 3, 2022 13:18
Fix leak in signalGlobal event listeners
* Add Eth1DepositTracker metrics

* Add Eth1DepositTracker metrics

* Remove duplicate line
* Use async version of crypto.randomBytes()

* Use promisify node util

* Compute randomBytesAsync once

Co-authored-by: dapplion <35266934+dapplion@users.noreply.github.com>
…e fcU (#4080)

* Use justified blocks execution payload hash as safeBlockHash in engine fcU

* fix test

* safe block hash fix

* run merge ci on latest
* Remove NPM instructions and add disclaimer

* Update docs/installation.md

Co-authored-by: Cayman <caymannava@gmail.com>
* Deprecate account cli cmd

* Merge options

* Delete stable account e2e test

* Log error.message not the error object

* Review PR
* Update src

* Update tests

* Update spec tests

* Fix Lodestar src

* Fix type issues

* Fix perf test types

* Review PR

* Remove un-used import

* Don't check state root in computeNewStateRoot

* Rename slashValidator
* v0.38.0

* Populate eth1 deposit cache with remote follow distance timed based (#4111)

* Fix HttpClient event handler leak (#4107)

Fix leak in signalGlobal event listeners

* Add Eth1DepositTracker metrics (#4110)

* Add Eth1DepositTracker metrics

* Add Eth1DepositTracker metrics

* Remove duplicate line

* Fix publish stable workflow (#4130)

Co-authored-by: harkamal <gajinder@g11.in>
Co-authored-by: Lion - dapplion <35266934+dapplion@users.noreply.github.com>
* Add JsonRpcHttpClient metrics

* JsonRpcHttpClient metrics add routeId

* Update restApiClient metrics definition
* Add opPool metrics

* Use . operator
* Add forkChoiceReorgDistance metric

* Add parentBlockDistance metric
Co-authored-by: dapplion <35266934+dapplion@users.noreply.github.com>
* mainnet shadow fork 6 config with small robustness update for cl

* config and image update

* update readme with the standard geth image

* remove the custom dockerfile
…#4097)

* Skip checking known participants when publishing ContributionAndProof

* chore: merge if statements
* Add bcli package

* Use consistent format for dev index range

* Dedup code with deriveSecretKeys

* Fix argument parsing

* cap batchSize by MAX_VALIDATORS_PER_COMMITTEE

* Fix check-build script

* Add unit test

* Rename to flare
* UnknownBlock sync: only download non-finalized blocks

* chore: add parentRoot to log
* Apply preset to ENV from CLI args

* Add rationale
* Explain selectionProofs array

* Remove lowestPermissibleSlot variable

* Handle multiple validators in sync committee subnet

* Fix tests
* Improve db metrics

* Wire new db metrics to lodestar

* Connect metrics to validator

* Remove unused variable
* Support gnosis beacon chain with --network gnosis

* Fix tests

* Fix export
Declare routeId in http client metrics
* Exports modules required for script.

* Exports lodestar modules.

* Adds the rest of the lodestar package modules.

Co-authored-by: claravanstaden <Cats 4 life!>
… instructions (#4118)

* Init update key-management.md

* Reconfigure docs and add jwt fee recipient

* Add keystore folder info to validator-management

* Add link to comprehensive setup guide for docker

* Improved NPM warning

* Add flare to libraries list on docs

* Corrections to beacon-management docs

* Align readme and docs index
* Remove wtfnode

* Remove getWtfNode route
* Modularize lodestar-api

* Fix imports

* Move beacon API interface to routes

* Move tests to same src dir structure
@github-actions
Copy link
Contributor

github-actions bot commented Jun 28, 2022

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 1979216 Previous: - Ratio
altair processAttestation - 250000 vs - 7PWei normalcase 3.3702 ms/op
altair processAttestation - 250000 vs - 7PWei worstcase 5.2110 ms/op
altair processAttestation - setStatus - 1/6 committees join 168.13 us/op
altair processAttestation - setStatus - 1/3 committees join 336.40 us/op
altair processAttestation - setStatus - 1/2 committees join 489.37 us/op
altair processAttestation - setStatus - 2/3 committees join 646.12 us/op
altair processAttestation - setStatus - 4/5 committees join 904.64 us/op
altair processAttestation - setStatus - 100% committees join 1.0923 ms/op
altair processBlock - 250000 vs - 7PWei normalcase 22.117 ms/op
altair processBlock - 250000 vs - 7PWei normalcase hashState 32.179 ms/op
altair processBlock - 250000 vs - 7PWei worstcase 77.916 ms/op
altair processBlock - 250000 vs - 7PWei worstcase hashState 95.262 ms/op
phase0 processBlock - 250000 vs - 7PWei normalcase 3.2815 ms/op
phase0 processBlock - 250000 vs - 7PWei worstcase 51.044 ms/op
altair processEth1Data - 250000 vs - 7PWei normalcase 691.43 us/op
Tree 40 250000 create 755.55 ms/op
Tree 40 250000 get(125000) 250.71 ns/op
Tree 40 250000 set(125000) 2.1999 us/op
Tree 40 250000 toArray() 27.209 ms/op
Tree 40 250000 iterate all - toArray() + loop 27.410 ms/op
Tree 40 250000 iterate all - get(i) 111.54 ms/op
MutableVector 250000 create 13.475 ms/op
MutableVector 250000 get(125000) 10.850 ns/op
MutableVector 250000 set(125000) 540.38 ns/op
MutableVector 250000 toArray() 6.1132 ms/op
MutableVector 250000 iterate all - toArray() + loop 6.2254 ms/op
MutableVector 250000 iterate all - get(i) 2.8413 ms/op
Array 250000 create 5.9516 ms/op
Array 250000 clone - spread 3.2576 ms/op
Array 250000 get(125000) 1.6130 ns/op
Array 250000 set(125000) 1.5600 ns/op
Array 250000 iterate all - loop 151.25 us/op
effectiveBalanceIncrements clone Uint8Array 300000 53.807 us/op
effectiveBalanceIncrements clone MutableVector 300000 681.00 ns/op
effectiveBalanceIncrements rw all Uint8Array 300000 247.22 us/op
effectiveBalanceIncrements rw all MutableVector 300000 134.96 ms/op
phase0 afterProcessEpoch - 250000 vs - 7PWei 185.93 ms/op
phase0 beforeProcessEpoch - 250000 vs - 7PWei 58.203 ms/op
altair processEpoch - mainnet_e81889 533.32 ms/op
mainnet_e81889 - altair beforeProcessEpoch 121.39 ms/op
mainnet_e81889 - altair processJustificationAndFinalization 17.234 us/op
mainnet_e81889 - altair processInactivityUpdates 9.9405 ms/op
mainnet_e81889 - altair processRewardsAndPenalties 108.58 ms/op
mainnet_e81889 - altair processRegistryUpdates 2.6480 us/op
mainnet_e81889 - altair processSlashings 628.00 ns/op
mainnet_e81889 - altair processEth1DataReset 626.00 ns/op
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.1734 ms/op
mainnet_e81889 - altair processSlashingsReset 4.1900 us/op
mainnet_e81889 - altair processRandaoMixesReset 4.2670 us/op
mainnet_e81889 - altair processHistoricalRootsUpdate 708.00 ns/op
mainnet_e81889 - altair processParticipationFlagUpdates 3.5700 us/op
mainnet_e81889 - altair processSyncCommitteeUpdates 715.00 ns/op
mainnet_e81889 - altair afterProcessEpoch 216.63 ms/op
phase0 processEpoch - mainnet_e58758 515.67 ms/op
mainnet_e58758 - phase0 beforeProcessEpoch 179.09 ms/op
mainnet_e58758 - phase0 processJustificationAndFinalization 15.017 us/op
mainnet_e58758 - phase0 processRewardsAndPenalties 92.799 ms/op
mainnet_e58758 - phase0 processRegistryUpdates 7.4280 us/op
mainnet_e58758 - phase0 processSlashings 620.00 ns/op
mainnet_e58758 - phase0 processEth1DataReset 584.00 ns/op
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.6288 ms/op
mainnet_e58758 - phase0 processSlashingsReset 4.3060 us/op
mainnet_e58758 - phase0 processRandaoMixesReset 4.1780 us/op
mainnet_e58758 - phase0 processHistoricalRootsUpdate 670.00 ns/op
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.3910 us/op
mainnet_e58758 - phase0 afterProcessEpoch 162.97 ms/op
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.9386 ms/op
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.1467 ms/op
altair processInactivityUpdates - 250000 normalcase 21.770 ms/op
altair processInactivityUpdates - 250000 worstcase 31.103 ms/op
phase0 processRegistryUpdates - 250000 normalcase 5.9150 us/op
phase0 processRegistryUpdates - 250000 badcase_full_deposits 362.32 us/op
phase0 processRegistryUpdates - 250000 worstcase 0.5 173.30 ms/op
altair processRewardsAndPenalties - 250000 normalcase 93.973 ms/op
altair processRewardsAndPenalties - 250000 worstcase 89.937 ms/op
phase0 getAttestationDeltas - 250000 normalcase 11.847 ms/op
phase0 getAttestationDeltas - 250000 worstcase 11.900 ms/op
phase0 processSlashings - 250000 worstcase 4.9441 ms/op
altair processSyncCommitteeUpdates - 250000 287.60 ms/op
BeaconState.hashTreeRoot - No change 625.00 ns/op
BeaconState.hashTreeRoot - 1 full validator 66.153 us/op
BeaconState.hashTreeRoot - 32 full validator 652.35 us/op
BeaconState.hashTreeRoot - 512 full validator 7.2207 ms/op
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 89.500 us/op
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.2370 ms/op
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 16.638 ms/op
BeaconState.hashTreeRoot - 1 balances 70.710 us/op
BeaconState.hashTreeRoot - 32 balances 620.67 us/op
BeaconState.hashTreeRoot - 512 balances 6.4925 ms/op
BeaconState.hashTreeRoot - 250000 balances 97.126 ms/op
aggregationBits - 2048 els - zipIndexesInBitList 27.657 us/op
regular array get 100000 times 63.225 us/op
wrappedArray get 100000 times 63.677 us/op
arrayWithProxy get 100000 times 28.981 ms/op
ssz.Root.equals 543.00 ns/op
byteArrayEquals 541.00 ns/op
shuffle list - 16384 els 11.377 ms/op
shuffle list - 250000 els 166.12 ms/op
processSlot - 1 slots 13.308 us/op
processSlot - 32 slots 1.9904 ms/op
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 370.19 us/op
getCommitteeAssignments - req 1 vs - 250000 vc 5.4655 ms/op
getCommitteeAssignments - req 100 vs - 250000 vc 7.9862 ms/op
getCommitteeAssignments - req 1000 vs - 250000 vc 8.5960 ms/op
computeProposers - vc 250000 18.803 ms/op
computeEpochShuffling - vc 250000 170.40 ms/op
getNextSyncCommittee - vc 250000 287.93 ms/op
pass gossip attestations to forkchoice per slot 5.1570 ms/op
computeDeltas 3.2052 ms/op
computeProposerBoostScoreFromBalances 806.93 us/op
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.0413 ms/op
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 71.326 us/op
BLS verify - blst-native 2.1670 ms/op
BLS verifyMultipleSignatures 3 - blst-native 4.4718 ms/op
BLS verifyMultipleSignatures 8 - blst-native 9.6858 ms/op
BLS verifyMultipleSignatures 32 - blst-native 35.236 ms/op
BLS aggregatePubkeys 32 - blst-native 46.687 us/op
BLS aggregatePubkeys 128 - blst-native 182.19 us/op
getAttestationsForBlock 52.159 ms/op
isKnown best case - 1 super set check 487.00 ns/op
isKnown normal case - 2 super set checks 478.00 ns/op
isKnown worse case - 16 super set checks 478.00 ns/op
CheckpointStateCache - add get delete 10.988 us/op
validate gossip signedAggregateAndProof - struct 5.0087 ms/op
validate gossip attestation - struct 2.3659 ms/op
altair verifyImport mainnet_s3766816:31 6.8211 s/op
pickEth1Vote - no votes 2.2386 ms/op
pickEth1Vote - max votes 21.834 ms/op
pickEth1Vote - Eth1Data hashTreeRoot value x2048 13.594 ms/op
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 21.845 ms/op
pickEth1Vote - Eth1Data fastSerialize value x2048 1.5246 ms/op
pickEth1Vote - Eth1Data fastSerialize tree x2048 14.947 ms/op
bytes32 toHexString 1.1600 us/op
bytes32 Buffer.toString(hex) 853.00 ns/op
bytes32 Buffer.toString(hex) from Uint8Array 1.1080 us/op
bytes32 Buffer.toString(hex) + 0x 880.00 ns/op
Object access 1 prop 0.46900 ns/op
Map access 1 prop 0.38200 ns/op
Object get x1000 11.002 ns/op
Map get x1000 1.1360 ns/op
Object set x1000 78.927 ns/op
Map set x1000 51.785 ns/op
Return object 10000 times 0.45160 ns/op
Throw Error 10000 times 5.9384 us/op
enrSubnets - fastDeserialize 64 bits 3.0170 us/op
enrSubnets - ssz BitVector 64 bits 977.00 ns/op
enrSubnets - fastDeserialize 4 bits 489.00 ns/op
enrSubnets - ssz BitVector 4 bits 994.00 ns/op
prioritizePeers score -10:0 att 32-0.1 sync 2-0 87.686 us/op
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 119.18 us/op
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 210.63 us/op
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 412.17 us/op
prioritizePeers score 0:0 att 64-1 sync 4-1 419.85 us/op
RateTracker 1000000 limit, 1 obj count per request 187.10 ns/op
RateTracker 1000000 limit, 2 obj count per request 138.78 ns/op
RateTracker 1000000 limit, 4 obj count per request 114.58 ns/op
RateTracker 1000000 limit, 8 obj count per request 101.83 ns/op
RateTracker with prune 4.5130 us/op
array of 16000 items push then shift 51.614 us/op
LinkedList of 16000 items push then shift 17.444 ns/op
array of 16000 items push then pop 206.81 ns/op
LinkedList of 16000 items push then pop 14.568 ns/op
array of 24000 items push then shift 77.381 us/op
LinkedList of 24000 items push then shift 22.400 ns/op
array of 24000 items push then pop 203.03 ns/op
LinkedList of 24000 items push then pop 19.192 ns/op
intersect bitArray bitLen 8 10.911 ns/op
intersect array and set length 8 169.74 ns/op
intersect bitArray bitLen 128 55.915 ns/op
intersect array and set length 128 1.8757 us/op

by benchmarkbot/action

@wemeetagain wemeetagain marked this pull request as ready for review June 30, 2022 18:52
@wemeetagain wemeetagain requested a review from a team as a code owner June 30, 2022 18:52
@wemeetagain
Copy link
Member Author

We got agreement in discord that this release is ready to go.

Copy link
Contributor

@dapplion dapplion left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Metrics look good!

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.

7 participants