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

Merge stable to unstable no conflicts #5216

Merged
merged 14 commits into from
Feb 28, 2023
Merged

Merge stable to unstable no conflicts #5216

merged 14 commits into from
Feb 28, 2023

Conversation

dapplion
Copy link
Contributor

@dapplion dapplion commented Feb 28, 2023

Motivation

There are conflicts merging stable to unstable that must be resolved manually.

Description

Merge stable to unstable no conflicts

Strategy I followed

git fetch
git checkout unstable
git pull
git merge origin/stable

Fix conflicts manually, the use local git visualizer to check that no changes are included or dropped unintended

git checkout -b unstable-conflict
git push ..

wemeetagain and others added 13 commits February 27, 2023 13:50
)

* Add validatior option to specify builder block selection strategy

* cleanup and improvements

* server api fx

* fix test

* fix the testcase
* Cache and retransmit bls changes if submitted early

* regossip when synced on/post capella

* fix tests

* modify publish vs cache condition

* add logging

* add error logging

* batchify the processing

* fix some of the cases

* fix log issues

* also delete included keys

* fix lint

* simplify gossip loop

* fix build

* refac to a versioned bls change store

* update

* logging improvements

* improve logging and finish behavior

* cleanup
…5027)

* Add execution payload header to light client header capella onwards

* add more forks

* add allfork types

* make other types multifork

* make events multifork compatible

* make lightclient routes multifork

* update light-client transport

* upgrade the blocktype on lightclient server import block

* fixes

* fix test

* fix event serialization/deserilization type

* update proof constants

* fix payload index

* update the light client update generation to multi fork

* fix types

* add spec override to pass specs

* make event types allforks

* make req/resp multifork

* make types multifork throughout

* fix the update serialize/deserialize

* fix error log

* better fork determination for update

* fix the fork of finalized

* fix tests

* fix header upgradation
* Fix gossiping blsChange on submit if post capella

* comment improvement
@dapplion dapplion requested a review from a team as a code owner February 28, 2023 03:35
@dapplion dapplion enabled auto-merge (squash) February 28, 2023 03:38
twoeths
twoeths previously approved these changes Feb 28, 2023
Copy link
Contributor

@twoeths twoeths left a comment

Choose a reason for hiding this comment

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

imo this is best practice to follow, should consider it for Release.md @philknows

@github-actions
Copy link
Contributor

