Skip to content

Conversation

@nflaig
Copy link
Member

@nflaig nflaig commented Apr 28, 2025

Motivation

Part of #7682, we can safely remove these workarounds in our next release as we can be sure all dependent software has been updated after Pectra hard fork on mainnet.

Description

@nflaig nflaig requested a review from a team as a code owner April 28, 2025 11:09
@nflaig nflaig changed the title chore: remove workarounds which have been fixed upstream chore: remove workarounds no longer needed after electra fork Apr 28, 2025
@codecov
Copy link

codecov bot commented Apr 28, 2025

Codecov Report

Attention: Patch coverage is 33.33333% with 4 lines in your changes missing coverage. Please review.

Project coverage is 56.07%. Comparing base (27301c3) to head (2b3f8da).
Report is 4 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #7757      +/-   ##
============================================
+ Coverage     56.05%   56.07%   +0.01%     
============================================
  Files           837      837              
  Lines         57940    57926      -14     
  Branches       4462     4458       -4     
============================================
+ Hits          32481    32482       +1     
+ Misses        25391    25376      -15     
  Partials         68       68              
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nflaig nflaig changed the title chore: remove workarounds no longer needed after electra fork chore: remove workarounds no longer needed Apr 28, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Apr 28, 2025

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: d9bc5e2 Previous: 27301c3 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.2481 ms/op 971.71 us/op 1.28
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 57.198 us/op 36.603 us/op 1.56
BLS verify - blst 1.0585 ms/op 1.0613 ms/op 1.00
BLS verifyMultipleSignatures 3 - blst 1.6766 ms/op 1.2412 ms/op 1.35
BLS verifyMultipleSignatures 8 - blst 2.4040 ms/op 1.8950 ms/op 1.27
BLS verifyMultipleSignatures 32 - blst 7.9366 ms/op 6.4777 ms/op 1.23
BLS verifyMultipleSignatures 64 - blst 11.614 ms/op 10.818 ms/op 1.07
BLS verifyMultipleSignatures 128 - blst 19.998 ms/op 17.652 ms/op 1.13
BLS deserializing 10000 signatures 736.77 ms/op 702.70 ms/op 1.05
BLS deserializing 100000 signatures 7.6352 s/op 7.0930 s/op 1.08
BLS verifyMultipleSignatures - same message - 3 - blst 1.1977 ms/op 936.31 us/op 1.28
BLS verifyMultipleSignatures - same message - 8 - blst 1.3426 ms/op 1.1901 ms/op 1.13
BLS verifyMultipleSignatures - same message - 32 - blst 2.1657 ms/op 2.0232 ms/op 1.07
BLS verifyMultipleSignatures - same message - 64 - blst 3.1068 ms/op 2.7970 ms/op 1.11
BLS verifyMultipleSignatures - same message - 128 - blst 5.6794 ms/op 4.9196 ms/op 1.15
BLS aggregatePubkeys 32 - blst 26.477 us/op 20.163 us/op 1.31
BLS aggregatePubkeys 128 - blst 77.102 us/op 71.534 us/op 1.08
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 66.803 ms/op 59.691 ms/op 1.12
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 63.843 ms/op 57.003 ms/op 1.12
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 42.103 ms/op 41.753 ms/op 1.01
getSlashingsAndExits - default max 74.768 us/op 77.646 us/op 0.96
getSlashingsAndExits - 2k 313.32 us/op 352.27 us/op 0.89
proposeBlockBody type=full, size=empty 5.6536 ms/op 5.8090 ms/op 0.97
isKnown best case - 1 super set check 204.00 ns/op 215.00 ns/op 0.95
isKnown normal case - 2 super set checks 202.00 ns/op 214.00 ns/op 0.94
isKnown worse case - 16 super set checks 203.00 ns/op 211.00 ns/op 0.96
InMemoryCheckpointStateCache - add get delete 2.4560 us/op 2.7280 us/op 0.90
validate api signedAggregateAndProof - struct 1.4757 ms/op 1.9657 ms/op 0.75
validate gossip signedAggregateAndProof - struct 1.5063 ms/op 1.5833 ms/op 0.95
batch validate gossip attestation - vc 640000 - chunk 32 120.04 us/op 123.05 us/op 0.98
batch validate gossip attestation - vc 640000 - chunk 64 106.93 us/op 111.34 us/op 0.96
batch validate gossip attestation - vc 640000 - chunk 128 102.82 us/op 109.53 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 256 113.03 us/op 113.70 us/op 0.99
pickEth1Vote - no votes 1.0454 ms/op 1.1300 ms/op 0.93
pickEth1Vote - max votes 8.6176 ms/op 10.659 ms/op 0.81
pickEth1Vote - Eth1Data hashTreeRoot value x2048 13.834 ms/op 15.228 ms/op 0.91
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 21.035 ms/op 25.261 ms/op 0.83
pickEth1Vote - Eth1Data fastSerialize value x2048 472.36 us/op 626.78 us/op 0.75
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.9380 ms/op 5.2282 ms/op 0.56
bytes32 toHexString 390.00 ns/op 434.00 ns/op 0.90
bytes32 Buffer.toString(hex) 256.00 ns/op 300.00 ns/op 0.85
bytes32 Buffer.toString(hex) from Uint8Array 354.00 ns/op 367.00 ns/op 0.96
bytes32 Buffer.toString(hex) + 0x 250.00 ns/op 263.00 ns/op 0.95
Object access 1 prop 0.12300 ns/op 0.14200 ns/op 0.87
Map access 1 prop 0.12700 ns/op 0.14400 ns/op 0.88
Object get x1000 6.1680 ns/op 6.1130 ns/op 1.01
Map get x1000 6.5120 ns/op 6.5800 ns/op 0.99
Object set x1000 32.420 ns/op 33.045 ns/op 0.98
Map set x1000 21.980 ns/op 21.789 ns/op 1.01
Return object 10000 times 0.29940 ns/op 0.30010 ns/op 1.00
Throw Error 10000 times 4.6650 us/op 4.8568 us/op 0.96
toHex 145.30 ns/op 150.59 ns/op 0.96
Buffer.from 144.61 ns/op 139.38 ns/op 1.04
shared Buffer 90.073 ns/op 92.395 ns/op 0.97
fastMsgIdFn sha256 / 200 bytes 2.2360 us/op 2.3180 us/op 0.96
fastMsgIdFn h32 xxhash / 200 bytes 212.00 ns/op 211.00 ns/op 1.00
fastMsgIdFn h64 xxhash / 200 bytes 270.00 ns/op 303.00 ns/op 0.89
fastMsgIdFn sha256 / 1000 bytes 7.7890 us/op 7.4890 us/op 1.04
fastMsgIdFn h32 xxhash / 1000 bytes 352.00 ns/op 374.00 ns/op 0.94
fastMsgIdFn h64 xxhash / 1000 bytes 351.00 ns/op 393.00 ns/op 0.89
fastMsgIdFn sha256 / 10000 bytes 66.851 us/op 68.169 us/op 0.98
fastMsgIdFn h32 xxhash / 10000 bytes 1.9130 us/op 2.0620 us/op 0.93
fastMsgIdFn h64 xxhash / 10000 bytes 1.2430 us/op 1.2680 us/op 0.98
send data - 1000 256B messages 13.686 ms/op 15.637 ms/op 0.88
send data - 1000 512B messages 18.401 ms/op 19.549 ms/op 0.94
send data - 1000 1024B messages 29.723 ms/op 30.349 ms/op 0.98
send data - 1000 1200B messages 22.834 ms/op 26.780 ms/op 0.85
send data - 1000 2048B messages 26.808 ms/op 25.065 ms/op 1.07
send data - 1000 4096B messages 29.702 ms/op 35.279 ms/op 0.84
send data - 1000 16384B messages 54.218 ms/op 75.744 ms/op 0.72
send data - 1000 65536B messages 224.48 ms/op 326.80 ms/op 0.69
enrSubnets - fastDeserialize 64 bits 936.00 ns/op 961.00 ns/op 0.97
enrSubnets - ssz BitVector 64 bits 331.00 ns/op 384.00 ns/op 0.86
enrSubnets - fastDeserialize 4 bits 131.00 ns/op 149.00 ns/op 0.88
enrSubnets - ssz BitVector 4 bits 344.00 ns/op 466.00 ns/op 0.74
prioritizePeers score -10:0 att 32-0.1 sync 2-0 120.84 us/op 131.57 us/op 0.92
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 149.98 us/op 159.66 us/op 0.94
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 209.94 us/op 228.30 us/op 0.92
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 397.17 us/op 448.06 us/op 0.89
prioritizePeers score 0:0 att 64-1 sync 4-1 471.23 us/op 615.05 us/op 0.77
array of 16000 items push then shift 1.6474 us/op 1.7206 us/op 0.96
LinkedList of 16000 items push then shift 7.8350 ns/op 8.3080 ns/op 0.94
array of 16000 items push then pop 78.914 ns/op 93.157 ns/op 0.85
LinkedList of 16000 items push then pop 7.9110 ns/op 8.7430 ns/op 0.90
array of 24000 items push then shift 2.5055 us/op 2.5059 us/op 1.00
LinkedList of 24000 items push then shift 8.0030 ns/op 8.3520 ns/op 0.96
array of 24000 items push then pop 116.19 ns/op 124.69 ns/op 0.93
LinkedList of 24000 items push then pop 7.3050 ns/op 7.9110 ns/op 0.92
intersect bitArray bitLen 8 6.6250 ns/op 6.9800 ns/op 0.95
intersect array and set length 8 39.849 ns/op 44.333 ns/op 0.90
intersect bitArray bitLen 128 30.840 ns/op 32.155 ns/op 0.96
intersect array and set length 128 638.09 ns/op 683.69 ns/op 0.93
bitArray.getTrueBitIndexes() bitLen 128 1.1390 us/op 1.2310 us/op 0.93
bitArray.getTrueBitIndexes() bitLen 248 1.8830 us/op 2.1160 us/op 0.89
bitArray.getTrueBitIndexes() bitLen 512 3.8620 us/op 4.4560 us/op 0.87
Buffer.concat 32 items 651.00 ns/op 957.00 ns/op 0.68
Uint8Array.set 32 items 1.5060 us/op 1.7200 us/op 0.88
Buffer.copy 3.2150 us/op 2.4230 us/op 1.33
Uint8Array.set - with subarray 3.1070 us/op 1.8360 us/op 1.69
Uint8Array.set - without subarray 2.1230 us/op 1.7310 us/op 1.23
getUint32 - dataview 212.00 ns/op 228.00 ns/op 0.93
getUint32 - manual 130.00 ns/op 141.00 ns/op 0.92
Set add up to 64 items then delete first 2.6582 us/op 3.0559 us/op 0.87
OrderedSet add up to 64 items then delete first 3.9891 us/op 4.1241 us/op 0.97
Set add up to 64 items then delete last 3.1068 us/op 3.5124 us/op 0.88
OrderedSet add up to 64 items then delete last 3.8084 us/op 5.0918 us/op 0.75
Set add up to 64 items then delete middle 2.6081 us/op 3.2275 us/op 0.81
OrderedSet add up to 64 items then delete middle 5.2353 us/op 6.8208 us/op 0.77
Set add up to 128 items then delete first 5.2130 us/op 6.7644 us/op 0.77
OrderedSet add up to 128 items then delete first 8.0227 us/op 11.500 us/op 0.70
Set add up to 128 items then delete last 4.9289 us/op 6.5613 us/op 0.75
OrderedSet add up to 128 items then delete last 7.2165 us/op 10.365 us/op 0.70
Set add up to 128 items then delete middle 4.9003 us/op 7.1844 us/op 0.68
OrderedSet add up to 128 items then delete middle 15.957 us/op 15.953 us/op 1.00
Set add up to 256 items then delete first 11.250 us/op 14.768 us/op 0.76
OrderedSet add up to 256 items then delete first 16.559 us/op 19.543 us/op 0.85
Set add up to 256 items then delete last 10.960 us/op 11.416 us/op 0.96
OrderedSet add up to 256 items then delete last 16.165 us/op 16.541 us/op 0.98
Set add up to 256 items then delete middle 10.212 us/op 11.569 us/op 0.88
OrderedSet add up to 256 items then delete middle 45.571 us/op 47.565 us/op 0.96
transfer serialized Status (84 B) 2.4080 us/op 2.5970 us/op 0.93
copy serialized Status (84 B) 1.2580 us/op 1.4010 us/op 0.90
transfer serialized SignedVoluntaryExit (112 B) 2.4460 us/op 2.6320 us/op 0.93
copy serialized SignedVoluntaryExit (112 B) 1.2880 us/op 1.4700 us/op 0.88
transfer serialized ProposerSlashing (416 B) 2.4130 us/op 2.7170 us/op 0.89
copy serialized ProposerSlashing (416 B) 1.3630 us/op 1.7670 us/op 0.77
transfer serialized Attestation (485 B) 2.4580 us/op 2.6810 us/op 0.92
copy serialized Attestation (485 B) 1.3260 us/op 1.9180 us/op 0.69
transfer serialized AttesterSlashing (33232 B) 2.6950 us/op 3.4350 us/op 0.78
copy serialized AttesterSlashing (33232 B) 4.3930 us/op 4.9120 us/op 0.89
transfer serialized Small SignedBeaconBlock (128000 B) 3.1810 us/op 3.7540 us/op 0.85
copy serialized Small SignedBeaconBlock (128000 B) 10.605 us/op 11.716 us/op 0.91
transfer serialized Avg SignedBeaconBlock (200000 B) 3.7500 us/op 4.2780 us/op 0.88
copy serialized Avg SignedBeaconBlock (200000 B) 19.291 us/op 19.405 us/op 0.99
transfer serialized BlobsSidecar (524380 B) 3.8830 us/op 4.4660 us/op 0.87
copy serialized BlobsSidecar (524380 B) 69.810 us/op 64.440 us/op 1.08
transfer serialized Big SignedBeaconBlock (1000000 B) 4.1770 us/op 4.5570 us/op 0.92
copy serialized Big SignedBeaconBlock (1000000 B) 116.54 us/op 120.13 us/op 0.97
pass gossip attestations to forkchoice per slot 2.9598 ms/op 3.3744 ms/op 0.88
forkChoice updateHead vc 100000 bc 64 eq 0 473.71 us/op 506.46 us/op 0.94
forkChoice updateHead vc 600000 bc 64 eq 0 3.0262 ms/op 4.8388 ms/op 0.63
forkChoice updateHead vc 1000000 bc 64 eq 0 5.1687 ms/op 8.0356 ms/op 0.64
forkChoice updateHead vc 600000 bc 320 eq 0 3.0403 ms/op 3.6732 ms/op 0.83
forkChoice updateHead vc 600000 bc 1200 eq 0 3.0904 ms/op 3.5193 ms/op 0.88
forkChoice updateHead vc 600000 bc 7200 eq 0 4.0217 ms/op 3.9258 ms/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 1000 10.592 ms/op 11.166 ms/op 0.95
forkChoice updateHead vc 600000 bc 64 eq 10000 10.842 ms/op 11.375 ms/op 0.95
forkChoice updateHead vc 600000 bc 64 eq 300000 13.519 ms/op 14.629 ms/op 0.92
computeDeltas 500000 validators 300 proto nodes 4.2379 ms/op 4.2248 ms/op 1.00
computeDeltas 500000 validators 1200 proto nodes 4.1736 ms/op 4.3898 ms/op 0.95
computeDeltas 500000 validators 7200 proto nodes 4.1110 ms/op 4.5470 ms/op 0.90
computeDeltas 750000 validators 300 proto nodes 6.1456 ms/op 6.8675 ms/op 0.89
computeDeltas 750000 validators 1200 proto nodes 6.1563 ms/op 8.0331 ms/op 0.77
computeDeltas 750000 validators 7200 proto nodes 6.1033 ms/op 7.8055 ms/op 0.78
computeDeltas 1400000 validators 300 proto nodes 11.391 ms/op 14.040 ms/op 0.81
computeDeltas 1400000 validators 1200 proto nodes 12.085 ms/op 12.238 ms/op 0.99
computeDeltas 1400000 validators 7200 proto nodes 11.550 ms/op 13.714 ms/op 0.84
computeDeltas 2100000 validators 300 proto nodes 17.080 ms/op 19.525 ms/op 0.87
computeDeltas 2100000 validators 1200 proto nodes 17.732 ms/op 20.298 ms/op 0.87
computeDeltas 2100000 validators 7200 proto nodes 19.524 ms/op 20.190 ms/op 0.97
altair processAttestation - 250000 vs - 7PWei normalcase 2.3446 ms/op 3.0506 ms/op 0.77
altair processAttestation - 250000 vs - 7PWei worstcase 3.6296 ms/op 3.7767 ms/op 0.96
altair processAttestation - setStatus - 1/6 committees join 128.85 us/op 150.72 us/op 0.85
altair processAttestation - setStatus - 1/3 committees join 253.93 us/op 297.12 us/op 0.85
altair processAttestation - setStatus - 1/2 committees join 349.29 us/op 358.70 us/op 0.97
altair processAttestation - setStatus - 2/3 committees join 464.58 us/op 466.53 us/op 1.00
altair processAttestation - setStatus - 4/5 committees join 733.44 us/op 621.23 us/op 1.18
altair processAttestation - setStatus - 100% committees join 871.20 us/op 721.48 us/op 1.21
altair processBlock - 250000 vs - 7PWei normalcase 5.6187 ms/op 4.4108 ms/op 1.27
altair processBlock - 250000 vs - 7PWei normalcase hashState 31.394 ms/op 32.429 ms/op 0.97
altair processBlock - 250000 vs - 7PWei worstcase 37.095 ms/op 45.881 ms/op 0.81
altair processBlock - 250000 vs - 7PWei worstcase hashState 70.734 ms/op 76.075 ms/op 0.93
phase0 processBlock - 250000 vs - 7PWei normalcase 1.6145 ms/op 2.3937 ms/op 0.67
phase0 processBlock - 250000 vs - 7PWei worstcase 25.422 ms/op 20.533 ms/op 1.24
altair processEth1Data - 250000 vs - 7PWei normalcase 358.78 us/op 354.28 us/op 1.01
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.3180 us/op 9.2750 us/op 0.68
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 57.780 us/op 35.155 us/op 1.64
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 18.028 us/op 16.761 us/op 1.08
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 11.183 us/op 6.3270 us/op 1.77
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 205.10 us/op 258.30 us/op 0.79
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 2.0200 ms/op 1.9315 ms/op 1.05
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.8795 ms/op 2.4280 ms/op 1.19
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.9280 ms/op 2.4544 ms/op 1.19
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 5.8289 ms/op 4.6626 ms/op 1.25
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.7585 ms/op 2.4755 ms/op 1.11
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.9172 ms/op 4.7698 ms/op 1.03
Tree 40 250000 create 766.00 ms/op 443.38 ms/op 1.73
Tree 40 250000 get(125000) 154.40 ns/op 140.67 ns/op 1.10
Tree 40 250000 set(125000) 2.1572 us/op 1.5335 us/op 1.41
Tree 40 250000 toArray() 25.454 ms/op 16.096 ms/op 1.58
Tree 40 250000 iterate all - toArray() + loop 24.332 ms/op 15.361 ms/op 1.58
Tree 40 250000 iterate all - get(i) 70.600 ms/op 52.075 ms/op 1.36
Array 250000 create 4.5943 ms/op 2.9285 ms/op 1.57
Array 250000 clone - spread 3.5192 ms/op 821.72 us/op 4.28
Array 250000 get(125000) 0.44200 ns/op 0.43200 ns/op 1.02
Array 250000 set(125000) 0.46300 ns/op 0.45500 ns/op 1.02
Array 250000 iterate all - loop 118.88 us/op 84.352 us/op 1.41
phase0 afterProcessEpoch - 250000 vs - 7PWei 44.714 ms/op 43.607 ms/op 1.03
Array.fill - length 1000000 4.9224 ms/op 3.6280 ms/op 1.36
Array push - length 1000000 21.401 ms/op 17.050 ms/op 1.26
Array.get 0.28330 ns/op 0.28997 ns/op 0.98
Uint8Array.get 0.45256 ns/op 0.46094 ns/op 0.98
phase0 beforeProcessEpoch - 250000 vs - 7PWei 19.350 ms/op 20.360 ms/op 0.95
altair processEpoch - mainnet_e81889 301.17 ms/op 281.95 ms/op 1.07
mainnet_e81889 - altair beforeProcessEpoch 19.400 ms/op 19.565 ms/op 0.99
mainnet_e81889 - altair processJustificationAndFinalization 5.7820 us/op 5.3690 us/op 1.08
mainnet_e81889 - altair processInactivityUpdates 5.3383 ms/op 4.4520 ms/op 1.20
mainnet_e81889 - altair processRewardsAndPenalties 40.589 ms/op 38.911 ms/op 1.04
mainnet_e81889 - altair processRegistryUpdates 784.00 ns/op 707.00 ns/op 1.11
mainnet_e81889 - altair processSlashings 201.00 ns/op 188.00 ns/op 1.07
mainnet_e81889 - altair processEth1DataReset 191.00 ns/op 186.00 ns/op 1.03
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.3909 ms/op 1.2571 ms/op 1.11
mainnet_e81889 - altair processSlashingsReset 1.1280 us/op 1.1830 us/op 0.95
mainnet_e81889 - altair processRandaoMixesReset 1.3460 us/op 1.4280 us/op 0.94
mainnet_e81889 - altair processHistoricalRootsUpdate 261.00 ns/op 186.00 ns/op 1.40
mainnet_e81889 - altair processParticipationFlagUpdates 582.00 ns/op 598.00 ns/op 0.97
mainnet_e81889 - altair processSyncCommitteeUpdates 165.00 ns/op 158.00 ns/op 1.04
mainnet_e81889 - altair afterProcessEpoch 49.598 ms/op 45.549 ms/op 1.09
capella processEpoch - mainnet_e217614 1.2460 s/op 935.92 ms/op 1.33
mainnet_e217614 - capella beforeProcessEpoch 75.533 ms/op 65.746 ms/op 1.15
mainnet_e217614 - capella processJustificationAndFinalization 6.0010 us/op 5.2230 us/op 1.15
mainnet_e217614 - capella processInactivityUpdates 17.208 ms/op 14.347 ms/op 1.20
mainnet_e217614 - capella processRewardsAndPenalties 204.62 ms/op 180.84 ms/op 1.13
mainnet_e217614 - capella processRegistryUpdates 6.9180 us/op 6.6020 us/op 1.05
mainnet_e217614 - capella processSlashings 197.00 ns/op 189.00 ns/op 1.04
mainnet_e217614 - capella processEth1DataReset 192.00 ns/op 186.00 ns/op 1.03
mainnet_e217614 - capella processEffectiveBalanceUpdates 17.601 ms/op 4.1787 ms/op 4.21
mainnet_e217614 - capella processSlashingsReset 953.00 ns/op 1.3370 us/op 0.71
mainnet_e217614 - capella processRandaoMixesReset 1.2620 us/op 2.1020 us/op 0.60
mainnet_e217614 - capella processHistoricalRootsUpdate 201.00 ns/op 201.00 ns/op 1.00
mainnet_e217614 - capella processParticipationFlagUpdates 590.00 ns/op 530.00 ns/op 1.11
mainnet_e217614 - capella afterProcessEpoch 122.53 ms/op 118.23 ms/op 1.04
phase0 processEpoch - mainnet_e58758 417.43 ms/op 274.58 ms/op 1.52
mainnet_e58758 - phase0 beforeProcessEpoch 145.87 ms/op 76.735 ms/op 1.90
mainnet_e58758 - phase0 processJustificationAndFinalization 8.6620 us/op 5.3030 us/op 1.63
mainnet_e58758 - phase0 processRewardsAndPenalties 45.234 ms/op 43.782 ms/op 1.03
mainnet_e58758 - phase0 processRegistryUpdates 4.4390 us/op 3.2600 us/op 1.36
mainnet_e58758 - phase0 processSlashings 236.00 ns/op 197.00 ns/op 1.20
mainnet_e58758 - phase0 processEth1DataReset 222.00 ns/op 203.00 ns/op 1.09
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.3542 ms/op 1.1973 ms/op 1.97
mainnet_e58758 - phase0 processSlashingsReset 1.1520 us/op 939.00 ns/op 1.23
mainnet_e58758 - phase0 processRandaoMixesReset 1.3420 us/op 1.2300 us/op 1.09
mainnet_e58758 - phase0 processHistoricalRootsUpdate 311.00 ns/op 193.00 ns/op 1.61
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.1660 us/op 964.00 ns/op 1.21
mainnet_e58758 - phase0 afterProcessEpoch 38.641 ms/op 36.057 ms/op 1.07
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4319 ms/op 1.3706 ms/op 1.04
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.8961 ms/op 2.6100 ms/op 0.73
altair processInactivityUpdates - 250000 normalcase 24.118 ms/op 21.926 ms/op 1.10
altair processInactivityUpdates - 250000 worstcase 26.930 ms/op 22.127 ms/op 1.22
phase0 processRegistryUpdates - 250000 normalcase 13.981 us/op 6.5760 us/op 2.13
phase0 processRegistryUpdates - 250000 badcase_full_deposits 354.29 us/op 341.55 us/op 1.04
phase0 processRegistryUpdates - 250000 worstcase 0.5 136.19 ms/op 144.65 ms/op 0.94
altair processRewardsAndPenalties - 250000 normalcase 29.688 ms/op 29.352 ms/op 1.01
altair processRewardsAndPenalties - 250000 worstcase 29.266 ms/op 28.517 ms/op 1.03
phase0 getAttestationDeltas - 250000 normalcase 12.861 ms/op 7.2967 ms/op 1.76
phase0 getAttestationDeltas - 250000 worstcase 8.8745 ms/op 7.7183 ms/op 1.15
phase0 processSlashings - 250000 worstcase 128.52 us/op 80.470 us/op 1.60
altair processSyncCommitteeUpdates - 250000 13.906 ms/op 10.928 ms/op 1.27
BeaconState.hashTreeRoot - No change 241.00 ns/op 255.00 ns/op 0.95
BeaconState.hashTreeRoot - 1 full validator 104.97 us/op 86.537 us/op 1.21
BeaconState.hashTreeRoot - 32 full validator 1.4922 ms/op 787.10 us/op 1.90
BeaconState.hashTreeRoot - 512 full validator 16.224 ms/op 9.8289 ms/op 1.65
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 149.31 us/op 102.94 us/op 1.45
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.4386 ms/op 2.0993 ms/op 1.16
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 29.241 ms/op 24.872 ms/op 1.18
BeaconState.hashTreeRoot - 1 balances 101.24 us/op 89.386 us/op 1.13
BeaconState.hashTreeRoot - 32 balances 1.1260 ms/op 788.65 us/op 1.43
BeaconState.hashTreeRoot - 512 balances 12.797 ms/op 8.8083 ms/op 1.45
BeaconState.hashTreeRoot - 250000 balances 192.67 ms/op 160.69 ms/op 1.20
aggregationBits - 2048 els - zipIndexesInBitList 24.652 us/op 23.586 us/op 1.05
byteArrayEquals 32 56.249 ns/op 54.560 ns/op 1.03
Buffer.compare 32 18.465 ns/op 17.546 ns/op 1.05
byteArrayEquals 1024 1.6479 us/op 1.6250 us/op 1.01
Buffer.compare 1024 26.388 ns/op 25.236 ns/op 1.05
byteArrayEquals 16384 26.374 us/op 26.164 us/op 1.01
Buffer.compare 16384 197.72 ns/op 213.53 ns/op 0.93
byteArrayEquals 123687377 198.48 ms/op 198.38 ms/op 1.00
Buffer.compare 123687377 8.2621 ms/op 8.0064 ms/op 1.03
byteArrayEquals 32 - diff last byte 53.130 ns/op 53.710 ns/op 0.99
Buffer.compare 32 - diff last byte 17.332 ns/op 17.407 ns/op 1.00
byteArrayEquals 1024 - diff last byte 1.6069 us/op 1.6234 us/op 0.99
Buffer.compare 1024 - diff last byte 26.561 ns/op 26.362 ns/op 1.01
byteArrayEquals 16384 - diff last byte 25.608 us/op 25.847 us/op 0.99
Buffer.compare 16384 - diff last byte 180.02 ns/op 201.55 ns/op 0.89
byteArrayEquals 123687377 - diff last byte 196.71 ms/op 195.77 ms/op 1.00
Buffer.compare 123687377 - diff last byte 6.7070 ms/op 7.5824 ms/op 0.88
byteArrayEquals 32 - random bytes 4.9670 ns/op 5.2290 ns/op 0.95
Buffer.compare 32 - random bytes 16.628 ns/op 17.420 ns/op 0.95
byteArrayEquals 1024 - random bytes 5.0450 ns/op 5.2090 ns/op 0.97
Buffer.compare 1024 - random bytes 16.891 ns/op 17.396 ns/op 0.97
byteArrayEquals 16384 - random bytes 5.0620 ns/op 5.2250 ns/op 0.97
Buffer.compare 16384 - random bytes 16.942 ns/op 17.402 ns/op 0.97
byteArrayEquals 123687377 - random bytes 6.3900 ns/op 6.5300 ns/op 0.98
Buffer.compare 123687377 - random bytes 20.990 ns/op 18.720 ns/op 1.12
regular array get 100000 times 33.168 us/op 33.211 us/op 1.00
wrappedArray get 100000 times 33.009 us/op 33.185 us/op 0.99
arrayWithProxy get 100000 times 12.889 ms/op 12.270 ms/op 1.05
ssz.Root.equals 46.772 ns/op 46.992 ns/op 1.00
byteArrayEquals 46.090 ns/op 46.013 ns/op 1.00
Buffer.compare 10.481 ns/op 10.536 ns/op 0.99
processSlot - 1 slots 10.521 us/op 10.304 us/op 1.02
processSlot - 32 slots 2.6310 ms/op 2.9346 ms/op 0.90
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 2.8995 ms/op 2.9686 ms/op 0.98
getCommitteeAssignments - req 1 vs - 250000 vc 2.1490 ms/op 2.1720 ms/op 0.99
getCommitteeAssignments - req 100 vs - 250000 vc 4.1699 ms/op 4.3198 ms/op 0.97
getCommitteeAssignments - req 1000 vs - 250000 vc 4.4426 ms/op 4.5815 ms/op 0.97
findModifiedValidators - 10000 modified validators 731.21 ms/op 761.78 ms/op 0.96
findModifiedValidators - 1000 modified validators 698.05 ms/op 762.94 ms/op 0.91
findModifiedValidators - 100 modified validators 257.76 ms/op 276.79 ms/op 0.93
findModifiedValidators - 10 modified validators 205.87 ms/op 136.20 ms/op 1.51
findModifiedValidators - 1 modified validators 132.11 ms/op 205.38 ms/op 0.64
findModifiedValidators - no difference 138.20 ms/op 184.87 ms/op 0.75
compare ViewDUs 5.9648 s/op 6.4600 s/op 0.92
compare each validator Uint8Array 1.2047 s/op 1.5439 s/op 0.78
compare ViewDU to Uint8Array 934.18 ms/op 1.2454 s/op 0.75
migrate state 1000000 validators, 24 modified, 0 new 874.99 ms/op 882.73 ms/op 0.99
migrate state 1000000 validators, 1700 modified, 1000 new 1.1093 s/op 1.3561 s/op 0.82
migrate state 1000000 validators, 3400 modified, 2000 new 1.3283 s/op 1.6022 s/op 0.83
migrate state 1500000 validators, 24 modified, 0 new 1.0413 s/op 1.0007 s/op 1.04
migrate state 1500000 validators, 1700 modified, 1000 new 1.3280 s/op 1.3111 s/op 1.01
migrate state 1500000 validators, 3400 modified, 2000 new 1.6377 s/op 1.4740 s/op 1.11
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.5400 ns/op 5.0900 ns/op 1.09
state getBlockRootAtSlot - 250000 vs - 7PWei 1.0292 us/op 563.11 ns/op 1.83
naive computeProposerIndex 100000 validators 71.665 ms/op 59.153 ms/op 1.21
computeProposerIndex 100000 validators 1.7617 ms/op 1.6901 ms/op 1.04
naiveGetNextSyncCommitteeIndices 1000 validators 9.5979 s/op 8.7941 s/op 1.09
getNextSyncCommitteeIndices 1000 validators 127.44 ms/op 137.90 ms/op 0.92
naiveGetNextSyncCommitteeIndices 10000 validators 9.1235 s/op 8.2541 s/op 1.11
getNextSyncCommitteeIndices 10000 validators 124.46 ms/op 141.66 ms/op 0.88
naiveGetNextSyncCommitteeIndices 100000 validators 8.5601 s/op 10.590 s/op 0.81
getNextSyncCommitteeIndices 100000 validators 120.36 ms/op 148.90 ms/op 0.81
naive computeShuffledIndex 100000 validators 24.753 s/op 27.722 s/op 0.89
cached computeShuffledIndex 100000 validators 539.57 ms/op 592.79 ms/op 0.91
naive computeShuffledIndex 2000000 validators 498.87 s/op 546.80 s/op 0.91
cached computeShuffledIndex 2000000 validators 35.824 s/op 40.582 s/op 0.88
computeProposers - vc 250000 601.41 us/op 636.50 us/op 0.94
computeEpochShuffling - vc 250000 42.787 ms/op 44.336 ms/op 0.97
getNextSyncCommittee - vc 250000 10.444 ms/op 10.553 ms/op 0.99
computeSigningRoot for AttestationData 21.785 us/op 23.869 us/op 0.91
hash AttestationData serialized data then Buffer.toString(base64) 1.6341 us/op 1.6424 us/op 0.99
toHexString serialized data 1.2006 us/op 1.2869 us/op 0.93
Buffer.toString(base64) 155.71 ns/op 152.36 ns/op 1.02
nodejs block root to RootHex using toHex 150.82 ns/op 153.70 ns/op 0.98
nodejs block root to RootHex using toRootHex 94.377 ns/op 97.842 ns/op 0.96
browser block root to RootHex using the deprecated toHexString 206.44 ns/op 209.55 ns/op 0.99
browser block root to RootHex using toHex 167.45 ns/op 169.60 ns/op 0.99
browser block root to RootHex using toRootHex 155.16 ns/op 158.47 ns/op 0.98

by benchmarkbot/action

@nflaig nflaig merged commit 7faa773 into unstable Apr 28, 2025
21 checks passed
@nflaig nflaig deleted the nflaig/post-electra-cleanup branch April 28, 2025 16:16
@wemeetagain
Copy link
Member

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