Skip to content

UpgradeLightClientHeader generic over fork#5167

Merged
wemeetagain merged 1 commit intounstablefrom
dapplion/update-lc-fork
Feb 20, 2023
Merged

UpgradeLightClientHeader generic over fork#5167
wemeetagain merged 1 commit intounstablefrom
dapplion/update-lc-fork

Conversation

@dapplion
Copy link
Copy Markdown
Contributor

@dapplion dapplion commented Feb 20, 2023

Motivation

Description

Make UpgradeLightClientHeader more generic over forks

CC: @g11tech

@dapplion dapplion requested a review from a team as a code owner February 20, 2023 00:53
@github-actions
Copy link
Copy Markdown
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 51f89d9 Previous: f75d109 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 744.41 us/op 902.64 us/op 0.82
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 51.001 us/op 46.726 us/op 1.09
BLS verify - blst-native 1.2678 ms/op 1.1830 ms/op 1.07
BLS verifyMultipleSignatures 3 - blst-native 2.5697 ms/op 2.4050 ms/op 1.07
BLS verifyMultipleSignatures 8 - blst-native 5.4965 ms/op 5.3051 ms/op 1.04
BLS verifyMultipleSignatures 32 - blst-native 19.787 ms/op 18.967 ms/op 1.04
BLS aggregatePubkeys 32 - blst-native 26.615 us/op 25.327 us/op 1.05
BLS aggregatePubkeys 128 - blst-native 103.74 us/op 99.224 us/op 1.05
getAttestationsForBlock 63.783 ms/op 52.161 ms/op 1.22
isKnown best case - 1 super set check 293.00 ns/op 254.00 ns/op 1.15
isKnown normal case - 2 super set checks 282.00 ns/op 244.00 ns/op 1.16
isKnown worse case - 16 super set checks 292.00 ns/op 249.00 ns/op 1.17
CheckpointStateCache - add get delete 5.9900 us/op 4.9790 us/op 1.20
validate gossip signedAggregateAndProof - struct 2.8199 ms/op 2.6842 ms/op 1.05
validate gossip attestation - struct 1.3274 ms/op 1.2821 ms/op 1.04
pickEth1Vote - no votes 1.2604 ms/op 1.2144 ms/op 1.04
pickEth1Vote - max votes 8.6378 ms/op 11.211 ms/op 0.77
pickEth1Vote - Eth1Data hashTreeRoot value x2048 8.8888 ms/op 8.8106 ms/op 1.01
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 13.873 ms/op 13.983 ms/op 0.99
pickEth1Vote - Eth1Data fastSerialize value x2048 687.91 us/op 621.69 us/op 1.11
pickEth1Vote - Eth1Data fastSerialize tree x2048 7.4570 ms/op 7.8117 ms/op 0.95
bytes32 toHexString 585.00 ns/op 468.00 ns/op 1.25
bytes32 Buffer.toString(hex) 365.00 ns/op 326.00 ns/op 1.12
bytes32 Buffer.toString(hex) from Uint8Array 658.00 ns/op 517.00 ns/op 1.27
bytes32 Buffer.toString(hex) + 0x 419.00 ns/op 325.00 ns/op 1.29
Object access 1 prop 0.20100 ns/op 0.15300 ns/op 1.31
Map access 1 prop 0.16500 ns/op 0.15800 ns/op 1.04
Object get x1000 6.3690 ns/op 6.2980 ns/op 1.01
Map get x1000 0.64000 ns/op 0.53900 ns/op 1.19
Object set x1000 61.798 ns/op 49.984 ns/op 1.24
Map set x1000 56.193 ns/op 41.870 ns/op 1.34
Return object 10000 times 0.25760 ns/op 0.22860 ns/op 1.13
Throw Error 10000 times 4.4019 us/op 4.0391 us/op 1.09
fastMsgIdFn sha256 / 200 bytes 3.6380 us/op 3.3190 us/op 1.10
fastMsgIdFn h32 xxhash / 200 bytes 319.00 ns/op 282.00 ns/op 1.13
fastMsgIdFn h64 xxhash / 200 bytes 481.00 ns/op 368.00 ns/op 1.31
fastMsgIdFn sha256 / 1000 bytes 12.147 us/op 11.200 us/op 1.08
fastMsgIdFn h32 xxhash / 1000 bytes 459.00 ns/op 408.00 ns/op 1.13
fastMsgIdFn h64 xxhash / 1000 bytes 570.00 ns/op 441.00 ns/op 1.29
fastMsgIdFn sha256 / 10000 bytes 107.53 us/op 100.99 us/op 1.06
fastMsgIdFn h32 xxhash / 10000 bytes 2.1270 us/op 1.8780 us/op 1.13
fastMsgIdFn h64 xxhash / 10000 bytes 1.5050 us/op 1.3040 us/op 1.15
enrSubnets - fastDeserialize 64 bits 1.8190 us/op 1.2380 us/op 1.47
enrSubnets - ssz BitVector 64 bits 631.00 ns/op 463.00 ns/op 1.36
enrSubnets - fastDeserialize 4 bits 230.00 ns/op 173.00 ns/op 1.33
enrSubnets - ssz BitVector 4 bits 671.00 ns/op 469.00 ns/op 1.43
prioritizePeers score -10:0 att 32-0.1 sync 2-0 115.35 us/op 92.359 us/op 1.25
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 130.91 us/op 118.97 us/op 1.10
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 173.87 us/op 166.78 us/op 1.04
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 328.27 us/op 299.90 us/op 1.09
prioritizePeers score 0:0 att 64-1 sync 4-1 366.93 us/op 353.81 us/op 1.04
array of 16000 items push then shift 1.6626 us/op 1.5972 us/op 1.04
LinkedList of 16000 items push then shift 8.8990 ns/op 8.7660 ns/op 1.02
array of 16000 items push then pop 95.071 ns/op 81.829 ns/op 1.16
LinkedList of 16000 items push then pop 8.6360 ns/op 8.4560 ns/op 1.02
array of 24000 items push then shift 2.3333 us/op 2.3208 us/op 1.01
LinkedList of 24000 items push then shift 8.7140 ns/op 8.7660 ns/op 0.99
array of 24000 items push then pop 73.264 ns/op 77.883 ns/op 0.94
LinkedList of 24000 items push then pop 8.6000 ns/op 8.4310 ns/op 1.02
intersect bitArray bitLen 8 13.123 ns/op 13.202 ns/op 0.99
intersect array and set length 8 79.020 ns/op 76.216 ns/op 1.04
intersect bitArray bitLen 128 43.698 ns/op 43.436 ns/op 1.01
intersect array and set length 128 1.0549 us/op 1.0364 us/op 1.02
Buffer.concat 32 items 2.7900 us/op 2.6310 us/op 1.06
Uint8Array.set 32 items 2.0110 us/op 2.9050 us/op 0.69
pass gossip attestations to forkchoice per slot 2.3119 ms/op 2.2511 ms/op 1.03
computeDeltas 3.3530 ms/op 2.7788 ms/op 1.21
computeProposerBoostScoreFromBalances 1.8163 ms/op 1.7597 ms/op 1.03
altair processAttestation - 250000 vs - 7PWei normalcase 2.2143 ms/op 2.1094 ms/op 1.05
altair processAttestation - 250000 vs - 7PWei worstcase 3.4084 ms/op 3.2782 ms/op 1.04
altair processAttestation - setStatus - 1/6 committees join 139.96 us/op 138.70 us/op 1.01
altair processAttestation - setStatus - 1/3 committees join 281.70 us/op 274.89 us/op 1.02
altair processAttestation - setStatus - 1/2 committees join 370.41 us/op 363.21 us/op 1.02
altair processAttestation - setStatus - 2/3 committees join 466.63 us/op 449.94 us/op 1.04
altair processAttestation - setStatus - 4/5 committees join 651.76 us/op 640.92 us/op 1.02
altair processAttestation - setStatus - 100% committees join 763.77 us/op 753.01 us/op 1.01
altair processBlock - 250000 vs - 7PWei normalcase 16.550 ms/op 16.371 ms/op 1.01
altair processBlock - 250000 vs - 7PWei normalcase hashState 25.885 ms/op 27.662 ms/op 0.94
altair processBlock - 250000 vs - 7PWei worstcase 47.166 ms/op 49.539 ms/op 0.95
altair processBlock - 250000 vs - 7PWei worstcase hashState 68.407 ms/op 69.344 ms/op 0.99
phase0 processBlock - 250000 vs - 7PWei normalcase 2.0315 ms/op 1.9492 ms/op 1.04
phase0 processBlock - 250000 vs - 7PWei worstcase 29.387 ms/op 27.393 ms/op 1.07
altair processEth1Data - 250000 vs - 7PWei normalcase 511.83 us/op 459.48 us/op 1.11
vc - 250000 eb 1 eth1 1 we 0 wn 0 - smpl 15 8.6650 us/op 6.6720 us/op 1.30
vc - 250000 eb 0.95 eth1 0.1 we 0.05 wn 0 - smpl 219 27.148 us/op 19.388 us/op 1.40
vc - 250000 eb 0.95 eth1 0.3 we 0.05 wn 0 - smpl 42 10.388 us/op 8.1810 us/op 1.27
vc - 250000 eb 0.95 eth1 0.7 we 0.05 wn 0 - smpl 18 7.7630 us/op 6.3680 us/op 1.22
vc - 250000 eb 0.1 eth1 0.1 we 0 wn 0 - smpl 1020 105.51 us/op 73.596 us/op 1.43
vc - 250000 eb 0.03 eth1 0.03 we 0 wn 0 - smpl 11777 661.30 us/op 617.39 us/op 1.07
vc - 250000 eb 0.01 eth1 0.01 we 0 wn 0 - smpl 16384 939.27 us/op 907.01 us/op 1.04
vc - 250000 eb 0 eth1 0 we 0 wn 0 - smpl 16384 929.95 us/op 839.47 us/op 1.11
vc - 250000 eb 0 eth1 0 we 0 wn 0 nocache - smpl 16384 2.3287 ms/op 2.2066 ms/op 1.06
vc - 250000 eb 0 eth1 1 we 0 wn 0 - smpl 16384 1.4724 ms/op 1.5833 ms/op 0.93
vc - 250000 eb 0 eth1 1 we 0 wn 0 nocache - smpl 16384 4.0645 ms/op 3.8466 ms/op 1.06
Tree 40 250000 create 324.99 ms/op 306.90 ms/op 1.06
Tree 40 250000 get(125000) 190.39 ns/op 174.96 ns/op 1.09
Tree 40 250000 set(125000) 1.0432 us/op 926.69 ns/op 1.13
Tree 40 250000 toArray() 21.163 ms/op 16.973 ms/op 1.25
Tree 40 250000 iterate all - toArray() + loop 21.446 ms/op 16.997 ms/op 1.26
Tree 40 250000 iterate all - get(i) 73.689 ms/op 67.063 ms/op 1.10
MutableVector 250000 create 10.376 ms/op 9.5803 ms/op 1.08
MutableVector 250000 get(125000) 6.5420 ns/op 6.2910 ns/op 1.04
MutableVector 250000 set(125000) 289.14 ns/op 242.62 ns/op 1.19
MutableVector 250000 toArray() 3.3027 ms/op 2.6766 ms/op 1.23
MutableVector 250000 iterate all - toArray() + loop 2.8526 ms/op 2.7524 ms/op 1.04
MutableVector 250000 iterate all - get(i) 1.5550 ms/op 1.5203 ms/op 1.02
Array 250000 create 2.6319 ms/op 2.5098 ms/op 1.05
Array 250000 clone - spread 1.0712 ms/op 1.0973 ms/op 0.98
Array 250000 get(125000) 0.55300 ns/op 0.53200 ns/op 1.04
Array 250000 set(125000) 0.64400 ns/op 0.61800 ns/op 1.04
Array 250000 iterate all - loop 86.177 us/op 81.783 us/op 1.05
effectiveBalanceIncrements clone Uint8Array 300000 30.836 us/op 23.733 us/op 1.30
effectiveBalanceIncrements clone MutableVector 300000 343.00 ns/op 339.00 ns/op 1.01
effectiveBalanceIncrements rw all Uint8Array 300000 173.12 us/op 168.17 us/op 1.03
effectiveBalanceIncrements rw all MutableVector 300000 81.121 ms/op 79.420 ms/op 1.02
phase0 afterProcessEpoch - 250000 vs - 7PWei 116.64 ms/op 112.02 ms/op 1.04
phase0 beforeProcessEpoch - 250000 vs - 7PWei 43.627 ms/op 41.718 ms/op 1.05
altair processEpoch - mainnet_e81889 322.63 ms/op 295.03 ms/op 1.09
mainnet_e81889 - altair beforeProcessEpoch 67.473 ms/op 47.618 ms/op 1.42
mainnet_e81889 - altair processJustificationAndFinalization 17.360 us/op 18.220 us/op 0.95
mainnet_e81889 - altair processInactivityUpdates 6.3411 ms/op 5.3448 ms/op 1.19
mainnet_e81889 - altair processRewardsAndPenalties 68.351 ms/op 69.410 ms/op 0.98
mainnet_e81889 - altair processRegistryUpdates 3.0760 us/op 2.8090 us/op 1.10
mainnet_e81889 - altair processSlashings 449.00 ns/op 615.00 ns/op 0.73
mainnet_e81889 - altair processEth1DataReset 490.00 ns/op 616.00 ns/op 0.80
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2663 ms/op 1.2186 ms/op 1.04
mainnet_e81889 - altair processSlashingsReset 3.5690 us/op 3.4830 us/op 1.02
mainnet_e81889 - altair processRandaoMixesReset 4.5810 us/op 4.3190 us/op 1.06
mainnet_e81889 - altair processHistoricalRootsUpdate 577.00 ns/op 606.00 ns/op 0.95
mainnet_e81889 - altair processParticipationFlagUpdates 1.9360 us/op 2.4400 us/op 0.79
mainnet_e81889 - altair processSyncCommitteeUpdates 1.7080 us/op 586.00 ns/op 2.91
mainnet_e81889 - altair afterProcessEpoch 132.97 ms/op 117.34 ms/op 1.13
phase0 processEpoch - mainnet_e58758 355.38 ms/op 314.17 ms/op 1.13
mainnet_e58758 - phase0 beforeProcessEpoch 137.24 ms/op 122.46 ms/op 1.12
mainnet_e58758 - phase0 processJustificationAndFinalization 17.932 us/op 16.634 us/op 1.08
mainnet_e58758 - phase0 processRewardsAndPenalties 63.311 ms/op 52.206 ms/op 1.21
mainnet_e58758 - phase0 processRegistryUpdates 8.6870 us/op 10.303 us/op 0.84
mainnet_e58758 - phase0 processSlashings 521.00 ns/op 587.00 ns/op 0.89
mainnet_e58758 - phase0 processEth1DataReset 504.00 ns/op 518.00 ns/op 0.97
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3435 ms/op 1.0177 ms/op 1.32
mainnet_e58758 - phase0 processSlashingsReset 4.0970 us/op 4.0780 us/op 1.00
mainnet_e58758 - phase0 processRandaoMixesReset 5.6100 us/op 4.3740 us/op 1.28
mainnet_e58758 - phase0 processHistoricalRootsUpdate 609.00 ns/op 709.00 ns/op 0.86
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.4820 us/op 3.9480 us/op 1.14
mainnet_e58758 - phase0 afterProcessEpoch 102.22 ms/op 100.40 ms/op 1.02
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.2735 ms/op 1.3063 ms/op 0.97
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5389 ms/op 1.4598 ms/op 1.05
altair processInactivityUpdates - 250000 normalcase 26.134 ms/op 21.246 ms/op 1.23
altair processInactivityUpdates - 250000 worstcase 25.543 ms/op 25.093 ms/op 1.02
phase0 processRegistryUpdates - 250000 normalcase 6.6080 us/op 7.0430 us/op 0.94
phase0 processRegistryUpdates - 250000 badcase_full_deposits 231.57 us/op 297.44 us/op 0.78
phase0 processRegistryUpdates - 250000 worstcase 0.5 131.56 ms/op 121.51 ms/op 1.08
altair processRewardsAndPenalties - 250000 normalcase 69.682 ms/op 47.718 ms/op 1.46
altair processRewardsAndPenalties - 250000 worstcase 70.704 ms/op 56.200 ms/op 1.26
phase0 getAttestationDeltas - 250000 normalcase 6.2218 ms/op 6.9026 ms/op 0.90
phase0 getAttestationDeltas - 250000 worstcase 6.2205 ms/op 6.8050 ms/op 0.91
phase0 processSlashings - 250000 worstcase 3.2603 ms/op 3.6356 ms/op 0.90
altair processSyncCommitteeUpdates - 250000 165.21 ms/op 185.36 ms/op 0.89
BeaconState.hashTreeRoot - No change 248.00 ns/op 256.00 ns/op 0.97
BeaconState.hashTreeRoot - 1 full validator 57.780 us/op 52.450 us/op 1.10
BeaconState.hashTreeRoot - 32 full validator 493.51 us/op 560.56 us/op 0.88
BeaconState.hashTreeRoot - 512 full validator 4.9727 ms/op 6.0173 ms/op 0.83
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 61.832 us/op 64.244 us/op 0.96
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 868.84 us/op 914.59 us/op 0.95
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 11.002 ms/op 11.511 ms/op 0.96
BeaconState.hashTreeRoot - 1 balances 49.337 us/op 48.022 us/op 1.03
BeaconState.hashTreeRoot - 32 balances 452.08 us/op 448.37 us/op 1.01
BeaconState.hashTreeRoot - 512 balances 4.3573 ms/op 4.6395 ms/op 0.94
BeaconState.hashTreeRoot - 250000 balances 73.451 ms/op 68.722 ms/op 1.07
aggregationBits - 2048 els - zipIndexesInBitList 15.170 us/op 17.869 us/op 0.85
regular array get 100000 times 32.700 us/op 35.742 us/op 0.91
wrappedArray get 100000 times 32.694 us/op 33.633 us/op 0.97
arrayWithProxy get 100000 times 15.781 ms/op 15.411 ms/op 1.02
ssz.Root.equals 526.00 ns/op 548.00 ns/op 0.96
byteArrayEquals 525.00 ns/op 541.00 ns/op 0.97
shuffle list - 16384 els 6.5697 ms/op 7.1237 ms/op 0.92
shuffle list - 250000 els 95.119 ms/op 103.85 ms/op 0.92
processSlot - 1 slots 8.6050 us/op 9.4290 us/op 0.91
processSlot - 32 slots 1.2612 ms/op 1.3678 ms/op 0.92
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 185.02 us/op 197.01 us/op 0.94
getCommitteeAssignments - req 1 vs - 250000 vc 2.9127 ms/op 2.9691 ms/op 0.98
getCommitteeAssignments - req 100 vs - 250000 vc 4.1479 ms/op 4.1922 ms/op 0.99
getCommitteeAssignments - req 1000 vs - 250000 vc 4.4386 ms/op 4.5498 ms/op 0.98
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.6100 ns/op 4.6600 ns/op 0.99
state getBlockRootAtSlot - 250000 vs - 7PWei 988.30 ns/op 963.41 ns/op 1.03
computeProposers - vc 250000 10.675 ms/op 11.581 ms/op 0.92
computeEpochShuffling - vc 250000 97.470 ms/op 105.71 ms/op 0.92
getNextSyncCommittee - vc 250000 169.21 ms/op 175.12 ms/op 0.97

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 6c130bc into unstable Feb 20, 2023
@wemeetagain wemeetagain deleted the dapplion/update-lc-fork branch February 20, 2023 02:17
@wemeetagain
Copy link
Copy Markdown
Member

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

2 participants