github-actions bot commented Feb 28, 2023

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: e2924a4 Previous: d5c08e3 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.0320 ms/op 910.42 us/op 1.13
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 58.708 us/op 44.912 us/op 1.31
BLS verify - blst-native 1.2293 ms/op 1.1922 ms/op 1.03
BLS verifyMultipleSignatures 3 - blst-native 2.5170 ms/op 2.4058 ms/op 1.05
BLS verifyMultipleSignatures 8 - blst-native 5.3929 ms/op 5.1631 ms/op 1.04
BLS verifyMultipleSignatures 32 - blst-native 19.451 ms/op 18.731 ms/op 1.04
BLS aggregatePubkeys 32 - blst-native 26.250 us/op 24.977 us/op 1.05
BLS aggregatePubkeys 128 - blst-native 101.76 us/op 97.709 us/op 1.04
getAttestationsForBlock 64.553 ms/op 52.910 ms/op 1.22
isKnown best case - 1 super set check 280.00 ns/op 260.00 ns/op 1.08
isKnown normal case - 2 super set checks 308.00 ns/op 256.00 ns/op 1.20
isKnown worse case - 16 super set checks 245.00 ns/op 260.00 ns/op 0.94
CheckpointStateCache - add get delete 6.2610 us/op 5.1120 us/op 1.22
validate gossip signedAggregateAndProof - struct 2.8169 ms/op 2.7933 ms/op 1.01
validate gossip attestation - struct 1.3412 ms/op 1.3248 ms/op 1.01
pickEth1Vote - no votes 1.3982 ms/op 1.1943 ms/op 1.17
pickEth1Vote - max votes 11.722 ms/op 9.0667 ms/op 1.29
pickEth1Vote - Eth1Data hashTreeRoot value x2048 9.9486 ms/op 8.5097 ms/op 1.17
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 15.813 ms/op 13.860 ms/op 1.14
pickEth1Vote - Eth1Data fastSerialize value x2048 832.63 us/op 639.97 us/op 1.30
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.0256 ms/op 6.5248 ms/op 0.92
bytes32 toHexString 728.00 ns/op 450.00 ns/op 1.62
bytes32 Buffer.toString(hex) 424.00 ns/op 319.00 ns/op 1.33
bytes32 Buffer.toString(hex) from Uint8Array 626.00 ns/op 506.00 ns/op 1.24
bytes32 Buffer.toString(hex) + 0x 432.00 ns/op 321.00 ns/op 1.35
Object access 1 prop 0.21000 ns/op 0.15200 ns/op 1.38
Map access 1 prop 0.16600 ns/op 0.14900 ns/op 1.11
Object get x1000 7.1000 ns/op 6.5900 ns/op 1.08
Map get x1000 0.59600 ns/op 0.51800 ns/op 1.15
Object set x1000 74.251 ns/op 51.441 ns/op 1.44
Map set x1000 57.282 ns/op 42.304 ns/op 1.35
Return object 10000 times 0.24550 ns/op 0.23290 ns/op 1.05
Throw Error 10000 times 4.2505 us/op 4.0491 us/op 1.05
fastMsgIdFn sha256 / 200 bytes 3.5970 us/op 3.4120 us/op 1.05
fastMsgIdFn h32 xxhash / 200 bytes 324.00 ns/op 270.00 ns/op 1.20
fastMsgIdFn h64 xxhash / 200 bytes 463.00 ns/op 382.00 ns/op 1.21
fastMsgIdFn sha256 / 1000 bytes 11.969 us/op 11.563 us/op 1.04
fastMsgIdFn h32 xxhash / 1000 bytes 460.00 ns/op 399.00 ns/op 1.15
fastMsgIdFn h64 xxhash / 1000 bytes 538.00 ns/op 448.00 ns/op 1.20
fastMsgIdFn sha256 / 10000 bytes 105.44 us/op 104.31 us/op 1.01
fastMsgIdFn h32 xxhash / 10000 bytes 1.9870 us/op 1.9200 us/op 1.03
fastMsgIdFn h64 xxhash / 10000 bytes 1.4400 us/op 1.3620 us/op 1.06
enrSubnets - fastDeserialize 64 bits 1.5430 us/op 1.2650 us/op 1.22
enrSubnets - ssz BitVector 64 bits 575.00 ns/op 475.00 ns/op 1.21
enrSubnets - fastDeserialize 4 bits 202.00 ns/op 170.00 ns/op 1.19
enrSubnets - ssz BitVector 4 bits 625.00 ns/op 470.00 ns/op 1.33
prioritizePeers score -10:0 att 32-0.1 sync 2-0 97.440 us/op 95.819 us/op 1.02
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 133.69 us/op 120.28 us/op 1.11
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 205.08 us/op 165.33 us/op 1.24
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 376.77 us/op 300.35 us/op 1.25
prioritizePeers score 0:0 att 64-1 sync 4-1 415.66 us/op 354.23 us/op 1.17
array of 16000 items push then shift 1.6949 us/op 1.6242 us/op 1.04
LinkedList of 16000 items push then shift 9.6520 ns/op 8.7880 ns/op 1.10
array of 16000 items push then pop 125.42 ns/op 78.095 ns/op 1.61
LinkedList of 16000 items push then pop 9.2300 ns/op 8.4910 ns/op 1.09
array of 24000 items push then shift 2.4138 us/op 2.3458 us/op 1.03
LinkedList of 24000 items push then shift 10.030 ns/op 8.7200 ns/op 1.15
array of 24000 items push then pop 97.997 ns/op 76.452 ns/op 1.28
LinkedList of 24000 items push then pop 9.4870 ns/op 8.4440 ns/op 1.12
intersect bitArray bitLen 8 13.455 ns/op 13.130 ns/op 1.02
intersect array and set length 8 112.21 ns/op 76.728 ns/op 1.46
intersect bitArray bitLen 128 44.385 ns/op 43.956 ns/op 1.01
intersect array and set length 128 1.3674 us/op 1.0376 us/op 1.32
Buffer.concat 32 items 3.2440 us/op 2.9040 us/op 1.12
Uint8Array.set 32 items 2.4500 us/op 2.7870 us/op 0.88
pass gossip attestations to forkchoice per slot 3.7532 ms/op 3.2309 ms/op 1.16
computeDeltas 3.0491 ms/op 2.8282 ms/op 1.08
computeProposerBoostScoreFromBalances 1.8214 ms/op 1.7695 ms/op 1.03
altair processAttestation - 250000 vs - 7PWei normalcase 3.5127 ms/op 2.1687 ms/op 1.62
altair processAttestation - 250000 vs - 7PWei worstcase 5.4344 ms/op 3.3774 ms/op 1.61
altair processAttestation - setStatus - 1/6 committees join 143.41 us/op 146.92 us/op 0.98
altair processAttestation - setStatus - 1/3 committees join 284.29 us/op 283.26 us/op 1.00
altair processAttestation - setStatus - 1/2 committees join 380.31 us/op 384.35 us/op 0.99
altair processAttestation - setStatus - 2/3 committees join 476.36 us/op 464.19 us/op 1.03
altair processAttestation - setStatus - 4/5 committees join 668.76 us/op 643.69 us/op 1.04
altair processAttestation - setStatus - 100% committees join 776.92 us/op 752.05 us/op 1.03
altair processBlock - 250000 vs - 7PWei normalcase 17.871 ms/op 16.812 ms/op 1.06
altair processBlock - 250000 vs - 7PWei normalcase hashState 26.421 ms/op 24.284 ms/op 1.09
altair processBlock - 250000 vs - 7PWei worstcase 49.396 ms/op 51.778 ms/op 0.95
altair processBlock - 250000 vs - 7PWei worstcase hashState 67.044 ms/op 68.875 ms/op 0.97
phase0 processBlock - 250000 vs - 7PWei normalcase 2.2699 ms/op 2.0584 ms/op 1.10
phase0 processBlock - 250000 vs - 7PWei worstcase 30.366 ms/op 28.634 ms/op 1.06
altair processEth1Data - 250000 vs - 7PWei normalcase 501.07 us/op 472.53 us/op 1.06
vc - 250000 eb 1 eth1 1 we 0 wn 0 - smpl 15 8.1630 us/op 7.2850 us/op 1.12
vc - 250000 eb 0.95 eth1 0.1 we 0.05 wn 0 - smpl 219 26.648 us/op 21.101 us/op 1.26
vc - 250000 eb 0.95 eth1 0.3 we 0.05 wn 0 - smpl 42 11.037 us/op 9.1240 us/op 1.21
vc - 250000 eb 0.95 eth1 0.7 we 0.05 wn 0 - smpl 18 8.1040 us/op 7.2110 us/op 1.12
vc - 250000 eb 0.1 eth1 0.1 we 0 wn 0 - smpl 1020 102.56 us/op 80.544 us/op 1.27
vc - 250000 eb 0.03 eth1 0.03 we 0 wn 0 - smpl 11777 649.84 us/op 645.30 us/op 1.01
vc - 250000 eb 0.01 eth1 0.01 we 0 wn 0 - smpl 16384 944.35 us/op 866.62 us/op 1.09
vc - 250000 eb 0 eth1 0 we 0 wn 0 - smpl 16384 902.62 us/op 903.65 us/op 1.00
vc - 250000 eb 0 eth1 0 we 0 wn 0 nocache - smpl 16384 2.3570 ms/op 2.2926 ms/op 1.03
vc - 250000 eb 0 eth1 1 we 0 wn 0 - smpl 16384 1.5787 ms/op 1.4858 ms/op 1.06
vc - 250000 eb 0 eth1 1 we 0 wn 0 nocache - smpl 16384 4.0309 ms/op 3.7275 ms/op 1.08
Tree 40 250000 create 324.89 ms/op 308.63 ms/op 1.05
Tree 40 250000 get(125000) 195.06 ns/op 170.33 ns/op 1.15
Tree 40 250000 set(125000) 980.50 ns/op 818.52 ns/op 1.20
Tree 40 250000 toArray() 21.733 ms/op 15.863 ms/op 1.37
Tree 40 250000 iterate all - toArray() + loop 20.974 ms/op 16.055 ms/op 1.31
Tree 40 250000 iterate all - get(i) 73.926 ms/op 62.730 ms/op 1.18
MutableVector 250000 create 12.760 ms/op 11.116 ms/op 1.15
MutableVector 250000 get(125000) 6.4810 ns/op 6.4130 ns/op 1.01
MutableVector 250000 set(125000) 260.62 ns/op 239.91 ns/op 1.09
MutableVector 250000 toArray() 3.7125 ms/op 2.6220 ms/op 1.42
MutableVector 250000 iterate all - toArray() + loop 3.7606 ms/op 2.7267 ms/op 1.38
MutableVector 250000 iterate all - get(i) 1.5672 ms/op 1.5163 ms/op 1.03
Array 250000 create 3.3889 ms/op 2.4362 ms/op 1.39
Array 250000 clone - spread 1.2338 ms/op 1.0685 ms/op 1.15
Array 250000 get(125000) 0.61300 ns/op 0.52200 ns/op 1.17
Array 250000 set(125000) 0.71900 ns/op 0.59100 ns/op 1.22
Array 250000 iterate all - loop 85.478 us/op 78.038 us/op 1.10
effectiveBalanceIncrements clone Uint8Array 300000 41.302 us/op 22.793 us/op 1.81
effectiveBalanceIncrements clone MutableVector 300000 371.00 ns/op 324.00 ns/op 1.15
effectiveBalanceIncrements rw all Uint8Array 300000 176.65 us/op 159.16 us/op 1.11
effectiveBalanceIncrements rw all MutableVector 300000 95.977 ms/op 78.410 ms/op 1.22
phase0 afterProcessEpoch - 250000 vs - 7PWei 118.45 ms/op 112.74 ms/op 1.05
phase0 beforeProcessEpoch - 250000 vs - 7PWei 47.396 ms/op 41.909 ms/op 1.13
altair processEpoch - mainnet_e81889 355.44 ms/op 296.58 ms/op 1.20
mainnet_e81889 - altair beforeProcessEpoch 84.269 ms/op 47.248 ms/op 1.78
mainnet_e81889 - altair processJustificationAndFinalization 32.585 us/op 16.208 us/op 2.01
mainnet_e81889 - altair processInactivityUpdates 8.3227 ms/op 5.1541 ms/op 1.61
mainnet_e81889 - altair processRewardsAndPenalties 60.601 ms/op 68.409 ms/op 0.89
mainnet_e81889 - altair processRegistryUpdates 6.5820 us/op 2.4280 us/op 2.71
mainnet_e81889 - altair processSlashings 918.00 ns/op 531.00 ns/op 1.73
mainnet_e81889 - altair processEth1DataReset 909.00 ns/op 552.00 ns/op 1.65
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2848 ms/op 1.2013 ms/op 1.07
mainnet_e81889 - altair processSlashingsReset 7.0990 us/op 4.6620 us/op 1.52
mainnet_e81889 - altair processRandaoMixesReset 7.9630 us/op 4.7850 us/op 1.66
mainnet_e81889 - altair processHistoricalRootsUpdate 865.00 ns/op 592.00 ns/op 1.46
mainnet_e81889 - altair processParticipationFlagUpdates 4.7400 us/op 2.0700 us/op 2.29
mainnet_e81889 - altair processSyncCommitteeUpdates 819.00 ns/op 888.00 ns/op 0.92
mainnet_e81889 - altair afterProcessEpoch 131.83 ms/op 116.91 ms/op 1.13
phase0 processEpoch - mainnet_e58758 385.24 ms/op 354.15 ms/op 1.09
mainnet_e58758 - phase0 beforeProcessEpoch 143.22 ms/op 130.83 ms/op 1.09
mainnet_e58758 - phase0 processJustificationAndFinalization 20.497 us/op 15.918 us/op 1.29
mainnet_e58758 - phase0 processRewardsAndPenalties 62.826 ms/op 64.372 ms/op 0.98
mainnet_e58758 - phase0 processRegistryUpdates 8.7560 us/op 7.7160 us/op 1.13
mainnet_e58758 - phase0 processSlashings 478.00 ns/op 515.00 ns/op 0.93
mainnet_e58758 - phase0 processEth1DataReset 483.00 ns/op 526.00 ns/op 0.92
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 940.56 us/op 938.33 us/op 1.00
mainnet_e58758 - phase0 processSlashingsReset 4.4240 us/op 3.5260 us/op 1.25
mainnet_e58758 - phase0 processRandaoMixesReset 5.3400 us/op 4.7160 us/op 1.13
mainnet_e58758 - phase0 processHistoricalRootsUpdate 545.00 ns/op 608.00 ns/op 0.90
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.1960 us/op 4.0560 us/op 1.03
mainnet_e58758 - phase0 afterProcessEpoch 94.073 ms/op 92.505 ms/op 1.02
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.2298 ms/op 1.2350 ms/op 1.00
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.7714 ms/op 1.4505 ms/op 1.22
altair processInactivityUpdates - 250000 normalcase 25.974 ms/op 20.002 ms/op 1.30
altair processInactivityUpdates - 250000 worstcase 25.367 ms/op 25.036 ms/op 1.01
phase0 processRegistryUpdates - 250000 normalcase 6.9500 us/op 6.8110 us/op 1.02
phase0 processRegistryUpdates - 250000 badcase_full_deposits 234.74 us/op 226.76 us/op 1.04
phase0 processRegistryUpdates - 250000 worstcase 0.5 121.52 ms/op 125.17 ms/op 0.97
altair processRewardsAndPenalties - 250000 normalcase 68.929 ms/op 67.236 ms/op 1.03
altair processRewardsAndPenalties - 250000 worstcase 70.534 ms/op 68.104 ms/op 1.04
phase0 getAttestationDeltas - 250000 normalcase 6.5600 ms/op 6.6546 ms/op 0.99
phase0 getAttestationDeltas - 250000 worstcase 6.4499 ms/op 6.4283 ms/op 1.00
phase0 processSlashings - 250000 worstcase 3.2218 ms/op 3.2983 ms/op 0.98
altair processSyncCommitteeUpdates - 250000 177.42 ms/op 178.06 ms/op 1.00
BeaconState.hashTreeRoot - No change 256.00 ns/op 347.00 ns/op 0.74
BeaconState.hashTreeRoot - 1 full validator 52.374 us/op 52.409 us/op 1.00
BeaconState.hashTreeRoot - 32 full validator 519.50 us/op 485.25 us/op 1.07
BeaconState.hashTreeRoot - 512 full validator 5.0978 ms/op 5.6651 ms/op 0.90
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 64.693 us/op 66.983 us/op 0.97
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 859.27 us/op 905.24 us/op 0.95
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 11.788 ms/op 11.812 ms/op 1.00
BeaconState.hashTreeRoot - 1 balances 48.020 us/op 49.431 us/op 0.97
BeaconState.hashTreeRoot - 32 balances 456.29 us/op 485.66 us/op 0.94
BeaconState.hashTreeRoot - 512 balances 4.6241 ms/op 4.5671 ms/op 1.01
BeaconState.hashTreeRoot - 250000 balances 75.805 ms/op 77.612 ms/op 0.98
aggregationBits - 2048 els - zipIndexesInBitList 15.296 us/op 17.676 us/op 0.87
regular array get 100000 times 32.368 us/op 33.653 us/op 0.96
wrappedArray get 100000 times 32.354 us/op 33.528 us/op 0.96
arrayWithProxy get 100000 times 16.376 ms/op 15.655 ms/op 1.05
ssz.Root.equals 536.00 ns/op 551.00 ns/op 0.97
byteArrayEquals 527.00 ns/op 548.00 ns/op 0.96
shuffle list - 16384 els 6.6311 ms/op 7.1441 ms/op 0.93
shuffle list - 250000 els 97.316 ms/op 103.04 ms/op 0.94
processSlot - 1 slots 8.4120 us/op 9.2090 us/op 0.91
processSlot - 32 slots 1.2950 ms/op 1.3464 ms/op 0.96
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 189.58 us/op 198.53 us/op 0.95
getCommitteeAssignments - req 1 vs - 250000 vc 2.8022 ms/op 2.9190 ms/op 0.96
getCommitteeAssignments - req 100 vs - 250000 vc 3.9977 ms/op 4.1586 ms/op 0.96
getCommitteeAssignments - req 1000 vs - 250000 vc 4.3056 ms/op 4.5128 ms/op 0.95
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.4400 ns/op 4.6500 ns/op 0.95
state getBlockRootAtSlot - 250000 vs - 7PWei 910.18 ns/op 670.38 ns/op 1.36
computeProposers - vc 250000 10.454 ms/op 10.449 ms/op 1.00
computeEpochShuffling - vc 250000 100.62 ms/op 104.16 ms/op 0.97
getNextSyncCommittee - vc 250000 172.21 ms/op 172.51 ms/op 1.00

by benchmarkbot/action

@dapplion dapplion merged commit d4b9201 into unstable Feb 28, 2023
@dapplion dapplion deleted the unstable-conflict branch February 28, 2023 04:10
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.

5 participants