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: refactor DLLAttnetsService to AttnetsService #6605

Merged
merged 1 commit into from
Mar 28, 2024

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Mar 28, 2024

Motivation

Now the DLLAttnetsService is the only one attnet service we have so we should refactor to AttnetsService in preparation for an upcoming new attnet service

Description

A follow up of #6579 (review)

cc @nflaig

@twoeths twoeths requested a review from a team as a code owner March 28, 2024 02:38
Copy link

codecov bot commented Mar 28, 2024

Codecov Report

Merging #6605 (c65609e) into unstable (d8f6199) will not change coverage.
The diff coverage is 50.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6605   +/-   ##
=========================================
  Coverage     61.61%   61.61%           
=========================================
  Files           556      556           
  Lines         58561    58561           
  Branches       1859     1859           
=========================================
  Hits          36080    36080           
  Misses        22440    22440           
  Partials         41       41           

Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: ffe5973 Previous: d8f6199 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 617.68 us/op 811.22 us/op 0.76
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 56.441 us/op 81.948 us/op 0.69
BLS verify - blst-native 1.0905 ms/op 1.2273 ms/op 0.89
BLS verifyMultipleSignatures 3 - blst-native 2.3380 ms/op 2.5839 ms/op 0.90
BLS verifyMultipleSignatures 8 - blst-native 5.2177 ms/op 5.6521 ms/op 0.92
BLS verifyMultipleSignatures 32 - blst-native 19.165 ms/op 20.682 ms/op 0.93
BLS verifyMultipleSignatures 64 - blst-native 38.056 ms/op 40.731 ms/op 0.93
BLS verifyMultipleSignatures 128 - blst-native 75.209 ms/op 80.751 ms/op 0.93
BLS deserializing 10000 signatures 797.19 ms/op 862.89 ms/op 0.92
BLS deserializing 100000 signatures 8.7139 s/op 9.0868 s/op 0.96
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.1832 ms/op 1.2995 ms/op 0.91
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.3526 ms/op 1.4631 ms/op 0.92
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.8800 ms/op 2.8118 ms/op 1.02
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.1018 ms/op 4.4443 ms/op 0.70
BLS verifyMultipleSignatures - same message - 128 - blst-native 7.0525 ms/op 5.4411 ms/op 1.30
BLS aggregatePubkeys 32 - blst-native 25.405 us/op 24.980 us/op 1.02
BLS aggregatePubkeys 128 - blst-native 90.967 us/op 97.931 us/op 0.93
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 55.152 ms/op 58.389 ms/op 0.94
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 55.678 ms/op 55.232 ms/op 1.01
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 31.590 ms/op 36.052 ms/op 0.88
getSlashingsAndExits - default max 163.19 us/op 164.77 us/op 0.99
getSlashingsAndExits - 2k 302.73 us/op 404.17 us/op 0.75
proposeBlockBody type=full, size=empty 4.2338 ms/op 5.5706 ms/op 0.76
isKnown best case - 1 super set check 742.00 ns/op 285.00 ns/op 2.60
isKnown normal case - 2 super set checks 363.00 ns/op 283.00 ns/op 1.28
isKnown worse case - 16 super set checks 359.00 ns/op 286.00 ns/op 1.26
CheckpointStateCache - add get delete 5.6680 us/op 5.6710 us/op 1.00
validate api signedAggregateAndProof - struct 2.4535 ms/op 2.7168 ms/op 0.90
validate gossip signedAggregateAndProof - struct 2.4897 ms/op 2.7366 ms/op 0.91
validate gossip attestation - vc 640000 1.1616 ms/op 1.3325 ms/op 0.87
batch validate gossip attestation - vc 640000 - chunk 32 147.82 us/op 157.69 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 64 136.44 us/op 140.45 us/op 0.97
batch validate gossip attestation - vc 640000 - chunk 128 126.79 us/op 132.70 us/op 0.96
batch validate gossip attestation - vc 640000 - chunk 256 118.95 us/op 131.86 us/op 0.90
pickEth1Vote - no votes 893.27 us/op 1.2864 ms/op 0.69
pickEth1Vote - max votes 5.5688 ms/op 10.209 ms/op 0.55
pickEth1Vote - Eth1Data hashTreeRoot value x2048 11.663 ms/op 20.935 ms/op 0.56
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 14.268 ms/op 20.472 ms/op 0.70
pickEth1Vote - Eth1Data fastSerialize value x2048 432.33 us/op 601.27 us/op 0.72
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.1954 ms/op 4.1770 ms/op 0.77
bytes32 toHexString 464.00 ns/op 496.00 ns/op 0.94
bytes32 Buffer.toString(hex) 323.00 ns/op 293.00 ns/op 1.10
bytes32 Buffer.toString(hex) from Uint8Array 423.00 ns/op 424.00 ns/op 1.00
bytes32 Buffer.toString(hex) + 0x 317.00 ns/op 292.00 ns/op 1.09
Object access 1 prop 0.19400 ns/op 0.16100 ns/op 1.20
Map access 1 prop 0.18800 ns/op 0.14600 ns/op 1.29
Object get x1000 5.4490 ns/op 7.0640 ns/op 0.77
Map get x1000 0.82500 ns/op 0.76000 ns/op 1.09
Object set x1000 29.346 ns/op 51.422 ns/op 0.57
Map set x1000 19.837 ns/op 44.460 ns/op 0.45
Return object 10000 times 0.21970 ns/op 0.24540 ns/op 0.90
Throw Error 10000 times 2.6700 us/op 3.9369 us/op 0.68
fastMsgIdFn sha256 / 200 bytes 2.0360 us/op 3.3760 us/op 0.60
fastMsgIdFn h32 xxhash / 200 bytes 306.00 ns/op 295.00 ns/op 1.04
fastMsgIdFn h64 xxhash / 200 bytes 347.00 ns/op 347.00 ns/op 1.00
fastMsgIdFn sha256 / 1000 bytes 6.2830 us/op 11.060 us/op 0.57
fastMsgIdFn h32 xxhash / 1000 bytes 449.00 ns/op 409.00 ns/op 1.10
fastMsgIdFn h64 xxhash / 1000 bytes 444.00 ns/op 415.00 ns/op 1.07
fastMsgIdFn sha256 / 10000 bytes 53.770 us/op 100.96 us/op 0.53
fastMsgIdFn h32 xxhash / 10000 bytes 1.8480 us/op 1.8920 us/op 0.98
fastMsgIdFn h64 xxhash / 10000 bytes 1.2940 us/op 1.2790 us/op 1.01
send data - 1000 256B messages 13.221 ms/op 18.216 ms/op 0.73
send data - 1000 512B messages 14.718 ms/op 25.675 ms/op 0.57
send data - 1000 1024B messages 23.481 ms/op 40.376 ms/op 0.58
send data - 1000 1200B messages 29.558 ms/op 37.112 ms/op 0.80
send data - 1000 2048B messages 37.916 ms/op 48.827 ms/op 0.78
send data - 1000 4096B messages 34.212 ms/op 42.040 ms/op 0.81
send data - 1000 16384B messages 89.601 ms/op 121.97 ms/op 0.73
send data - 1000 65536B messages 443.28 ms/op 465.86 ms/op 0.95
enrSubnets - fastDeserialize 64 bits 1.0700 us/op 1.2460 us/op 0.86
enrSubnets - ssz BitVector 64 bits 448.00 ns/op 410.00 ns/op 1.09
enrSubnets - fastDeserialize 4 bits 215.00 ns/op 173.00 ns/op 1.24
enrSubnets - ssz BitVector 4 bits 444.00 ns/op 417.00 ns/op 1.06
prioritizePeers score -10:0 att 32-0.1 sync 2-0 67.668 us/op 95.851 us/op 0.71
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 100.41 us/op 118.66 us/op 0.85
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 137.31 us/op 155.25 us/op 0.88
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 198.01 us/op 274.58 us/op 0.72
prioritizePeers score 0:0 att 64-1 sync 4-1 213.70 us/op 324.18 us/op 0.66
array of 16000 items push then shift 1.3349 us/op 1.5360 us/op 0.87
LinkedList of 16000 items push then shift 6.1320 ns/op 8.6190 ns/op 0.71
array of 16000 items push then pop 100.88 ns/op 76.946 ns/op 1.31
LinkedList of 16000 items push then pop 5.7830 ns/op 8.4760 ns/op 0.68
array of 24000 items push then shift 1.9438 us/op 2.3362 us/op 0.83
LinkedList of 24000 items push then shift 6.0970 ns/op 8.5890 ns/op 0.71
array of 24000 items push then pop 133.48 ns/op 97.242 ns/op 1.37
LinkedList of 24000 items push then pop 5.7370 ns/op 8.5410 ns/op 0.67
intersect bitArray bitLen 8 4.8420 ns/op 5.5930 ns/op 0.87
intersect array and set length 8 49.262 ns/op 61.105 ns/op 0.81
intersect bitArray bitLen 128 29.436 ns/op 34.600 ns/op 0.85
intersect array and set length 128 693.71 ns/op 841.66 ns/op 0.82
bitArray.getTrueBitIndexes() bitLen 128 1.4270 us/op 1.3890 us/op 1.03
bitArray.getTrueBitIndexes() bitLen 248 2.3380 us/op 2.3320 us/op 1.00
bitArray.getTrueBitIndexes() bitLen 512 4.2870 us/op 4.5740 us/op 0.94
Buffer.concat 32 items 943.00 ns/op 959.00 ns/op 0.98
Uint8Array.set 32 items 2.1560 us/op 1.9210 us/op 1.12
Set add up to 64 items then delete first 1.8193 us/op 4.1984 us/op 0.43
OrderedSet add up to 64 items then delete first 2.5955 us/op 5.2820 us/op 0.49
Set add up to 64 items then delete last 2.3288 us/op 4.4785 us/op 0.52
OrderedSet add up to 64 items then delete last 3.1388 us/op 5.5667 us/op 0.56
Set add up to 64 items then delete middle 2.1036 us/op 4.4396 us/op 0.47
OrderedSet add up to 64 items then delete middle 4.3246 us/op 6.8115 us/op 0.63
Set add up to 128 items then delete first 4.1710 us/op 9.0395 us/op 0.46
OrderedSet add up to 128 items then delete first 6.4852 us/op 11.997 us/op 0.54
Set add up to 128 items then delete last 3.9242 us/op 9.0471 us/op 0.43
OrderedSet add up to 128 items then delete last 5.9448 us/op 11.372 us/op 0.52
Set add up to 128 items then delete middle 3.9709 us/op 8.8481 us/op 0.45
OrderedSet add up to 128 items then delete middle 11.234 us/op 16.484 us/op 0.68
Set add up to 256 items then delete first 8.2232 us/op 18.365 us/op 0.45
OrderedSet add up to 256 items then delete first 12.884 us/op 24.388 us/op 0.53
Set add up to 256 items then delete last 7.8348 us/op 17.628 us/op 0.44
OrderedSet add up to 256 items then delete last 11.820 us/op 22.296 us/op 0.53
Set add up to 256 items then delete middle 7.7031 us/op 17.701 us/op 0.44
OrderedSet add up to 256 items then delete middle 31.921 us/op 43.827 us/op 0.73
transfer serialized Status (84 B) 1.4600 us/op 1.6640 us/op 0.88
copy serialized Status (84 B) 1.2040 us/op 1.2880 us/op 0.93
transfer serialized SignedVoluntaryExit (112 B) 1.7000 us/op 1.8170 us/op 0.94
copy serialized SignedVoluntaryExit (112 B) 1.2370 us/op 1.3660 us/op 0.91
transfer serialized ProposerSlashing (416 B) 2.1100 us/op 2.4350 us/op 0.87
copy serialized ProposerSlashing (416 B) 1.9350 us/op 2.0400 us/op 0.95
transfer serialized Attestation (485 B) 2.0220 us/op 2.8760 us/op 0.70
copy serialized Attestation (485 B) 1.7060 us/op 2.4390 us/op 0.70
transfer serialized AttesterSlashing (33232 B) 1.9080 us/op 2.8390 us/op 0.67
copy serialized AttesterSlashing (33232 B) 3.7830 us/op 5.8540 us/op 0.65
transfer serialized Small SignedBeaconBlock (128000 B) 1.8850 us/op 3.2530 us/op 0.58
copy serialized Small SignedBeaconBlock (128000 B) 8.8490 us/op 15.152 us/op 0.58
transfer serialized Avg SignedBeaconBlock (200000 B) 1.9890 us/op 3.7970 us/op 0.52
copy serialized Avg SignedBeaconBlock (200000 B) 13.064 us/op 21.134 us/op 0.62
transfer serialized BlobsSidecar (524380 B) 2.5790 us/op 3.3600 us/op 0.77
copy serialized BlobsSidecar (524380 B) 72.687 us/op 85.219 us/op 0.85
transfer serialized Big SignedBeaconBlock (1000000 B) 2.6630 us/op 3.1120 us/op 0.86
copy serialized Big SignedBeaconBlock (1000000 B) 258.16 us/op 167.36 us/op 1.54
pass gossip attestations to forkchoice per slot 2.8403 ms/op 4.2245 ms/op 0.67
forkChoice updateHead vc 100000 bc 64 eq 0 485.06 us/op 674.81 us/op 0.72
forkChoice updateHead vc 600000 bc 64 eq 0 2.8419 ms/op 4.2988 ms/op 0.66
forkChoice updateHead vc 1000000 bc 64 eq 0 4.4290 ms/op 6.9365 ms/op 0.64
forkChoice updateHead vc 600000 bc 320 eq 0 2.6034 ms/op 4.1145 ms/op 0.63
forkChoice updateHead vc 600000 bc 1200 eq 0 2.7176 ms/op 4.1654 ms/op 0.65
forkChoice updateHead vc 600000 bc 7200 eq 0 3.8916 ms/op 5.1387 ms/op 0.76
forkChoice updateHead vc 600000 bc 64 eq 1000 9.9814 ms/op 10.933 ms/op 0.91
forkChoice updateHead vc 600000 bc 64 eq 10000 9.6852 ms/op 11.746 ms/op 0.82
forkChoice updateHead vc 600000 bc 64 eq 300000 12.045 ms/op 16.015 ms/op 0.75
computeDeltas 500000 validators 300 proto nodes 3.0531 ms/op 6.4446 ms/op 0.47
computeDeltas 500000 validators 1200 proto nodes 3.0580 ms/op 6.3199 ms/op 0.48
computeDeltas 500000 validators 7200 proto nodes 3.0213 ms/op 6.3477 ms/op 0.48
computeDeltas 750000 validators 300 proto nodes 4.5877 ms/op 9.2909 ms/op 0.49
computeDeltas 750000 validators 1200 proto nodes 4.4731 ms/op 9.6025 ms/op 0.47
computeDeltas 750000 validators 7200 proto nodes 4.6025 ms/op 9.3967 ms/op 0.49
computeDeltas 1400000 validators 300 proto nodes 9.0341 ms/op 17.972 ms/op 0.50
computeDeltas 1400000 validators 1200 proto nodes 8.7107 ms/op 17.984 ms/op 0.48
computeDeltas 1400000 validators 7200 proto nodes 8.9013 ms/op 17.870 ms/op 0.50
computeDeltas 2100000 validators 300 proto nodes 12.937 ms/op 27.003 ms/op 0.48
computeDeltas 2100000 validators 1200 proto nodes 12.791 ms/op 27.454 ms/op 0.47
computeDeltas 2100000 validators 7200 proto nodes 13.010 ms/op 27.384 ms/op 0.48
altair processAttestation - 250000 vs - 7PWei normalcase 1.6976 ms/op 2.1976 ms/op 0.77
altair processAttestation - 250000 vs - 7PWei worstcase 2.2515 ms/op 3.1909 ms/op 0.71
altair processAttestation - setStatus - 1/6 committees join 77.589 us/op 172.60 us/op 0.45
altair processAttestation - setStatus - 1/3 committees join 152.37 us/op 341.96 us/op 0.45
altair processAttestation - setStatus - 1/2 committees join 217.47 us/op 465.00 us/op 0.47
altair processAttestation - setStatus - 2/3 committees join 283.75 us/op 580.96 us/op 0.49
altair processAttestation - setStatus - 4/5 committees join 403.41 us/op 780.98 us/op 0.52
altair processAttestation - setStatus - 100% committees join 492.17 us/op 930.80 us/op 0.53
altair processBlock - 250000 vs - 7PWei normalcase 5.4467 ms/op 7.9060 ms/op 0.69
altair processBlock - 250000 vs - 7PWei normalcase hashState 24.994 ms/op 35.096 ms/op 0.71
altair processBlock - 250000 vs - 7PWei worstcase 33.341 ms/op 39.419 ms/op 0.85
altair processBlock - 250000 vs - 7PWei worstcase hashState 76.996 ms/op 96.217 ms/op 0.80
phase0 processBlock - 250000 vs - 7PWei normalcase 2.0214 ms/op 2.6478 ms/op 0.76
phase0 processBlock - 250000 vs - 7PWei worstcase 25.061 ms/op 27.325 ms/op 0.92
altair processEth1Data - 250000 vs - 7PWei normalcase 277.09 us/op 468.79 us/op 0.59
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 8.7520 us/op 11.728 us/op 0.75
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 34.013 us/op 45.500 us/op 0.75
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 8.9250 us/op 20.098 us/op 0.44
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.9880 us/op 7.5890 us/op 0.92
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 142.80 us/op 196.18 us/op 0.73
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 779.26 us/op 1.2735 ms/op 0.61
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.0808 ms/op 1.5903 ms/op 0.68
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 879.45 us/op 1.5371 ms/op 0.57
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.0499 ms/op 3.3935 ms/op 0.60
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.5152 ms/op 2.3564 ms/op 0.64
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.4684 ms/op 4.8006 ms/op 0.72
Tree 40 250000 create 256.12 ms/op 365.18 ms/op 0.70
Tree 40 250000 get(125000) 113.15 ns/op 194.09 ns/op 0.58
Tree 40 250000 set(125000) 757.49 ns/op 1.0441 us/op 0.73
Tree 40 250000 toArray() 9.7692 ms/op 18.970 ms/op 0.51
Tree 40 250000 iterate all - toArray() + loop 10.654 ms/op 20.448 ms/op 0.52
Tree 40 250000 iterate all - get(i) 39.746 ms/op 68.494 ms/op 0.58
MutableVector 250000 create 8.6017 ms/op 16.040 ms/op 0.54
MutableVector 250000 get(125000) 5.6180 ns/op 6.4790 ns/op 0.87
MutableVector 250000 set(125000) 217.51 ns/op 255.41 ns/op 0.85
MutableVector 250000 toArray() 2.5400 ms/op 3.3976 ms/op 0.75
MutableVector 250000 iterate all - toArray() + loop 2.5978 ms/op 3.3451 ms/op 0.78
MutableVector 250000 iterate all - get(i) 1.2878 ms/op 1.5206 ms/op 0.85
Array 250000 create 2.6966 ms/op 2.9112 ms/op 0.93
Array 250000 clone - spread 1.0483 ms/op 1.2141 ms/op 0.86
Array 250000 get(125000) 0.95700 ns/op 1.0170 ns/op 0.94
Array 250000 set(125000) 1.1500 ns/op 4.0710 ns/op 0.28
Array 250000 iterate all - loop 147.10 us/op 165.04 us/op 0.89
effectiveBalanceIncrements clone Uint8Array 300000 18.676 us/op 26.413 us/op 0.71
effectiveBalanceIncrements clone MutableVector 300000 362.00 ns/op 358.00 ns/op 1.01
effectiveBalanceIncrements rw all Uint8Array 300000 176.65 us/op 204.90 us/op 0.86
effectiveBalanceIncrements rw all MutableVector 300000 62.143 ms/op 81.506 ms/op 0.76
phase0 afterProcessEpoch - 250000 vs - 7PWei 73.402 ms/op 112.74 ms/op 0.65
phase0 beforeProcessEpoch - 250000 vs - 7PWei 44.481 ms/op 51.188 ms/op 0.87
altair processEpoch - mainnet_e81889 411.78 ms/op 472.08 ms/op 0.87
mainnet_e81889 - altair beforeProcessEpoch 68.250 ms/op 81.676 ms/op 0.84
mainnet_e81889 - altair processJustificationAndFinalization 5.8020 us/op 14.737 us/op 0.39
mainnet_e81889 - altair processInactivityUpdates 3.9957 ms/op 5.7055 ms/op 0.70
mainnet_e81889 - altair processRewardsAndPenalties 62.997 ms/op 54.257 ms/op 1.16
mainnet_e81889 - altair processRegistryUpdates 1.5540 us/op 2.4020 us/op 0.65
mainnet_e81889 - altair processSlashings 588.00 ns/op 495.00 ns/op 1.19
mainnet_e81889 - altair processEth1DataReset 555.00 ns/op 525.00 ns/op 1.06
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.7169 ms/op 1.3582 ms/op 1.26
mainnet_e81889 - altair processSlashingsReset 2.4590 us/op 3.5120 us/op 0.70
mainnet_e81889 - altair processRandaoMixesReset 2.8110 us/op 5.2570 us/op 0.53
mainnet_e81889 - altair processHistoricalRootsUpdate 644.00 ns/op 939.00 ns/op 0.69
mainnet_e81889 - altair processParticipationFlagUpdates 1.2730 us/op 1.4440 us/op 0.88
mainnet_e81889 - altair processSyncCommitteeUpdates 553.00 ns/op 702.00 ns/op 0.79
mainnet_e81889 - altair afterProcessEpoch 80.403 ms/op 116.37 ms/op 0.69
capella processEpoch - mainnet_e217614 1.6598 s/op 1.9725 s/op 0.84
mainnet_e217614 - capella beforeProcessEpoch 384.79 ms/op 444.18 ms/op 0.87
mainnet_e217614 - capella processJustificationAndFinalization 7.3350 us/op 13.758 us/op 0.53
mainnet_e217614 - capella processInactivityUpdates 14.419 ms/op 21.907 ms/op 0.66
mainnet_e217614 - capella processRewardsAndPenalties 452.75 ms/op 518.53 ms/op 0.87
mainnet_e217614 - capella processRegistryUpdates 16.794 us/op 21.783 us/op 0.77
mainnet_e217614 - capella processSlashings 628.00 ns/op 592.00 ns/op 1.06
mainnet_e217614 - capella processEth1DataReset 654.00 ns/op 393.00 ns/op 1.66
mainnet_e217614 - capella processEffectiveBalanceUpdates 3.2211 ms/op 4.3071 ms/op 0.75
mainnet_e217614 - capella processSlashingsReset 2.5800 us/op 3.2520 us/op 0.79
mainnet_e217614 - capella processRandaoMixesReset 3.2820 us/op 4.3630 us/op 0.75
mainnet_e217614 - capella processHistoricalRootsUpdate 677.00 ns/op 501.00 ns/op 1.35
mainnet_e217614 - capella processParticipationFlagUpdates 1.4080 us/op 1.3040 us/op 1.08
mainnet_e217614 - capella afterProcessEpoch 213.70 ms/op 303.19 ms/op 0.70
phase0 processEpoch - mainnet_e58758 394.27 ms/op 419.99 ms/op 0.94
mainnet_e58758 - phase0 beforeProcessEpoch 102.03 ms/op 110.91 ms/op 0.92
mainnet_e58758 - phase0 processJustificationAndFinalization 8.4630 us/op 14.897 us/op 0.57
mainnet_e58758 - phase0 processRewardsAndPenalties 55.479 ms/op 60.086 ms/op 0.92
mainnet_e58758 - phase0 processRegistryUpdates 7.9850 us/op 10.153 us/op 0.79
mainnet_e58758 - phase0 processSlashings 621.00 ns/op 590.00 ns/op 1.05
mainnet_e58758 - phase0 processEth1DataReset 512.00 ns/op 399.00 ns/op 1.28
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3579 ms/op 1.0097 ms/op 1.34
mainnet_e58758 - phase0 processSlashingsReset 1.8300 us/op 2.8650 us/op 0.64
mainnet_e58758 - phase0 processRandaoMixesReset 2.5020 us/op 4.1610 us/op 0.60
mainnet_e58758 - phase0 processHistoricalRootsUpdate 649.00 ns/op 402.00 ns/op 1.61
mainnet_e58758 - phase0 processParticipationRecordUpdates 2.7760 us/op 4.5400 us/op 0.61
mainnet_e58758 - phase0 afterProcessEpoch 67.482 ms/op 99.092 ms/op 0.68
phase0 processEffectiveBalanceUpdates - 250000 normalcase 957.43 us/op 1.3477 ms/op 0.71
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5040 ms/op 1.4578 ms/op 1.03
altair processInactivityUpdates - 250000 normalcase 24.640 ms/op 29.703 ms/op 0.83
altair processInactivityUpdates - 250000 worstcase 24.799 ms/op 23.569 ms/op 1.05
phase0 processRegistryUpdates - 250000 normalcase 7.2100 us/op 8.6770 us/op 0.83
phase0 processRegistryUpdates - 250000 badcase_full_deposits 405.88 us/op 369.26 us/op 1.10
phase0 processRegistryUpdates - 250000 worstcase 0.5 130.24 ms/op 132.10 ms/op 0.99
altair processRewardsAndPenalties - 250000 normalcase 68.611 ms/op 52.432 ms/op 1.31
altair processRewardsAndPenalties - 250000 worstcase 73.395 ms/op 67.536 ms/op 1.09
phase0 getAttestationDeltas - 250000 normalcase 5.7486 ms/op 9.3731 ms/op 0.61
phase0 getAttestationDeltas - 250000 worstcase 5.6408 ms/op 9.1452 ms/op 0.62
phase0 processSlashings - 250000 worstcase 77.003 us/op 86.158 us/op 0.89
altair processSyncCommitteeUpdates - 250000 105.59 ms/op 151.19 ms/op 0.70
BeaconState.hashTreeRoot - No change 434.00 ns/op 374.00 ns/op 1.16
BeaconState.hashTreeRoot - 1 full validator 117.44 us/op 111.43 us/op 1.05
BeaconState.hashTreeRoot - 32 full validator 1.4513 ms/op 1.1576 ms/op 1.25
BeaconState.hashTreeRoot - 512 full validator 13.699 ms/op 17.593 ms/op 0.78
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 164.02 us/op 199.46 us/op 0.82
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.9466 ms/op 2.5816 ms/op 0.75
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 24.611 ms/op 34.751 ms/op 0.71
BeaconState.hashTreeRoot - 1 balances 138.31 us/op 130.20 us/op 1.06
BeaconState.hashTreeRoot - 32 balances 1.4351 ms/op 1.2089 ms/op 1.19
BeaconState.hashTreeRoot - 512 balances 12.023 ms/op 9.4796 ms/op 1.27
BeaconState.hashTreeRoot - 250000 balances 188.10 ms/op 226.20 ms/op 0.83
aggregationBits - 2048 els - zipIndexesInBitList 18.934 us/op 26.866 us/op 0.70
byteArrayEquals 32 64.513 ns/op 73.072 ns/op 0.88
Buffer.compare 32 38.153 ns/op 54.391 ns/op 0.70
byteArrayEquals 1024 1.7520 us/op 1.9936 us/op 0.88
Buffer.compare 1024 47.186 ns/op 68.197 ns/op 0.69
byteArrayEquals 16384 27.913 us/op 31.746 us/op 0.88
Buffer.compare 16384 227.11 ns/op 274.96 ns/op 0.83
byteArrayEquals 123687377 207.74 ms/op 245.05 ms/op 0.85
Buffer.compare 123687377 3.5809 ms/op 6.3258 ms/op 0.57
byteArrayEquals 32 - diff last byte 61.287 ns/op 71.152 ns/op 0.86
Buffer.compare 32 - diff last byte 39.007 ns/op 55.657 ns/op 0.70
byteArrayEquals 1024 - diff last byte 1.7421 us/op 1.9506 us/op 0.89
Buffer.compare 1024 - diff last byte 46.923 ns/op 68.782 ns/op 0.68
byteArrayEquals 16384 - diff last byte 27.453 us/op 32.092 us/op 0.86
Buffer.compare 16384 - diff last byte 227.92 ns/op 250.24 ns/op 0.91
byteArrayEquals 123687377 - diff last byte 205.63 ms/op 242.07 ms/op 0.85
Buffer.compare 123687377 - diff last byte 5.3792 ms/op 6.2345 ms/op 0.86
byteArrayEquals 32 - random bytes 4.2700 ns/op 5.3900 ns/op 0.79
Buffer.compare 32 - random bytes 35.283 ns/op 60.779 ns/op 0.58
byteArrayEquals 1024 - random bytes 4.1010 ns/op 5.1920 ns/op 0.79
Buffer.compare 1024 - random bytes 33.493 ns/op 60.365 ns/op 0.55
byteArrayEquals 16384 - random bytes 4.0770 ns/op 5.1870 ns/op 0.79
Buffer.compare 16384 - random bytes 33.744 ns/op 60.145 ns/op 0.56
byteArrayEquals 123687377 - random bytes 7.2200 ns/op 8.3600 ns/op 0.86
Buffer.compare 123687377 - random bytes 36.480 ns/op 63.760 ns/op 0.57
regular array get 100000 times 37.514 us/op 44.001 us/op 0.85
wrappedArray get 100000 times 37.487 us/op 44.107 us/op 0.85
arrayWithProxy get 100000 times 10.224 ms/op 14.385 ms/op 0.71
ssz.Root.equals 54.291 ns/op 52.980 ns/op 1.02
byteArrayEquals 50.047 ns/op 51.786 ns/op 0.97
Buffer.compare 8.4460 ns/op 10.631 ns/op 0.79
shuffle list - 16384 els 5.3320 ms/op 8.5192 ms/op 0.63
shuffle list - 250000 els 78.110 ms/op 124.89 ms/op 0.63
processSlot - 1 slots 17.368 us/op 15.847 us/op 1.10
processSlot - 32 slots 3.2753 ms/op 3.5730 ms/op 0.92
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 55.023 ms/op 55.979 ms/op 0.98
getCommitteeAssignments - req 1 vs - 250000 vc 2.2723 ms/op 2.5953 ms/op 0.88
getCommitteeAssignments - req 100 vs - 250000 vc 3.3645 ms/op 3.7425 ms/op 0.90
getCommitteeAssignments - req 1000 vs - 250000 vc 3.6230 ms/op 4.0482 ms/op 0.89
findModifiedValidators - 10000 modified validators 272.13 ms/op 349.50 ms/op 0.78
findModifiedValidators - 1000 modified validators 150.56 ms/op 199.85 ms/op 0.75
findModifiedValidators - 100 modified validators 139.88 ms/op 209.66 ms/op 0.67
findModifiedValidators - 10 modified validators 145.99 ms/op 193.31 ms/op 0.76
findModifiedValidators - 1 modified validators 145.79 ms/op 182.40 ms/op 0.80
findModifiedValidators - no difference 148.13 ms/op 210.84 ms/op 0.70
compare ViewDUs 3.9119 s/op 4.4907 s/op 0.87
compare each validator Uint8Array 1.5657 s/op 1.7689 s/op 0.89
compare ViewDU to Uint8Array 870.14 ms/op 1.3878 s/op 0.63
migrate state 1000000 validators, 24 modified, 0 new 587.87 ms/op 835.77 ms/op 0.70
migrate state 1000000 validators, 1700 modified, 1000 new 971.75 ms/op 1.0644 s/op 0.91
migrate state 1000000 validators, 3400 modified, 2000 new 1.1864 s/op 1.2675 s/op 0.94
migrate state 1500000 validators, 24 modified, 0 new 719.57 ms/op 762.38 ms/op 0.94
migrate state 1500000 validators, 1700 modified, 1000 new 907.00 ms/op 1.0588 s/op 0.86
migrate state 1500000 validators, 3400 modified, 2000 new 1.1832 s/op 1.2865 s/op 0.92
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.3700 ns/op 4.0800 ns/op 1.07
state getBlockRootAtSlot - 250000 vs - 7PWei 581.49 ns/op 899.96 ns/op 0.65
computeProposers - vc 250000 6.7829 ms/op 9.5607 ms/op 0.71
computeEpochShuffling - vc 250000 85.489 ms/op 123.80 ms/op 0.69
getNextSyncCommittee - vc 250000 105.05 ms/op 158.51 ms/op 0.66
computeSigningRoot for AttestationData 23.702 us/op 28.337 us/op 0.84
hash AttestationData serialized data then Buffer.toString(base64) 1.2282 us/op 2.2718 us/op 0.54
toHexString serialized data 852.38 ns/op 1.0465 us/op 0.81
Buffer.toString(base64) 161.68 ns/op 225.34 ns/op 0.72

by benchmarkbot/action

@twoeths twoeths merged commit ecc8f8b into unstable Mar 28, 2024
15 of 20 checks passed
@twoeths twoeths deleted the tuyen/refactor_attnet_service branch March 28, 2024 08:20
@wemeetagain
Copy link
Member

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

3 participants