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

Use EpochContext.epoch as current epoch #4302

Merged
merged 1 commit into from Jul 15, 2022
Merged

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Jul 15, 2022

Motivation

  • Use shorter way to get current epoch

Description

  • Change epochCtx.currentShuffling.epoch to epochCtx.epoch

@twoeths twoeths requested a review from a team as a code owner July 15, 2022 01:54
@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 057b1be Previous: 5c90db6 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.9561 ms/op 2.2013 ms/op 1.34
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 82.654 us/op 72.094 us/op 1.15
BLS verify - blst-native 2.1696 ms/op 1.8581 ms/op 1.17
BLS verifyMultipleSignatures 3 - blst-native 4.4814 ms/op 3.8064 ms/op 1.18
BLS verifyMultipleSignatures 8 - blst-native 9.6955 ms/op 8.1874 ms/op 1.18
BLS verifyMultipleSignatures 32 - blst-native 35.285 ms/op 29.678 ms/op 1.19
BLS aggregatePubkeys 32 - blst-native 46.805 us/op 39.114 us/op 1.20
BLS aggregatePubkeys 128 - blst-native 182.88 us/op 152.97 us/op 1.20
getAttestationsForBlock 58.300 ms/op 45.141 ms/op 1.29
isKnown best case - 1 super set check 504.00 ns/op 430.00 ns/op 1.17
isKnown normal case - 2 super set checks 486.00 ns/op 418.00 ns/op 1.16
isKnown worse case - 16 super set checks 489.00 ns/op 428.00 ns/op 1.14
CheckpointStateCache - add get delete 13.791 us/op 11.204 us/op 1.23
validate gossip signedAggregateAndProof - struct 5.0497 ms/op 4.2834 ms/op 1.18
validate gossip attestation - struct 2.3734 ms/op 2.0287 ms/op 1.17
altair verifyImport mainnet_s3766816:31 12.603 s/op 12.271 s/op 1.03
pickEth1Vote - no votes 2.7739 ms/op 2.0926 ms/op 1.33
pickEth1Vote - max votes 35.003 ms/op 24.276 ms/op 1.44
pickEth1Vote - Eth1Data hashTreeRoot value x2048 15.715 ms/op 11.765 ms/op 1.34
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 29.294 ms/op 22.254 ms/op 1.32
pickEth1Vote - Eth1Data fastSerialize value x2048 1.6504 ms/op 1.5866 ms/op 1.04
pickEth1Vote - Eth1Data fastSerialize tree x2048 26.105 ms/op 18.852 ms/op 1.38
bytes32 toHexString 1.5600 us/op 1.1430 us/op 1.36
bytes32 Buffer.toString(hex) 905.00 ns/op 729.00 ns/op 1.24
bytes32 Buffer.toString(hex) from Uint8Array 1.2050 us/op 974.00 ns/op 1.24
bytes32 Buffer.toString(hex) + 0x 914.00 ns/op 720.00 ns/op 1.27
Object access 1 prop 0.52200 ns/op 0.40100 ns/op 1.30
Map access 1 prop 0.35700 ns/op 0.29600 ns/op 1.21
Object get x1000 11.468 ns/op 18.022 ns/op 0.64
Map get x1000 0.93800 ns/op 1.0190 ns/op 0.92
Object set x1000 118.24 ns/op 131.29 ns/op 0.90
Map set x1000 77.817 ns/op 79.494 ns/op 0.98
Return object 10000 times 0.45090 ns/op 0.37000 ns/op 1.22
Throw Error 10000 times 6.2321 us/op 6.0114 us/op 1.04
enrSubnets - fastDeserialize 64 bits 4.0750 us/op 2.9450 us/op 1.38
enrSubnets - ssz BitVector 64 bits 973.00 ns/op 755.00 ns/op 1.29
enrSubnets - fastDeserialize 4 bits 562.00 ns/op 435.00 ns/op 1.29
enrSubnets - ssz BitVector 4 bits 1.0130 us/op 796.00 ns/op 1.27
prioritizePeers score -10:0 att 32-0.1 sync 2-0 107.30 us/op 98.767 us/op 1.09
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 118.86 us/op 124.87 us/op 0.95
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 251.78 us/op 219.35 us/op 1.15
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 486.53 us/op 473.02 us/op 1.03
prioritizePeers score 0:0 att 64-1 sync 4-1 419.13 us/op 458.73 us/op 0.91
RateTracker 1000000 limit, 1 obj count per request 220.99 ns/op 195.72 ns/op 1.13
RateTracker 1000000 limit, 2 obj count per request 167.84 ns/op 147.52 ns/op 1.14
RateTracker 1000000 limit, 4 obj count per request 141.75 ns/op 124.69 ns/op 1.14
RateTracker 1000000 limit, 8 obj count per request 129.21 ns/op 114.31 ns/op 1.13
RateTracker with prune 7.2050 us/op 4.8810 us/op 1.48
array of 16000 items push then shift 51.693 us/op 3.1755 us/op 16.28
LinkedList of 16000 items push then shift 21.947 ns/op 25.249 ns/op 0.87
array of 16000 items push then pop 271.52 ns/op 262.13 ns/op 1.04
LinkedList of 16000 items push then pop 17.592 ns/op 21.137 ns/op 0.83
array of 24000 items push then shift 77.474 us/op 4.5543 us/op 17.01
LinkedList of 24000 items push then shift 32.118 ns/op 26.452 ns/op 1.21
array of 24000 items push then pop 249.16 ns/op 203.18 ns/op 1.23
LinkedList of 24000 items push then pop 21.039 ns/op 21.301 ns/op 0.99
intersect bitArray bitLen 8 11.138 ns/op 11.747 ns/op 0.95
intersect array and set length 8 211.42 ns/op 198.67 ns/op 1.06
intersect bitArray bitLen 128 55.704 ns/op 62.041 ns/op 0.90
intersect array and set length 128 2.2846 us/op 2.4572 us/op 0.93
pass gossip attestations to forkchoice per slot 3.5773 ms/op 3.1583 ms/op 1.13
computeDeltas 4.2735 ms/op 3.1686 ms/op 1.35
computeProposerBoostScoreFromBalances 809.74 us/op 907.95 us/op 0.89
altair processAttestation - 250000 vs - 7PWei normalcase 5.0746 ms/op 4.5558 ms/op 1.11
altair processAttestation - 250000 vs - 7PWei worstcase 7.1735 ms/op 6.4049 ms/op 1.12
altair processAttestation - setStatus - 1/6 committees join 213.34 us/op 213.85 us/op 1.00
altair processAttestation - setStatus - 1/3 committees join 396.58 us/op 407.28 us/op 0.97
altair processAttestation - setStatus - 1/2 committees join 548.54 us/op 567.18 us/op 0.97
altair processAttestation - setStatus - 2/3 committees join 702.02 us/op 732.84 us/op 0.96
altair processAttestation - setStatus - 4/5 committees join 1.0062 ms/op 1.0129 ms/op 0.99
altair processAttestation - setStatus - 100% committees join 1.1928 ms/op 1.2036 ms/op 0.99
altair processBlock - 250000 vs - 7PWei normalcase 30.479 ms/op 27.277 ms/op 1.12
altair processBlock - 250000 vs - 7PWei normalcase hashState 44.441 ms/op 38.957 ms/op 1.14
altair processBlock - 250000 vs - 7PWei worstcase 90.718 ms/op 74.492 ms/op 1.22
altair processBlock - 250000 vs - 7PWei worstcase hashState 115.35 ms/op 96.304 ms/op 1.20
phase0 processBlock - 250000 vs - 7PWei normalcase 6.5998 ms/op 4.4562 ms/op 1.48
phase0 processBlock - 250000 vs - 7PWei worstcase 55.555 ms/op 48.122 ms/op 1.15
altair processEth1Data - 250000 vs - 7PWei normalcase 1.0142 ms/op 895.54 us/op 1.13
Tree 40 250000 create 1.3551 s/op 788.38 ms/op 1.72
Tree 40 250000 get(125000) 256.93 ns/op 291.86 ns/op 0.88
Tree 40 250000 set(125000) 4.3428 us/op 2.5013 us/op 1.74
Tree 40 250000 toArray() 37.204 ms/op 31.713 ms/op 1.17
Tree 40 250000 iterate all - toArray() + loop 37.348 ms/op 31.769 ms/op 1.18
Tree 40 250000 iterate all - get(i) 121.50 ms/op 112.16 ms/op 1.08
MutableVector 250000 create 17.005 ms/op 16.734 ms/op 1.02
MutableVector 250000 get(125000) 10.948 ns/op 13.255 ns/op 0.83
MutableVector 250000 set(125000) 1.0907 us/op 671.53 ns/op 1.62
MutableVector 250000 toArray() 8.1563 ms/op 7.7667 ms/op 1.05
MutableVector 250000 iterate all - toArray() + loop 8.4084 ms/op 6.8381 ms/op 1.23
MutableVector 250000 iterate all - get(i) 2.6626 ms/op 3.2790 ms/op 0.81
Array 250000 create 8.0672 ms/op 6.0278 ms/op 1.34
Array 250000 clone - spread 8.5744 ms/op 2.5970 ms/op 3.30
Array 250000 get(125000) 3.2070 ns/op 1.1510 ns/op 2.79
Array 250000 set(125000) 3.2180 ns/op 1.1510 ns/op 2.80
Array 250000 iterate all - loop 174.94 us/op 167.82 us/op 1.04
effectiveBalanceIncrements clone Uint8Array 300000 119.66 us/op 80.777 us/op 1.48
effectiveBalanceIncrements clone MutableVector 300000 2.7260 us/op 802.00 ns/op 3.40
effectiveBalanceIncrements rw all Uint8Array 300000 247.59 us/op 252.48 us/op 0.98
effectiveBalanceIncrements rw all MutableVector 300000 346.53 ms/op 179.66 ms/op 1.93
phase0 afterProcessEpoch - 250000 vs - 7PWei 196.37 ms/op 185.86 ms/op 1.06
phase0 beforeProcessEpoch - 250000 vs - 7PWei 107.23 ms/op 71.710 ms/op 1.50
altair processEpoch - mainnet_e81889 622.53 ms/op 499.91 ms/op 1.25
mainnet_e81889 - altair beforeProcessEpoch 141.11 ms/op 150.81 ms/op 0.94
mainnet_e81889 - altair processJustificationAndFinalization 17.164 us/op 20.149 us/op 0.85
mainnet_e81889 - altair processInactivityUpdates 10.950 ms/op 10.591 ms/op 1.03
mainnet_e81889 - altair processRewardsAndPenalties 138.63 ms/op 93.734 ms/op 1.48
mainnet_e81889 - altair processRegistryUpdates 2.9640 us/op 3.1470 us/op 0.94
mainnet_e81889 - altair processSlashings 587.00 ns/op 617.00 ns/op 0.95
mainnet_e81889 - altair processEth1DataReset 634.00 ns/op 878.00 ns/op 0.72
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.1636 ms/op 2.2839 ms/op 0.95
mainnet_e81889 - altair processSlashingsReset 4.5280 us/op 5.7680 us/op 0.79
mainnet_e81889 - altair processRandaoMixesReset 4.1100 us/op 5.5880 us/op 0.74
mainnet_e81889 - altair processHistoricalRootsUpdate 712.00 ns/op 998.00 ns/op 0.71
mainnet_e81889 - altair processParticipationFlagUpdates 2.4350 us/op 2.9930 us/op 0.81
mainnet_e81889 - altair processSyncCommitteeUpdates 695.00 ns/op 852.00 ns/op 0.82
mainnet_e81889 - altair afterProcessEpoch 205.11 ms/op 197.60 ms/op 1.04
phase0 processEpoch - mainnet_e58758 551.30 ms/op 527.19 ms/op 1.05
mainnet_e58758 - phase0 beforeProcessEpoch 228.35 ms/op 224.36 ms/op 1.02
mainnet_e58758 - phase0 processJustificationAndFinalization 17.521 us/op 19.485 us/op 0.90
mainnet_e58758 - phase0 processRewardsAndPenalties 139.40 ms/op 137.02 ms/op 1.02
mainnet_e58758 - phase0 processRegistryUpdates 8.2370 us/op 9.7270 us/op 0.85
mainnet_e58758 - phase0 processSlashings 593.00 ns/op 766.00 ns/op 0.77
mainnet_e58758 - phase0 processEth1DataReset 604.00 ns/op 768.00 ns/op 0.79
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 3.5779 ms/op 2.2309 ms/op 1.60
mainnet_e58758 - phase0 processSlashingsReset 4.0270 us/op 4.7390 us/op 0.85
mainnet_e58758 - phase0 processRandaoMixesReset 4.3970 us/op 5.3350 us/op 0.82
mainnet_e58758 - phase0 processHistoricalRootsUpdate 747.00 ns/op 923.00 ns/op 0.81
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.8490 us/op 4.6900 us/op 0.82
mainnet_e58758 - phase0 afterProcessEpoch 168.71 ms/op 161.42 ms/op 1.05
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.0843 ms/op 2.5432 ms/op 0.82
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.3225 ms/op 3.0700 ms/op 0.76
altair processInactivityUpdates - 250000 normalcase 43.479 ms/op 41.288 ms/op 1.05
altair processInactivityUpdates - 250000 worstcase 43.396 ms/op 51.839 ms/op 0.84
phase0 processRegistryUpdates - 250000 normalcase 6.8030 us/op 7.7510 us/op 0.88
phase0 processRegistryUpdates - 250000 badcase_full_deposits 382.63 us/op 402.14 us/op 0.95
phase0 processRegistryUpdates - 250000 worstcase 0.5 221.53 ms/op 214.26 ms/op 1.03
altair processRewardsAndPenalties - 250000 normalcase 94.791 ms/op 125.85 ms/op 0.75
altair processRewardsAndPenalties - 250000 worstcase 126.65 ms/op 105.11 ms/op 1.20
phase0 getAttestationDeltas - 250000 normalcase 14.537 ms/op 12.422 ms/op 1.17
phase0 getAttestationDeltas - 250000 worstcase 14.984 ms/op 12.000 ms/op 1.25
phase0 processSlashings - 250000 worstcase 5.6309 ms/op 5.4598 ms/op 1.03
altair processSyncCommitteeUpdates - 250000 322.64 ms/op 279.76 ms/op 1.15
BeaconState.hashTreeRoot - No change 826.00 ns/op 466.00 ns/op 1.77
BeaconState.hashTreeRoot - 1 full validator 66.306 us/op 56.696 us/op 1.17
BeaconState.hashTreeRoot - 32 full validator 676.79 us/op 554.47 us/op 1.22
BeaconState.hashTreeRoot - 512 full validator 8.2300 ms/op 6.1555 ms/op 1.34
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 86.885 us/op 69.669 us/op 1.25
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.1566 ms/op 967.61 us/op 1.20
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 16.353 ms/op 12.915 ms/op 1.27
BeaconState.hashTreeRoot - 1 balances 65.511 us/op 53.646 us/op 1.22
BeaconState.hashTreeRoot - 32 balances 562.08 us/op 465.15 us/op 1.21
BeaconState.hashTreeRoot - 512 balances 5.9281 ms/op 4.4960 ms/op 1.32
BeaconState.hashTreeRoot - 250000 balances 106.40 ms/op 83.770 ms/op 1.27
aggregationBits - 2048 els - zipIndexesInBitList 46.953 us/op 32.444 us/op 1.45
regular array get 100000 times 61.847 us/op 67.393 us/op 0.92
wrappedArray get 100000 times 61.865 us/op 67.423 us/op 0.92
arrayWithProxy get 100000 times 30.477 ms/op 28.896 ms/op 1.05
ssz.Root.equals 610.00 ns/op 482.00 ns/op 1.27
byteArrayEquals 583.00 ns/op 483.00 ns/op 1.21
shuffle list - 16384 els 11.243 ms/op 11.177 ms/op 1.01
shuffle list - 250000 els 172.28 ms/op 168.36 ms/op 1.02
processSlot - 1 slots 14.242 us/op 11.690 us/op 1.22
processSlot - 32 slots 2.0855 ms/op 1.7476 ms/op 1.19
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 446.39 us/op 341.50 us/op 1.31
getCommitteeAssignments - req 1 vs - 250000 vc 5.5506 ms/op 5.2757 ms/op 1.05
getCommitteeAssignments - req 100 vs - 250000 vc 8.0813 ms/op 7.3248 ms/op 1.10
getCommitteeAssignments - req 1000 vs - 250000 vc 8.7032 ms/op 7.7733 ms/op 1.12
computeProposers - vc 250000 21.170 ms/op 16.998 ms/op 1.25
computeEpochShuffling - vc 250000 176.60 ms/op 170.16 ms/op 1.04
getNextSyncCommittee - vc 250000 321.69 ms/op 280.50 ms/op 1.15

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 8b75112 into unstable Jul 15, 2022
@wemeetagain wemeetagain deleted the tuyen/currentEpoch branch July 15, 2022 13:35
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.

None yet

2 participants