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: bump @chainsafe/pubkey-index-map #7485

Open
wants to merge 1 commit into
base: unstable
Choose a base branch
from

Conversation

wemeetagain
Copy link
Member

Description

  • new version of pubkey index map has identical code, only differences are its now ESM, has support for musl

@wemeetagain wemeetagain requested a review from a team as a code owner February 20, 2025 22:00
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: fb27763 Previous: 929d0ea Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 961.78 us/op 1.1683 ms/op 0.82
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 36.757 us/op 42.122 us/op 0.87
BLS verify - blst 980.87 us/op 928.91 us/op 1.06
BLS verifyMultipleSignatures 3 - blst 1.3785 ms/op 1.4570 ms/op 0.95
BLS verifyMultipleSignatures 8 - blst 1.6853 ms/op 2.5403 ms/op 0.66
BLS verifyMultipleSignatures 32 - blst 5.6701 ms/op 6.5375 ms/op 0.87
BLS verifyMultipleSignatures 64 - blst 10.472 ms/op 12.053 ms/op 0.87
BLS verifyMultipleSignatures 128 - blst 19.752 ms/op 20.437 ms/op 0.97
BLS deserializing 10000 signatures 713.40 ms/op 743.52 ms/op 0.96
BLS deserializing 100000 signatures 7.0270 s/op 7.5320 s/op 0.93
BLS verifyMultipleSignatures - same message - 3 - blst 1.1636 ms/op 986.00 us/op 1.18
BLS verifyMultipleSignatures - same message - 8 - blst 1.1199 ms/op 1.2675 ms/op 0.88
BLS verifyMultipleSignatures - same message - 32 - blst 1.9753 ms/op 1.8377 ms/op 1.07
BLS verifyMultipleSignatures - same message - 64 - blst 3.0672 ms/op 2.9286 ms/op 1.05
BLS verifyMultipleSignatures - same message - 128 - blst 4.8810 ms/op 4.6536 ms/op 1.05
BLS aggregatePubkeys 32 - blst 22.453 us/op 20.513 us/op 1.09
BLS aggregatePubkeys 128 - blst 78.408 us/op 74.751 us/op 1.05
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 91.328 ms/op 79.952 ms/op 1.14
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 48.908 ms/op 69.579 ms/op 0.70
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 36.406 ms/op 47.603 ms/op 0.76
getSlashingsAndExits - default max 79.932 us/op 86.405 us/op 0.93
getSlashingsAndExits - 2k 366.20 us/op 481.01 us/op 0.76
proposeBlockBody type=full, size=empty 4.8398 ms/op 7.7456 ms/op 0.62
isKnown best case - 1 super set check 204.00 ns/op 207.00 ns/op 0.99
isKnown normal case - 2 super set checks 195.00 ns/op 203.00 ns/op 0.96
isKnown worse case - 16 super set checks 195.00 ns/op 209.00 ns/op 0.93
InMemoryCheckpointStateCache - add get delete 2.4080 us/op 2.8690 us/op 0.84
validate api signedAggregateAndProof - struct 1.3429 ms/op 1.4904 ms/op 0.90
validate gossip signedAggregateAndProof - struct 1.4371 ms/op 1.5488 ms/op 0.93
batch validate gossip attestation - vc 640000 - chunk 32 121.57 us/op 137.23 us/op 0.89
batch validate gossip attestation - vc 640000 - chunk 64 117.25 us/op 117.85 us/op 0.99
batch validate gossip attestation - vc 640000 - chunk 128 108.37 us/op 116.55 us/op 0.93
batch validate gossip attestation - vc 640000 - chunk 256 106.46 us/op 120.61 us/op 0.88
pickEth1Vote - no votes 988.39 us/op 1.0395 ms/op 0.95
pickEth1Vote - max votes 6.1003 ms/op 9.2842 ms/op 0.66
pickEth1Vote - Eth1Data hashTreeRoot value x2048 13.982 ms/op 19.020 ms/op 0.74
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 21.001 ms/op 31.029 ms/op 0.68
pickEth1Vote - Eth1Data fastSerialize value x2048 408.01 us/op 427.48 us/op 0.95
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.8399 ms/op 4.4100 ms/op 0.64
bytes32 toHexString 373.00 ns/op 364.00 ns/op 1.02
bytes32 Buffer.toString(hex) 227.00 ns/op 238.00 ns/op 0.95
bytes32 Buffer.toString(hex) from Uint8Array 329.00 ns/op 340.00 ns/op 0.97
bytes32 Buffer.toString(hex) + 0x 228.00 ns/op 254.00 ns/op 0.90
Object access 1 prop 0.11600 ns/op 0.11800 ns/op 0.98
Map access 1 prop 0.11800 ns/op 0.11600 ns/op 1.02
Object get x1000 5.9550 ns/op 5.7200 ns/op 1.04
Map get x1000 6.4070 ns/op 6.4030 ns/op 1.00
Object set x1000 29.858 ns/op 32.864 ns/op 0.91
Map set x1000 21.672 ns/op 22.183 ns/op 0.98
Return object 10000 times 0.28690 ns/op 0.29460 ns/op 0.97
Throw Error 10000 times 4.5508 us/op 4.4859 us/op 1.01
toHex 145.63 ns/op 133.74 ns/op 1.09
Buffer.from 132.60 ns/op 131.28 ns/op 1.01
shared Buffer 79.379 ns/op 91.011 ns/op 0.87
fastMsgIdFn sha256 / 200 bytes 2.1610 us/op 2.3490 us/op 0.92
fastMsgIdFn h32 xxhash / 200 bytes 198.00 ns/op 210.00 ns/op 0.94
fastMsgIdFn h64 xxhash / 200 bytes 261.00 ns/op 274.00 ns/op 0.95
fastMsgIdFn sha256 / 1000 bytes 7.2490 us/op 7.7620 us/op 0.93
fastMsgIdFn h32 xxhash / 1000 bytes 332.00 ns/op 340.00 ns/op 0.98
fastMsgIdFn h64 xxhash / 1000 bytes 335.00 ns/op 347.00 ns/op 0.97
fastMsgIdFn sha256 / 10000 bytes 63.614 us/op 64.945 us/op 0.98
fastMsgIdFn h32 xxhash / 10000 bytes 1.7840 us/op 1.8580 us/op 0.96
fastMsgIdFn h64 xxhash / 10000 bytes 1.1800 us/op 1.2500 us/op 0.94
send data - 1000 256B messages 15.227 ms/op 16.064 ms/op 0.95
send data - 1000 512B messages 18.709 ms/op 23.170 ms/op 0.81
send data - 1000 1024B messages 26.271 ms/op 32.234 ms/op 0.81
send data - 1000 1200B messages 21.720 ms/op 23.765 ms/op 0.91
send data - 1000 2048B messages 25.697 ms/op 29.717 ms/op 0.86
send data - 1000 4096B messages 28.679 ms/op 30.138 ms/op 0.95
send data - 1000 16384B messages 62.890 ms/op 87.318 ms/op 0.72
send data - 1000 65536B messages 232.13 ms/op 281.74 ms/op 0.82
enrSubnets - fastDeserialize 64 bits 1.6810 us/op 951.00 ns/op 1.77
enrSubnets - ssz BitVector 64 bits 311.00 ns/op 329.00 ns/op 0.95
enrSubnets - fastDeserialize 4 bits 122.00 ns/op 131.00 ns/op 0.93
enrSubnets - ssz BitVector 4 bits 314.00 ns/op 330.00 ns/op 0.95
prioritizePeers score -10:0 att 32-0.1 sync 2-0 116.76 us/op 129.63 us/op 0.90
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 138.07 us/op 159.81 us/op 0.86
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 198.39 us/op 227.44 us/op 0.87
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 377.27 us/op 413.71 us/op 0.91
prioritizePeers score 0:0 att 64-1 sync 4-1 454.22 us/op 555.83 us/op 0.82
array of 16000 items push then shift 1.5972 us/op 1.6695 us/op 0.96
LinkedList of 16000 items push then shift 6.9690 ns/op 9.1250 ns/op 0.76
array of 16000 items push then pop 75.021 ns/op 96.828 ns/op 0.77
LinkedList of 16000 items push then pop 6.8730 ns/op 8.5640 ns/op 0.80
array of 24000 items push then shift 2.3501 us/op 2.4310 us/op 0.97
LinkedList of 24000 items push then shift 7.0810 ns/op 9.4760 ns/op 0.75
array of 24000 items push then pop 103.40 ns/op 131.44 ns/op 0.79
LinkedList of 24000 items push then pop 6.8960 ns/op 8.4640 ns/op 0.81
intersect bitArray bitLen 8 6.1610 ns/op 6.4690 ns/op 0.95
intersect array and set length 8 37.454 ns/op 41.439 ns/op 0.90
intersect bitArray bitLen 128 28.827 ns/op 30.186 ns/op 0.95
intersect array and set length 128 604.21 ns/op 635.86 ns/op 0.95
bitArray.getTrueBitIndexes() bitLen 128 1.0070 us/op 1.1270 us/op 0.89
bitArray.getTrueBitIndexes() bitLen 248 1.7660 us/op 2.0240 us/op 0.87
bitArray.getTrueBitIndexes() bitLen 512 3.5990 us/op 4.3440 us/op 0.83
Buffer.concat 32 items 586.00 ns/op 632.00 ns/op 0.93
Uint8Array.set 32 items 952.00 ns/op 1.9820 us/op 0.48
Buffer.copy 1.9650 us/op 3.0910 us/op 0.64
Uint8Array.set - with subarray 1.5580 us/op 3.1960 us/op 0.49
Uint8Array.set - without subarray 894.00 ns/op 1.9380 us/op 0.46
getUint32 - dataview 186.00 ns/op 207.00 ns/op 0.90
getUint32 - manual 113.00 ns/op 122.00 ns/op 0.93
Set add up to 64 items then delete first 2.1415 us/op 2.9559 us/op 0.72
OrderedSet add up to 64 items then delete first 3.2205 us/op 4.5623 us/op 0.71
Set add up to 64 items then delete last 2.4079 us/op 3.3784 us/op 0.71
OrderedSet add up to 64 items then delete last 3.4799 us/op 5.0571 us/op 0.69
Set add up to 64 items then delete middle 2.4201 us/op 2.4019 us/op 1.01
OrderedSet add up to 64 items then delete middle 5.3618 us/op 6.8412 us/op 0.78
Set add up to 128 items then delete first 4.9150 us/op 6.8759 us/op 0.71
OrderedSet add up to 128 items then delete first 8.2223 us/op 11.287 us/op 0.73
Set add up to 128 items then delete last 4.7987 us/op 6.7332 us/op 0.71
OrderedSet add up to 128 items then delete last 7.2650 us/op 10.310 us/op 0.70
Set add up to 128 items then delete middle 4.8057 us/op 6.6869 us/op 0.72
OrderedSet add up to 128 items then delete middle 13.608 us/op 18.364 us/op 0.74
Set add up to 256 items then delete first 10.254 us/op 14.161 us/op 0.72
OrderedSet add up to 256 items then delete first 15.990 us/op 21.944 us/op 0.73
Set add up to 256 items then delete last 9.8395 us/op 13.746 us/op 0.72
OrderedSet add up to 256 items then delete last 14.388 us/op 21.138 us/op 0.68
Set add up to 256 items then delete middle 9.8358 us/op 13.805 us/op 0.71
OrderedSet add up to 256 items then delete middle 40.409 us/op 50.127 us/op 0.81
transfer serialized Status (84 B) 2.3370 us/op 2.5910 us/op 0.90
copy serialized Status (84 B) 1.7880 us/op 1.4230 us/op 1.26
transfer serialized SignedVoluntaryExit (112 B) 2.2730 us/op 2.5580 us/op 0.89
copy serialized SignedVoluntaryExit (112 B) 1.2450 us/op 1.5460 us/op 0.81
transfer serialized ProposerSlashing (416 B) 2.3110 us/op 2.7360 us/op 0.84
copy serialized ProposerSlashing (416 B) 1.2700 us/op 1.6780 us/op 0.76
transfer serialized Attestation (485 B) 2.2540 us/op 2.7670 us/op 0.81
copy serialized Attestation (485 B) 1.2940 us/op 2.0950 us/op 0.62
transfer serialized AttesterSlashing (33232 B) 2.5570 us/op 3.3760 us/op 0.76
copy serialized AttesterSlashing (33232 B) 4.4550 us/op 5.9580 us/op 0.75
transfer serialized Small SignedBeaconBlock (128000 B) 3.2290 us/op 4.1770 us/op 0.77
copy serialized Small SignedBeaconBlock (128000 B) 9.2130 us/op 19.021 us/op 0.48
transfer serialized Avg SignedBeaconBlock (200000 B) 3.6560 us/op 4.7860 us/op 0.76
copy serialized Avg SignedBeaconBlock (200000 B) 14.726 us/op 25.587 us/op 0.58
transfer serialized BlobsSidecar (524380 B) 3.9150 us/op 5.4070 us/op 0.72
copy serialized BlobsSidecar (524380 B) 60.713 us/op 97.161 us/op 0.62
transfer serialized Big SignedBeaconBlock (1000000 B) 3.8040 us/op 5.4770 us/op 0.69
copy serialized Big SignedBeaconBlock (1000000 B) 123.65 us/op 212.28 us/op 0.58
pass gossip attestations to forkchoice per slot 2.7675 ms/op 3.0193 ms/op 0.92
forkChoice updateHead vc 100000 bc 64 eq 0 440.95 us/op 471.17 us/op 0.94
forkChoice updateHead vc 600000 bc 64 eq 0 2.7427 ms/op 3.7453 ms/op 0.73
forkChoice updateHead vc 1000000 bc 64 eq 0 4.7201 ms/op 6.3794 ms/op 0.74
forkChoice updateHead vc 600000 bc 320 eq 0 2.7672 ms/op 3.6408 ms/op 0.76
forkChoice updateHead vc 600000 bc 1200 eq 0 2.8125 ms/op 3.5916 ms/op 0.78
forkChoice updateHead vc 600000 bc 7200 eq 0 3.4169 ms/op 4.2420 ms/op 0.81
forkChoice updateHead vc 600000 bc 64 eq 1000 10.236 ms/op 10.881 ms/op 0.94
forkChoice updateHead vc 600000 bc 64 eq 10000 10.219 ms/op 10.913 ms/op 0.94
forkChoice updateHead vc 600000 bc 64 eq 300000 13.992 ms/op 22.040 ms/op 0.63
computeDeltas 500000 validators 300 proto nodes 3.8833 ms/op 4.4534 ms/op 0.87
computeDeltas 500000 validators 1200 proto nodes 3.8686 ms/op 4.4362 ms/op 0.87
computeDeltas 500000 validators 7200 proto nodes 3.8831 ms/op 4.4614 ms/op 0.87
computeDeltas 750000 validators 300 proto nodes 5.7411 ms/op 6.9594 ms/op 0.82
computeDeltas 750000 validators 1200 proto nodes 5.8716 ms/op 8.8339 ms/op 0.66
computeDeltas 750000 validators 7200 proto nodes 7.4158 ms/op 11.349 ms/op 0.65
computeDeltas 1400000 validators 300 proto nodes 12.283 ms/op 16.798 ms/op 0.73
computeDeltas 1400000 validators 1200 proto nodes 11.177 ms/op 12.692 ms/op 0.88
computeDeltas 1400000 validators 7200 proto nodes 15.744 ms/op 11.703 ms/op 1.35
computeDeltas 2100000 validators 300 proto nodes 18.012 ms/op 17.520 ms/op 1.03
computeDeltas 2100000 validators 1200 proto nodes 16.633 ms/op 18.044 ms/op 0.92
computeDeltas 2100000 validators 7200 proto nodes 16.366 ms/op 17.466 ms/op 0.94
altair processAttestation - 250000 vs - 7PWei normalcase 1.9735 ms/op 2.8811 ms/op 0.68
altair processAttestation - 250000 vs - 7PWei worstcase 4.4554 ms/op 3.5719 ms/op 1.25
altair processAttestation - setStatus - 1/6 committees join 122.91 us/op 148.10 us/op 0.83
altair processAttestation - setStatus - 1/3 committees join 243.36 us/op 270.07 us/op 0.90
altair processAttestation - setStatus - 1/2 committees join 334.04 us/op 377.36 us/op 0.89
altair processAttestation - setStatus - 2/3 committees join 439.41 us/op 457.44 us/op 0.96
altair processAttestation - setStatus - 4/5 committees join 607.40 us/op 1.0647 ms/op 0.57
altair processAttestation - setStatus - 100% committees join 733.33 us/op 753.87 us/op 0.97
altair processBlock - 250000 vs - 7PWei normalcase 5.9345 ms/op 9.3481 ms/op 0.63
altair processBlock - 250000 vs - 7PWei normalcase hashState 33.270 ms/op 29.593 ms/op 1.12
altair processBlock - 250000 vs - 7PWei worstcase 36.906 ms/op 35.505 ms/op 1.04
altair processBlock - 250000 vs - 7PWei worstcase hashState 85.341 ms/op 78.968 ms/op 1.08
phase0 processBlock - 250000 vs - 7PWei normalcase 1.6295 ms/op 1.6121 ms/op 1.01
phase0 processBlock - 250000 vs - 7PWei worstcase 21.426 ms/op 22.239 ms/op 0.96
altair processEth1Data - 250000 vs - 7PWei normalcase 332.68 us/op 339.97 us/op 0.98
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 4.9100 us/op 4.9560 us/op 0.99
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 29.324 us/op 31.856 us/op 0.92
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 7.8470 us/op 8.2340 us/op 0.95
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.2080 us/op 5.4220 us/op 0.96
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 122.21 us/op 132.38 us/op 0.92
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 983.69 us/op 938.60 us/op 1.05
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.4459 ms/op 1.3383 ms/op 1.08
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.3970 ms/op 1.3254 ms/op 1.05
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.5890 ms/op 3.3429 ms/op 1.07
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.4536 ms/op 1.4076 ms/op 1.03
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.5522 ms/op 3.3638 ms/op 1.06
Tree 40 250000 create 496.60 ms/op 435.67 ms/op 1.14
Tree 40 250000 get(125000) 141.27 ns/op 143.42 ns/op 0.99
Tree 40 250000 set(125000) 1.4626 us/op 1.4069 us/op 1.04
Tree 40 250000 toArray() 18.209 ms/op 15.028 ms/op 1.21
Tree 40 250000 iterate all - toArray() + loop 18.861 ms/op 14.933 ms/op 1.26
Tree 40 250000 iterate all - get(i) 53.637 ms/op 52.298 ms/op 1.03
Array 250000 create 2.5056 ms/op 2.9064 ms/op 0.86
Array 250000 clone - spread 817.05 us/op 822.90 us/op 0.99
Array 250000 get(125000) 0.39300 ns/op 0.40500 ns/op 0.97
Array 250000 set(125000) 0.41700 ns/op 0.42500 ns/op 0.98
Array 250000 iterate all - loop 100.38 us/op 103.94 us/op 0.97
phase0 afterProcessEpoch - 250000 vs - 7PWei 47.455 ms/op 50.614 ms/op 0.94
Array.fill - length 1000000 3.4520 ms/op 3.3714 ms/op 1.02
Array push - length 1000000 13.011 ms/op 14.084 ms/op 0.92
Array.get 0.26628 ns/op 0.27465 ns/op 0.97
Uint8Array.get 0.43042 ns/op 0.44146 ns/op 0.97
phase0 beforeProcessEpoch - 250000 vs - 7PWei 19.026 ms/op 16.635 ms/op 1.14
altair processEpoch - mainnet_e81889 294.89 ms/op 273.21 ms/op 1.08
mainnet_e81889 - altair beforeProcessEpoch 22.008 ms/op 19.605 ms/op 1.12
mainnet_e81889 - altair processJustificationAndFinalization 5.5030 us/op 5.4630 us/op 1.01
mainnet_e81889 - altair processInactivityUpdates 5.1781 ms/op 4.2151 ms/op 1.23
mainnet_e81889 - altair processRewardsAndPenalties 42.997 ms/op 38.717 ms/op 1.11
mainnet_e81889 - altair processRegistryUpdates 722.00 ns/op 703.00 ns/op 1.03
mainnet_e81889 - altair processSlashings 183.00 ns/op 186.00 ns/op 0.98
mainnet_e81889 - altair processEth1DataReset 174.00 ns/op 177.00 ns/op 0.98
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2432 ms/op 1.2447 ms/op 1.00
mainnet_e81889 - altair processSlashingsReset 913.00 ns/op 885.00 ns/op 1.03
mainnet_e81889 - altair processRandaoMixesReset 1.1200 us/op 1.1520 us/op 0.97
mainnet_e81889 - altair processHistoricalRootsUpdate 177.00 ns/op 182.00 ns/op 0.97
mainnet_e81889 - altair processParticipationFlagUpdates 512.00 ns/op 535.00 ns/op 0.96
mainnet_e81889 - altair processSyncCommitteeUpdates 135.00 ns/op 140.00 ns/op 0.96
mainnet_e81889 - altair afterProcessEpoch 51.910 ms/op 52.397 ms/op 0.99
capella processEpoch - mainnet_e217614 1.0924 s/op 1.0734 s/op 1.02
mainnet_e217614 - capella beforeProcessEpoch 74.916 ms/op 74.021 ms/op 1.01
mainnet_e217614 - capella processJustificationAndFinalization 6.4690 us/op 5.5200 us/op 1.17
mainnet_e217614 - capella processInactivityUpdates 19.728 ms/op 17.289 ms/op 1.14
mainnet_e217614 - capella processRewardsAndPenalties 192.79 ms/op 185.45 ms/op 1.04
mainnet_e217614 - capella processRegistryUpdates 6.3420 us/op 6.7310 us/op 0.94
mainnet_e217614 - capella processSlashings 177.00 ns/op 191.00 ns/op 0.93
mainnet_e217614 - capella processEth1DataReset 175.00 ns/op 185.00 ns/op 0.95
mainnet_e217614 - capella processEffectiveBalanceUpdates 14.480 ms/op 14.364 ms/op 1.01
mainnet_e217614 - capella processSlashingsReset 871.00 ns/op 911.00 ns/op 0.96
mainnet_e217614 - capella processRandaoMixesReset 1.1220 us/op 1.2050 us/op 0.93
mainnet_e217614 - capella processHistoricalRootsUpdate 174.00 ns/op 187.00 ns/op 0.93
mainnet_e217614 - capella processParticipationFlagUpdates 496.00 ns/op 563.00 ns/op 0.88
mainnet_e217614 - capella afterProcessEpoch 124.22 ms/op 129.41 ms/op 0.96
phase0 processEpoch - mainnet_e58758 276.55 ms/op 288.18 ms/op 0.96
mainnet_e58758 - phase0 beforeProcessEpoch 80.720 ms/op 75.287 ms/op 1.07
mainnet_e58758 - phase0 processJustificationAndFinalization 5.4650 us/op 5.8380 us/op 0.94
mainnet_e58758 - phase0 processRewardsAndPenalties 37.267 ms/op 36.473 ms/op 1.02
mainnet_e58758 - phase0 processRegistryUpdates 3.1310 us/op 3.1470 us/op 0.99
mainnet_e58758 - phase0 processSlashings 174.00 ns/op 181.00 ns/op 0.96
mainnet_e58758 - phase0 processEth1DataReset 168.00 ns/op 184.00 ns/op 0.91
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.0169 ms/op 1.0565 ms/op 0.96
mainnet_e58758 - phase0 processSlashingsReset 931.00 ns/op 990.00 ns/op 0.94
mainnet_e58758 - phase0 processRandaoMixesReset 1.1600 us/op 1.2170 us/op 0.95
mainnet_e58758 - phase0 processHistoricalRootsUpdate 173.00 ns/op 187.00 ns/op 0.93
mainnet_e58758 - phase0 processParticipationRecordUpdates 905.00 ns/op 975.00 ns/op 0.93
mainnet_e58758 - phase0 afterProcessEpoch 44.170 ms/op 46.218 ms/op 0.96
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3691 ms/op 1.3975 ms/op 0.98
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.2740 ms/op 2.7064 ms/op 0.84
altair processInactivityUpdates - 250000 normalcase 17.531 ms/op 18.017 ms/op 0.97
altair processInactivityUpdates - 250000 worstcase 18.599 ms/op 17.987 ms/op 1.03
phase0 processRegistryUpdates - 250000 normalcase 9.2450 us/op 6.7720 us/op 1.37
phase0 processRegistryUpdates - 250000 badcase_full_deposits 262.91 us/op 289.72 us/op 0.91
phase0 processRegistryUpdates - 250000 worstcase 0.5 102.51 ms/op 108.71 ms/op 0.94
altair processRewardsAndPenalties - 250000 normalcase 44.976 ms/op 46.686 ms/op 0.96
altair processRewardsAndPenalties - 250000 worstcase 35.590 ms/op 48.456 ms/op 0.73
phase0 getAttestationDeltas - 250000 normalcase 7.9789 ms/op 11.176 ms/op 0.71
phase0 getAttestationDeltas - 250000 worstcase 14.206 ms/op 8.0196 ms/op 1.77
phase0 processSlashings - 250000 worstcase 101.23 us/op 103.53 us/op 0.98
altair processSyncCommitteeUpdates - 250000 124.46 ms/op 137.71 ms/op 0.90
BeaconState.hashTreeRoot - No change 208.00 ns/op 214.00 ns/op 0.97
BeaconState.hashTreeRoot - 1 full validator 76.947 us/op 78.380 us/op 0.98
BeaconState.hashTreeRoot - 32 full validator 779.20 us/op 975.53 us/op 0.80
BeaconState.hashTreeRoot - 512 full validator 9.4678 ms/op 10.612 ms/op 0.89
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 90.928 us/op 93.685 us/op 0.97
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.2624 ms/op 1.3325 ms/op 0.95
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 19.708 ms/op 22.247 ms/op 0.89
BeaconState.hashTreeRoot - 1 balances 71.324 us/op 74.063 us/op 0.96
BeaconState.hashTreeRoot - 32 balances 847.04 us/op 710.36 us/op 1.19
BeaconState.hashTreeRoot - 512 balances 10.429 ms/op 7.7880 ms/op 1.34
BeaconState.hashTreeRoot - 250000 balances 157.89 ms/op 169.09 ms/op 0.93
aggregationBits - 2048 els - zipIndexesInBitList 23.769 us/op 23.395 us/op 1.02
byteArrayEquals 32 52.508 ns/op 54.834 ns/op 0.96
Buffer.compare 32 16.725 ns/op 17.798 ns/op 0.94
byteArrayEquals 1024 1.5888 us/op 1.6331 us/op 0.97
Buffer.compare 1024 24.499 ns/op 26.940 ns/op 0.91
byteArrayEquals 16384 25.274 us/op 25.983 us/op 0.97
Buffer.compare 16384 202.27 ns/op 208.99 ns/op 0.97
byteArrayEquals 123687377 189.85 ms/op 198.36 ms/op 0.96
Buffer.compare 123687377 7.7496 ms/op 9.1885 ms/op 0.84
byteArrayEquals 32 - diff last byte 52.229 ns/op 54.718 ns/op 0.95
Buffer.compare 32 - diff last byte 17.250 ns/op 17.715 ns/op 0.97
byteArrayEquals 1024 - diff last byte 1.5720 us/op 1.7414 us/op 0.90
Buffer.compare 1024 - diff last byte 24.773 ns/op 28.476 ns/op 0.87
byteArrayEquals 16384 - diff last byte 25.053 us/op 26.951 us/op 0.93
Buffer.compare 16384 - diff last byte 177.04 ns/op 211.19 ns/op 0.84
byteArrayEquals 123687377 - diff last byte 186.59 ms/op 197.28 ms/op 0.95
Buffer.compare 123687377 - diff last byte 7.5026 ms/op 8.4649 ms/op 0.89
byteArrayEquals 32 - random bytes 4.9300 ns/op 5.1800 ns/op 0.95
Buffer.compare 32 - random bytes 16.488 ns/op 18.063 ns/op 0.91
byteArrayEquals 1024 - random bytes 4.9480 ns/op 5.2410 ns/op 0.94
Buffer.compare 1024 - random bytes 16.426 ns/op 18.295 ns/op 0.90
byteArrayEquals 16384 - random bytes 4.9080 ns/op 5.3330 ns/op 0.92
Buffer.compare 16384 - random bytes 16.413 ns/op 17.789 ns/op 0.92
byteArrayEquals 123687377 - random bytes 6.0500 ns/op 6.5600 ns/op 0.92
Buffer.compare 123687377 - random bytes 17.610 ns/op 19.770 ns/op 0.89
regular array get 100000 times 38.098 us/op 34.032 us/op 1.12
wrappedArray get 100000 times 31.850 us/op 40.903 us/op 0.78
arrayWithProxy get 100000 times 12.691 ms/op 12.643 ms/op 1.00
ssz.Root.equals 44.637 ns/op 46.981 ns/op 0.95
byteArrayEquals 44.112 ns/op 46.384 ns/op 0.95
Buffer.compare 9.9640 ns/op 10.525 ns/op 0.95
processSlot - 1 slots 9.8380 us/op 10.669 us/op 0.92
processSlot - 32 slots 2.1536 ms/op 2.2704 ms/op 0.95
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 54.018 ms/op 53.210 ms/op 1.02
getCommitteeAssignments - req 1 vs - 250000 vc 2.0985 ms/op 2.1717 ms/op 0.97
getCommitteeAssignments - req 100 vs - 250000 vc 4.0985 ms/op 4.2087 ms/op 0.97
getCommitteeAssignments - req 1000 vs - 250000 vc 4.3385 ms/op 4.5200 ms/op 0.96
findModifiedValidators - 10000 modified validators 776.63 ms/op 786.60 ms/op 0.99
findModifiedValidators - 1000 modified validators 715.00 ms/op 725.00 ms/op 0.99
findModifiedValidators - 100 modified validators 268.22 ms/op 271.34 ms/op 0.99
findModifiedValidators - 10 modified validators 178.47 ms/op 160.47 ms/op 1.11
findModifiedValidators - 1 modified validators 181.39 ms/op 148.12 ms/op 1.22
findModifiedValidators - no difference 156.23 ms/op 161.52 ms/op 0.97
compare ViewDUs 6.4269 s/op 7.2686 s/op 0.88
compare each validator Uint8Array 1.4520 s/op 1.7056 s/op 0.85
compare ViewDU to Uint8Array 1.0934 s/op 1.3931 s/op 0.78
migrate state 1000000 validators, 24 modified, 0 new 867.99 ms/op 1.0867 s/op 0.80
migrate state 1000000 validators, 1700 modified, 1000 new 1.1223 s/op 1.4154 s/op 0.79
migrate state 1000000 validators, 3400 modified, 2000 new 1.1396 s/op 1.6417 s/op 0.69
migrate state 1500000 validators, 24 modified, 0 new 920.89 ms/op 1.3888 s/op 0.66
migrate state 1500000 validators, 1700 modified, 1000 new 1.1851 s/op 1.4306 s/op 0.83
migrate state 1500000 validators, 3400 modified, 2000 new 1.3305 s/op 1.4721 s/op 0.90
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.1100 ns/op 4.2900 ns/op 0.96
state getBlockRootAtSlot - 250000 vs - 7PWei 530.55 ns/op 384.20 ns/op 1.38
naive computeProposerIndex 100000 validators 51.720 ms/op 49.260 ms/op 1.05
computeProposerIndex 100000 validators 9.0834 ms/op 8.6630 ms/op 1.05
naiveGetNextSyncCommitteeIndices 1000 validators 7.7573 s/op 7.3307 s/op 1.06
getNextSyncCommitteeIndices 1000 validators 261.47 ms/op 232.75 ms/op 1.12
naiveGetNextSyncCommitteeIndices 10000 validators 8.1285 s/op 6.6587 s/op 1.22
getNextSyncCommitteeIndices 10000 validators 269.91 ms/op 233.63 ms/op 1.16
naiveGetNextSyncCommitteeIndices 100000 validators 8.0842 s/op 6.6360 s/op 1.22
getNextSyncCommitteeIndices 100000 validators 275.90 ms/op 231.18 ms/op 1.19
naive computeShuffledIndex 100000 validators 27.033 s/op 21.417 s/op 1.26
cached computeShuffledIndex 100000 validators 577.36 ms/op 547.36 ms/op 1.05
naive computeShuffledIndex 2000000 validators 570.65 s/op 482.52 s/op 1.18
cached computeShuffledIndex 2000000 validators 34.557 s/op 47.729 s/op 0.72
computeProposers - vc 250000 9.8674 ms/op 11.518 ms/op 0.86
computeEpochShuffling - vc 250000 40.989 ms/op 43.972 ms/op 0.93
getNextSyncCommittee - vc 250000 168.75 ms/op 241.33 ms/op 0.70
computeSigningRoot for AttestationData 20.750 us/op 22.380 us/op 0.93
hash AttestationData serialized data then Buffer.toString(base64) 1.5926 us/op 1.7072 us/op 0.93
toHexString serialized data 1.2871 us/op 1.4402 us/op 0.89
Buffer.toString(base64) 167.32 ns/op 157.38 ns/op 1.06
nodejs block root to RootHex using toHex 148.58 ns/op 149.27 ns/op 1.00
nodejs block root to RootHex using toRootHex 90.237 ns/op 92.307 ns/op 0.98
browser block root to RootHex using the deprecated toHexString 247.69 ns/op 243.19 ns/op 1.02
browser block root to RootHex using toHex 178.12 ns/op 190.46 ns/op 0.94
browser block root to RootHex using toRootHex 161.20 ns/op 177.13 ns/op 0.91

by benchmarkbot/action

@ensi321
Copy link
Contributor

ensi321 commented Feb 21, 2025

Looks like there is seg fault in the validator unit test. Not sure if it's caused by this PR

@wemeetagain
Copy link
Member Author

Not sure why this PR and #7499 are both segfaulting during unit tests

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