Skip to content

chore: post-merge peerDAS branch review#8187

Merged
nflaig merged 7 commits into
unstablefrom
nflaig/post-merge-review
Aug 12, 2025
Merged

chore: post-merge peerDAS branch review#8187
nflaig merged 7 commits into
unstablefrom
nflaig/post-merge-review

Conversation

@nflaig

@nflaig nflaig commented Aug 12, 2025

Copy link
Copy Markdown
Member

Did another sanity check of peerDAS changes after merging it, few minor things I picked up and fixed.

@nflaig nflaig requested a review from a team as a code owner August 12, 2025 09:58
@github-actions

github-actions Bot commented Aug 12, 2025

Copy link
Copy Markdown
Contributor

Performance Report

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: ad25846 Previous: b85c316 Ratio
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5318 ms/op 8.6332 ms/op 0.18
phase0 getAttestationDeltas - 250000 normalcase 5.5543 ms/op 27.975 ms/op 0.20
getNextSyncCommitteeIndices 1000 validators 91.323 ms/op 439.96 ms/op 0.21
getNextSyncCommitteeIndices 10000 validators 102.00 ms/op 406.87 ms/op 0.25
Full benchmark results
Benchmark suite Current: ad25846 Previous: b85c316 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 772.31 us/op 1.0607 ms/op 0.73
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 29.535 us/op 36.284 us/op 0.81
BLS verify - blst 871.56 us/op 818.42 us/op 1.06
BLS verifyMultipleSignatures 3 - blst 1.2874 ms/op 1.3766 ms/op 0.94
BLS verifyMultipleSignatures 8 - blst 2.0725 ms/op 1.9363 ms/op 1.07
BLS verifyMultipleSignatures 32 - blst 4.4811 ms/op 5.9137 ms/op 0.76
BLS verifyMultipleSignatures 64 - blst 8.3785 ms/op 11.023 ms/op 0.76
BLS verifyMultipleSignatures 128 - blst 16.021 ms/op 18.343 ms/op 0.87
BLS deserializing 10000 signatures 618.91 ms/op 711.55 ms/op 0.87
BLS deserializing 100000 signatures 6.1791 s/op 7.0211 s/op 0.88
BLS verifyMultipleSignatures - same message - 3 - blst 928.42 us/op 937.37 us/op 0.99
BLS verifyMultipleSignatures - same message - 8 - blst 1.0472 ms/op 1.0627 ms/op 0.99
BLS verifyMultipleSignatures - same message - 32 - blst 1.6420 ms/op 1.7398 ms/op 0.94
BLS verifyMultipleSignatures - same message - 64 - blst 2.4329 ms/op 2.6213 ms/op 0.93
BLS verifyMultipleSignatures - same message - 128 - blst 3.9636 ms/op 4.4459 ms/op 0.89
BLS aggregatePubkeys 32 - blst 17.760 us/op 19.881 us/op 0.89
BLS aggregatePubkeys 128 - blst 62.719 us/op 70.808 us/op 0.89
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 42.811 ms/op 58.794 ms/op 0.73
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 39.555 ms/op 51.254 ms/op 0.77
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 37.209 ms/op 51.912 ms/op 0.72
getSlashingsAndExits - default max 45.117 us/op 71.656 us/op 0.63
getSlashingsAndExits - 2k 215.16 us/op 281.30 us/op 0.76
proposeBlockBody type=full, size=empty 4.6934 ms/op 6.3795 ms/op 0.74
isKnown best case - 1 super set check 391.00 ns/op 204.00 ns/op 1.92
isKnown normal case - 2 super set checks 390.00 ns/op 202.00 ns/op 1.93
isKnown worse case - 16 super set checks 390.00 ns/op 292.00 ns/op 1.34
InMemoryCheckpointStateCache - add get delete 2.3890 us/op 2.3940 us/op 1.00
validate api signedAggregateAndProof - struct 1.4043 ms/op 2.9285 ms/op 0.48
validate gossip signedAggregateAndProof - struct 1.4039 ms/op 2.8531 ms/op 0.49
batch validate gossip attestation - vc 640000 - chunk 32 104.97 us/op 117.07 us/op 0.90
batch validate gossip attestation - vc 640000 - chunk 64 91.954 us/op 102.43 us/op 0.90
batch validate gossip attestation - vc 640000 - chunk 128 82.351 us/op 95.176 us/op 0.87
batch validate gossip attestation - vc 640000 - chunk 256 81.713 us/op 96.008 us/op 0.85
pickEth1Vote - no votes 795.46 us/op 988.42 us/op 0.80
pickEth1Vote - max votes 4.5255 ms/op 7.3808 ms/op 0.61
pickEth1Vote - Eth1Data hashTreeRoot value x2048 9.6485 ms/op 11.919 ms/op 0.81
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 18.661 ms/op 19.319 ms/op 0.97
pickEth1Vote - Eth1Data fastSerialize value x2048 357.30 us/op 435.32 us/op 0.82
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.4297 ms/op 2.5834 ms/op 0.94
bytes32 toHexString 507.00 ns/op 377.00 ns/op 1.34
bytes32 Buffer.toString(hex) 417.00 ns/op 258.00 ns/op 1.62
bytes32 Buffer.toString(hex) from Uint8Array 500.00 ns/op 332.00 ns/op 1.51
bytes32 Buffer.toString(hex) + 0x 400.00 ns/op 263.00 ns/op 1.52
Object access 1 prop 0.31300 ns/op 0.13200 ns/op 2.37
Map access 1 prop 0.31800 ns/op 0.13000 ns/op 2.45
Object get x1000 5.1690 ns/op 5.8840 ns/op 0.88
Map get x1000 5.9250 ns/op 6.2910 ns/op 0.94
Object set x1000 19.143 ns/op 27.979 ns/op 0.68
Map set x1000 16.516 ns/op 18.861 ns/op 0.88
Return object 10000 times 0.27980 ns/op 0.27980 ns/op 1.00
Throw Error 10000 times 3.8956 us/op 4.2839 us/op 0.91
toHex 100.66 ns/op 132.24 ns/op 0.76
Buffer.from 94.502 ns/op 123.20 ns/op 0.77
shared Buffer 67.344 ns/op 86.188 ns/op 0.78
fastMsgIdFn sha256 / 200 bytes 1.9280 us/op 2.1660 us/op 0.89
fastMsgIdFn h32 xxhash / 200 bytes 388.00 ns/op 212.00 ns/op 1.83
fastMsgIdFn h64 xxhash / 200 bytes 529.00 ns/op 264.00 ns/op 2.00
fastMsgIdFn sha256 / 1000 bytes 5.7880 us/op 7.1860 us/op 0.81
fastMsgIdFn h32 xxhash / 1000 bytes 501.00 ns/op 340.00 ns/op 1.47
fastMsgIdFn h64 xxhash / 1000 bytes 503.00 ns/op 344.00 ns/op 1.46
fastMsgIdFn sha256 / 10000 bytes 48.811 us/op 63.570 us/op 0.77
fastMsgIdFn h32 xxhash / 10000 bytes 1.8930 us/op 1.7720 us/op 1.07
fastMsgIdFn h64 xxhash / 10000 bytes 1.3230 us/op 1.1710 us/op 1.13
send data - 1000 256B messages 11.636 ms/op 15.203 ms/op 0.77
send data - 1000 512B messages 14.381 ms/op 19.191 ms/op 0.75
send data - 1000 1024B messages 20.050 ms/op 26.584 ms/op 0.75
send data - 1000 1200B messages 15.061 ms/op 24.775 ms/op 0.61
send data - 1000 2048B messages 17.656 ms/op 26.656 ms/op 0.66
send data - 1000 4096B messages 16.394 ms/op 26.598 ms/op 0.62
send data - 1000 16384B messages 22.810 ms/op 44.234 ms/op 0.52
send data - 1000 65536B messages 62.735 ms/op 109.31 ms/op 0.57
enrSubnets - fastDeserialize 64 bits 941.00 ns/op 890.00 ns/op 1.06
enrSubnets - ssz BitVector 64 bits 515.00 ns/op 309.00 ns/op 1.67
enrSubnets - fastDeserialize 4 bits 320.00 ns/op 129.00 ns/op 2.48
enrSubnets - ssz BitVector 4 bits 491.00 ns/op 310.00 ns/op 1.58
prioritizePeers score -10:0 att 32-0.1 sync 2-0 101.81 us/op 119.32 us/op 0.85
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 125.58 us/op 140.38 us/op 0.89
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 201.60 us/op 200.22 us/op 1.01
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 350.87 us/op 382.50 us/op 0.92
prioritizePeers score 0:0 att 64-1 sync 4-1 418.62 us/op 455.32 us/op 0.92
array of 16000 items push then shift 1.2863 us/op 1.5768 us/op 0.82
LinkedList of 16000 items push then shift 6.3250 ns/op 6.8410 ns/op 0.92
array of 16000 items push then pop 62.114 ns/op 75.358 ns/op 0.82
LinkedList of 16000 items push then pop 6.2220 ns/op 6.7770 ns/op 0.92
array of 24000 items push then shift 1.9016 us/op 2.3280 us/op 0.82
LinkedList of 24000 items push then shift 6.4270 ns/op 6.7500 ns/op 0.95
array of 24000 items push then pop 89.841 ns/op 98.367 ns/op 0.91
LinkedList of 24000 items push then pop 6.0830 ns/op 6.6290 ns/op 0.92
intersect bitArray bitLen 8 5.1290 ns/op 6.1610 ns/op 0.83
intersect array and set length 8 31.082 ns/op 36.515 ns/op 0.85
intersect bitArray bitLen 128 26.043 ns/op 28.782 ns/op 0.90
intersect array and set length 128 542.53 ns/op 598.53 ns/op 0.91
bitArray.getTrueBitIndexes() bitLen 128 1.1390 us/op 999.00 ns/op 1.14
bitArray.getTrueBitIndexes() bitLen 248 1.7970 us/op 1.7250 us/op 1.04
bitArray.getTrueBitIndexes() bitLen 512 3.5650 us/op 3.5280 us/op 1.01
Buffer.concat 32 items 746.00 ns/op 770.00 ns/op 0.97
Uint8Array.set 32 items 1.0150 us/op 998.00 ns/op 1.02
Buffer.copy 1.9530 us/op 2.3710 us/op 0.82
Uint8Array.set - with subarray 1.5070 us/op 1.6110 us/op 0.94
Uint8Array.set - without subarray 909.00 ns/op 1.1080 us/op 0.82
getUint32 - dataview 378.00 ns/op 200.00 ns/op 1.89
getUint32 - manual 318.00 ns/op 120.00 ns/op 2.65
Set add up to 64 items then delete first 1.8672 us/op 2.1559 us/op 0.87
OrderedSet add up to 64 items then delete first 2.9099 us/op 3.2159 us/op 0.90
Set add up to 64 items then delete last 2.0501 us/op 2.3086 us/op 0.89
OrderedSet add up to 64 items then delete last 3.2360 us/op 3.6446 us/op 0.89
Set add up to 64 items then delete middle 2.0080 us/op 2.3377 us/op 0.86
OrderedSet add up to 64 items then delete middle 4.5056 us/op 5.1307 us/op 0.88
Set add up to 128 items then delete first 4.0117 us/op 5.0517 us/op 0.79
OrderedSet add up to 128 items then delete first 6.3059 us/op 7.9847 us/op 0.79
Set add up to 128 items then delete last 3.8514 us/op 5.1300 us/op 0.75
OrderedSet add up to 128 items then delete last 6.0654 us/op 7.3389 us/op 0.83
Set add up to 128 items then delete middle 3.8777 us/op 4.8469 us/op 0.80
OrderedSet add up to 128 items then delete middle 11.738 us/op 14.105 us/op 0.83
Set add up to 256 items then delete first 8.3437 us/op 11.048 us/op 0.76
OrderedSet add up to 256 items then delete first 12.618 us/op 16.003 us/op 0.79
Set add up to 256 items then delete last 7.6985 us/op 9.8032 us/op 0.79
OrderedSet add up to 256 items then delete last 13.066 us/op 14.247 us/op 0.92
Set add up to 256 items then delete middle 7.7949 us/op 9.4802 us/op 0.82
OrderedSet add up to 256 items then delete middle 35.621 us/op 40.361 us/op 0.88
transfer serialized Status (84 B) 1.9380 us/op 2.1020 us/op 0.92
copy serialized Status (84 B) 1.1750 us/op 1.0850 us/op 1.08
transfer serialized SignedVoluntaryExit (112 B) 1.9510 us/op 2.1260 us/op 0.92
copy serialized SignedVoluntaryExit (112 B) 1.1870 us/op 1.1360 us/op 1.04
transfer serialized ProposerSlashing (416 B) 1.9590 us/op 2.3220 us/op 0.84
copy serialized ProposerSlashing (416 B) 1.5560 us/op 1.6920 us/op 0.92
transfer serialized Attestation (485 B) 2.2090 us/op 2.2560 us/op 0.98
copy serialized Attestation (485 B) 1.6540 us/op 1.9030 us/op 0.87
transfer serialized AttesterSlashing (33232 B) 2.3990 us/op 2.4310 us/op 0.99
copy serialized AttesterSlashing (33232 B) 2.7880 us/op 3.5420 us/op 0.79
transfer serialized Small SignedBeaconBlock (128000 B) 2.2680 us/op 3.0000 us/op 0.76
copy serialized Small SignedBeaconBlock (128000 B) 5.8190 us/op 8.3910 us/op 0.69
transfer serialized Avg SignedBeaconBlock (200000 B) 2.3700 us/op 3.3470 us/op 0.71
copy serialized Avg SignedBeaconBlock (200000 B) 8.0670 us/op 12.654 us/op 0.64
transfer serialized BlobsSidecar (524380 B) 3.0270 us/op 3.1940 us/op 0.95
copy serialized BlobsSidecar (524380 B) 66.371 us/op 97.422 us/op 0.68
transfer serialized Big SignedBeaconBlock (1000000 B) 3.4710 us/op 3.3270 us/op 1.04
copy serialized Big SignedBeaconBlock (1000000 B) 104.93 us/op 111.03 us/op 0.95
pass gossip attestations to forkchoice per slot 2.4176 ms/op 2.7337 ms/op 0.88
forkChoice updateHead vc 100000 bc 64 eq 0 376.03 us/op 452.98 us/op 0.83
forkChoice updateHead vc 600000 bc 64 eq 0 2.2686 ms/op 2.7881 ms/op 0.81
forkChoice updateHead vc 1000000 bc 64 eq 0 3.8781 ms/op 4.7630 ms/op 0.81
forkChoice updateHead vc 600000 bc 320 eq 0 2.2858 ms/op 2.8022 ms/op 0.82
forkChoice updateHead vc 600000 bc 1200 eq 0 2.2828 ms/op 2.8977 ms/op 0.79
forkChoice updateHead vc 600000 bc 7200 eq 0 2.4356 ms/op 3.1075 ms/op 0.78
forkChoice updateHead vc 600000 bc 64 eq 1000 9.5138 ms/op 10.473 ms/op 0.91
forkChoice updateHead vc 600000 bc 64 eq 10000 9.4280 ms/op 10.436 ms/op 0.90
forkChoice updateHead vc 600000 bc 64 eq 300000 11.210 ms/op 13.997 ms/op 0.80
computeDeltas 500000 validators 300 proto nodes 3.0639 ms/op 3.8845 ms/op 0.79
computeDeltas 500000 validators 1200 proto nodes 3.1005 ms/op 4.0302 ms/op 0.77
computeDeltas 500000 validators 7200 proto nodes 3.0095 ms/op 4.3708 ms/op 0.69
computeDeltas 750000 validators 300 proto nodes 4.6511 ms/op 6.3549 ms/op 0.73
computeDeltas 750000 validators 1200 proto nodes 4.6020 ms/op 6.1764 ms/op 0.75
computeDeltas 750000 validators 7200 proto nodes 4.7195 ms/op 6.1889 ms/op 0.76
computeDeltas 1400000 validators 300 proto nodes 8.8525 ms/op 11.826 ms/op 0.75
computeDeltas 1400000 validators 1200 proto nodes 8.6819 ms/op 11.726 ms/op 0.74
computeDeltas 1400000 validators 7200 proto nodes 8.5893 ms/op 12.077 ms/op 0.71
computeDeltas 2100000 validators 300 proto nodes 13.039 ms/op 18.484 ms/op 0.71
computeDeltas 2100000 validators 1200 proto nodes 13.027 ms/op 17.822 ms/op 0.73
computeDeltas 2100000 validators 7200 proto nodes 13.175 ms/op 17.876 ms/op 0.74
altair processAttestation - 250000 vs - 7PWei normalcase 1.7728 ms/op 2.3044 ms/op 0.77
altair processAttestation - 250000 vs - 7PWei worstcase 2.5270 ms/op 4.0339 ms/op 0.63
altair processAttestation - setStatus - 1/6 committees join 106.59 us/op 153.32 us/op 0.70
altair processAttestation - setStatus - 1/3 committees join 196.28 us/op 295.34 us/op 0.66
altair processAttestation - setStatus - 1/2 committees join 286.40 us/op 397.31 us/op 0.72
altair processAttestation - setStatus - 2/3 committees join 353.83 us/op 471.44 us/op 0.75
altair processAttestation - setStatus - 4/5 committees join 496.21 us/op 684.66 us/op 0.72
altair processAttestation - setStatus - 100% committees join 587.04 us/op 796.95 us/op 0.74
altair processBlock - 250000 vs - 7PWei normalcase 4.4642 ms/op 5.9806 ms/op 0.75
altair processBlock - 250000 vs - 7PWei normalcase hashState 31.610 ms/op 33.115 ms/op 0.95
altair processBlock - 250000 vs - 7PWei worstcase 38.660 ms/op 45.045 ms/op 0.86
altair processBlock - 250000 vs - 7PWei worstcase hashState 87.067 ms/op 99.938 ms/op 0.87
phase0 processBlock - 250000 vs - 7PWei normalcase 1.8573 ms/op 1.9397 ms/op 0.96
phase0 processBlock - 250000 vs - 7PWei worstcase 22.331 ms/op 27.116 ms/op 0.82
altair processEth1Data - 250000 vs - 7PWei normalcase 277.44 us/op 371.43 us/op 0.75
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 5.9020 us/op 9.8960 us/op 0.60
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 38.810 us/op 65.099 us/op 0.60
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 13.259 us/op 19.625 us/op 0.68
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 8.2810 us/op 9.3570 us/op 0.89
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 91.632 us/op 199.96 us/op 0.46
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.5048 ms/op 1.9323 ms/op 0.78
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.9432 ms/op 2.4765 ms/op 0.78
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.0098 ms/op 2.4610 ms/op 0.82
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.9409 ms/op 5.7456 ms/op 0.69
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.3272 ms/op 2.5243 ms/op 0.92
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.0943 ms/op 4.9777 ms/op 0.82
Tree 40 250000 create 472.51 ms/op 463.17 ms/op 1.02
Tree 40 250000 get(125000) 106.82 ns/op 148.95 ns/op 0.72
Tree 40 250000 set(125000) 1.5407 us/op 1.6391 us/op 0.94
Tree 40 250000 toArray() 20.669 ms/op 20.314 ms/op 1.02
Tree 40 250000 iterate all - toArray() + loop 20.633 ms/op 20.540 ms/op 1.00
Tree 40 250000 iterate all - get(i) 53.656 ms/op 57.142 ms/op 0.94
Array 250000 create 3.8640 ms/op 2.6033 ms/op 1.48
Array 250000 clone - spread 733.98 us/op 1.5452 ms/op 0.48
Array 250000 get(125000) 0.59900 ns/op 0.43000 ns/op 1.39
Array 250000 set(125000) 0.63000 ns/op 0.44500 ns/op 1.42
Array 250000 iterate all - loop 78.165 us/op 86.494 us/op 0.90
phase0 afterProcessEpoch - 250000 vs - 7PWei 41.611 ms/op 44.131 ms/op 0.94
Array.fill - length 1000000 7.2207 ms/op 3.6686 ms/op 1.97
Array push - length 1000000 20.979 ms/op 15.856 ms/op 1.32
Array.get 0.26477 ns/op 0.30372 ns/op 0.87
Uint8Array.get 0.34575 ns/op 0.47284 ns/op 0.73
phase0 beforeProcessEpoch - 250000 vs - 7PWei 24.312 ms/op 19.205 ms/op 1.27
altair processEpoch - mainnet_e81889 308.53 ms/op 306.29 ms/op 1.01
mainnet_e81889 - altair beforeProcessEpoch 15.905 ms/op 20.661 ms/op 0.77
mainnet_e81889 - altair processJustificationAndFinalization 6.3480 us/op 6.7110 us/op 0.95
mainnet_e81889 - altair processInactivityUpdates 3.8425 ms/op 6.6194 ms/op 0.58
mainnet_e81889 - altair processRewardsAndPenalties 44.040 ms/op 42.822 ms/op 1.03
mainnet_e81889 - altair processRegistryUpdates 976.00 ns/op 772.00 ns/op 1.26
mainnet_e81889 - altair processSlashings 466.00 ns/op 212.00 ns/op 2.20
mainnet_e81889 - altair processEth1DataReset 413.00 ns/op 207.00 ns/op 2.00
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.0589 ms/op 1.2968 ms/op 0.82
mainnet_e81889 - altair processSlashingsReset 1.0770 us/op 1.1330 us/op 0.95
mainnet_e81889 - altair processRandaoMixesReset 1.4880 us/op 1.3500 us/op 1.10
mainnet_e81889 - altair processHistoricalRootsUpdate 416.00 ns/op 305.00 ns/op 1.36
mainnet_e81889 - altair processParticipationFlagUpdates 732.00 ns/op 571.00 ns/op 1.28
mainnet_e81889 - altair processSyncCommitteeUpdates 373.00 ns/op 159.00 ns/op 2.35
mainnet_e81889 - altair afterProcessEpoch 43.758 ms/op 47.070 ms/op 0.93
capella processEpoch - mainnet_e217614 970.22 ms/op 1.1647 s/op 0.83
mainnet_e217614 - capella beforeProcessEpoch 59.235 ms/op 65.001 ms/op 0.91
mainnet_e217614 - capella processJustificationAndFinalization 4.7380 us/op 5.5290 us/op 0.86
mainnet_e217614 - capella processInactivityUpdates 12.509 ms/op 17.936 ms/op 0.70
mainnet_e217614 - capella processRewardsAndPenalties 204.50 ms/op 199.05 ms/op 1.03
mainnet_e217614 - capella processRegistryUpdates 6.8040 us/op 7.8780 us/op 0.86
mainnet_e217614 - capella processSlashings 436.00 ns/op 199.00 ns/op 2.19
mainnet_e217614 - capella processEth1DataReset 419.00 ns/op 197.00 ns/op 2.13
mainnet_e217614 - capella processEffectiveBalanceUpdates 14.112 ms/op 4.4753 ms/op 3.15
mainnet_e217614 - capella processSlashingsReset 1.0810 us/op 997.00 ns/op 1.08
mainnet_e217614 - capella processRandaoMixesReset 1.3450 us/op 1.6710 us/op 0.80
mainnet_e217614 - capella processHistoricalRootsUpdate 414.00 ns/op 187.00 ns/op 2.21
mainnet_e217614 - capella processParticipationFlagUpdates 748.00 ns/op 641.00 ns/op 1.17
mainnet_e217614 - capella afterProcessEpoch 109.87 ms/op 121.94 ms/op 0.90
phase0 processEpoch - mainnet_e58758 329.21 ms/op 323.91 ms/op 1.02
mainnet_e58758 - phase0 beforeProcessEpoch 76.946 ms/op 118.83 ms/op 0.65
mainnet_e58758 - phase0 processJustificationAndFinalization 5.5740 us/op 10.853 us/op 0.51
mainnet_e58758 - phase0 processRewardsAndPenalties 33.762 ms/op 60.318 ms/op 0.56
mainnet_e58758 - phase0 processRegistryUpdates 2.8280 us/op 5.2560 us/op 0.54
mainnet_e58758 - phase0 processSlashings 416.00 ns/op 332.00 ns/op 1.25
mainnet_e58758 - phase0 processEth1DataReset 417.00 ns/op 223.00 ns/op 1.87
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.0220 ms/op 5.4681 ms/op 0.19
mainnet_e58758 - phase0 processSlashingsReset 1.1710 us/op 1.4880 us/op 0.79
mainnet_e58758 - phase0 processRandaoMixesReset 1.6590 us/op 1.5390 us/op 1.08
mainnet_e58758 - phase0 processHistoricalRootsUpdate 432.00 ns/op 199.00 ns/op 2.17
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.2190 us/op 1.3610 us/op 0.90
mainnet_e58758 - phase0 afterProcessEpoch 32.971 ms/op 43.219 ms/op 0.76
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4789 ms/op 2.0802 ms/op 0.71
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5318 ms/op 8.6332 ms/op 0.18
altair processInactivityUpdates - 250000 normalcase 17.474 ms/op 22.488 ms/op 0.78
altair processInactivityUpdates - 250000 worstcase 21.633 ms/op 35.615 ms/op 0.61
phase0 processRegistryUpdates - 250000 normalcase 6.4250 us/op 15.632 us/op 0.41
phase0 processRegistryUpdates - 250000 badcase_full_deposits 303.59 us/op 590.29 us/op 0.51
phase0 processRegistryUpdates - 250000 worstcase 0.5 105.08 ms/op 181.75 ms/op 0.58
altair processRewardsAndPenalties - 250000 normalcase 30.046 ms/op 42.115 ms/op 0.71
altair processRewardsAndPenalties - 250000 worstcase 25.475 ms/op 42.564 ms/op 0.60
phase0 getAttestationDeltas - 250000 normalcase 5.5543 ms/op 27.975 ms/op 0.20
phase0 getAttestationDeltas - 250000 worstcase 5.2209 ms/op 10.109 ms/op 0.52
phase0 processSlashings - 250000 worstcase 97.638 us/op 155.91 us/op 0.63
altair processSyncCommitteeUpdates - 250000 10.041 ms/op 19.602 ms/op 0.51
BeaconState.hashTreeRoot - No change 446.00 ns/op 392.00 ns/op 1.14
BeaconState.hashTreeRoot - 1 full validator 83.235 us/op 160.53 us/op 0.52
BeaconState.hashTreeRoot - 32 full validator 819.63 us/op 1.4254 ms/op 0.58
BeaconState.hashTreeRoot - 512 full validator 11.001 ms/op 19.064 ms/op 0.58
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 132.67 us/op 148.92 us/op 0.89
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.5976 ms/op 2.3850 ms/op 0.67
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 27.243 ms/op 36.075 ms/op 0.76
BeaconState.hashTreeRoot - 1 balances 72.997 us/op 93.015 us/op 0.78
BeaconState.hashTreeRoot - 32 balances 834.35 us/op 1.0064 ms/op 0.83
BeaconState.hashTreeRoot - 512 balances 9.9051 ms/op 13.593 ms/op 0.73
BeaconState.hashTreeRoot - 250000 balances 147.49 ms/op 260.71 ms/op 0.57
aggregationBits - 2048 els - zipIndexesInBitList 21.141 us/op 34.211 us/op 0.62
byteArrayEquals 32 49.085 ns/op 80.704 ns/op 0.61
Buffer.compare 32 16.043 ns/op 23.841 ns/op 0.67
byteArrayEquals 1024 1.3025 us/op 2.4504 us/op 0.53
Buffer.compare 1024 24.579 ns/op 35.928 ns/op 0.68
byteArrayEquals 16384 20.823 us/op 31.588 us/op 0.66
Buffer.compare 16384 180.66 ns/op 232.10 ns/op 0.78
byteArrayEquals 123687377 156.20 ms/op 239.70 ms/op 0.65
Buffer.compare 123687377 6.0089 ms/op 14.164 ms/op 0.42
byteArrayEquals 32 - diff last byte 48.556 ns/op 60.002 ns/op 0.81
Buffer.compare 32 - diff last byte 16.335 ns/op 19.473 ns/op 0.84
byteArrayEquals 1024 - diff last byte 1.2969 us/op 2.0408 us/op 0.64
Buffer.compare 1024 - diff last byte 34.074 ns/op 36.273 ns/op 0.94
byteArrayEquals 16384 - diff last byte 20.512 us/op 29.637 us/op 0.69
Buffer.compare 16384 - diff last byte 204.25 ns/op 233.03 ns/op 0.88
byteArrayEquals 123687377 - diff last byte 153.29 ms/op 261.50 ms/op 0.59
Buffer.compare 123687377 - diff last byte 9.6550 ms/op 16.294 ms/op 0.59
byteArrayEquals 32 - random bytes 5.0460 ns/op 8.8780 ns/op 0.57
Buffer.compare 32 - random bytes 16.193 ns/op 36.891 ns/op 0.44
byteArrayEquals 1024 - random bytes 5.0920 ns/op 7.3250 ns/op 0.70
Buffer.compare 1024 - random bytes 16.128 ns/op 29.003 ns/op 0.56
byteArrayEquals 16384 - random bytes 5.0590 ns/op 5.8380 ns/op 0.87
Buffer.compare 16384 - random bytes 16.461 ns/op 28.483 ns/op 0.58
byteArrayEquals 123687377 - random bytes 9.9200 ns/op 10.190 ns/op 0.97
Buffer.compare 123687377 - random bytes 23.140 ns/op 31.810 ns/op 0.73
regular array get 100000 times 31.985 us/op 50.009 us/op 0.64
wrappedArray get 100000 times 32.051 us/op 61.428 us/op 0.52
arrayWithProxy get 100000 times 9.4219 ms/op 24.346 ms/op 0.39
ssz.Root.equals 46.402 ns/op 52.223 ns/op 0.89
byteArrayEquals 43.649 ns/op 55.602 ns/op 0.79
Buffer.compare 9.5710 ns/op 11.893 ns/op 0.80
processSlot - 1 slots 13.821 us/op 16.420 us/op 0.84
processSlot - 32 slots 2.2772 ms/op 3.8864 ms/op 0.59
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 4.4739 ms/op 8.2104 ms/op 0.54
getCommitteeAssignments - req 1 vs - 250000 vc 1.9009 ms/op 2.7541 ms/op 0.69
getCommitteeAssignments - req 100 vs - 250000 vc 3.7546 ms/op 5.5838 ms/op 0.67
getCommitteeAssignments - req 1000 vs - 250000 vc 3.9884 ms/op 5.4239 ms/op 0.74
findModifiedValidators - 10000 modified validators 1.0484 s/op 1.1818 s/op 0.89
findModifiedValidators - 1000 modified validators 565.30 ms/op 890.97 ms/op 0.63
findModifiedValidators - 100 modified validators 277.56 ms/op 544.80 ms/op 0.51
findModifiedValidators - 10 modified validators 177.68 ms/op 332.04 ms/op 0.54
findModifiedValidators - 1 modified validators 189.98 ms/op 394.31 ms/op 0.48
findModifiedValidators - no difference 315.57 ms/op 497.70 ms/op 0.63
compare ViewDUs 7.8961 s/op 10.313 s/op 0.77
compare each validator Uint8Array 1.7650 s/op 2.4573 s/op 0.72
compare ViewDU to Uint8Array 1.3937 s/op 1.7035 s/op 0.82
migrate state 1000000 validators, 24 modified, 0 new 1.0070 s/op 1.2904 s/op 0.78
migrate state 1000000 validators, 1700 modified, 1000 new 1.1287 s/op 1.8659 s/op 0.60
migrate state 1000000 validators, 3400 modified, 2000 new 1.4000 s/op 1.7044 s/op 0.82
migrate state 1500000 validators, 24 modified, 0 new 922.80 ms/op 1.4150 s/op 0.65
migrate state 1500000 validators, 1700 modified, 1000 new 1.2211 s/op 1.7497 s/op 0.70
migrate state 1500000 validators, 3400 modified, 2000 new 1.3943 s/op 2.1322 s/op 0.65
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 6.3400 ns/op 6.2600 ns/op 1.01
state getBlockRootAtSlot - 250000 vs - 7PWei 521.95 ns/op 672.53 ns/op 0.78
naive computeProposerIndex 100000 validators 45.099 ms/op 97.358 ms/op 0.46
computeProposerIndex 100000 validators 1.2908 ms/op 2.5086 ms/op 0.51
naiveGetNextSyncCommitteeIndices 1000 validators 6.5227 s/op 15.791 s/op 0.41
getNextSyncCommitteeIndices 1000 validators 91.323 ms/op 439.96 ms/op 0.21
naiveGetNextSyncCommitteeIndices 10000 validators 6.4525 s/op 14.835 s/op 0.43
getNextSyncCommitteeIndices 10000 validators 102.00 ms/op 406.87 ms/op 0.25
naiveGetNextSyncCommitteeIndices 100000 validators 6.5922 s/op 15.264 s/op 0.43
getNextSyncCommitteeIndices 100000 validators 98.711 ms/op 293.57 ms/op 0.34
naive computeShuffledIndex 100000 validators 21.141 s/op 46.911 s/op 0.45
cached computeShuffledIndex 100000 validators 490.97 ms/op 836.70 ms/op 0.59
naive computeShuffledIndex 2000000 validators 476.29 s/op 641.10 s/op 0.74
cached computeShuffledIndex 2000000 validators 50.805 s/op 36.351 s/op 1.40
computeProposers - vc 250000 572.43 us/op 597.08 us/op 0.96
computeEpochShuffling - vc 250000 40.180 ms/op 42.449 ms/op 0.95
getNextSyncCommittee - vc 250000 9.9306 ms/op 10.495 ms/op 0.95
computeSigningRoot for AttestationData 26.979 us/op 21.062 us/op 1.28
hash AttestationData serialized data then Buffer.toString(base64) 1.3024 us/op 1.6417 us/op 0.79
toHexString serialized data 1.0752 us/op 1.2496 us/op 0.86
Buffer.toString(base64) 108.76 ns/op 151.56 ns/op 0.72
nodejs block root to RootHex using toHex 105.80 ns/op 155.84 ns/op 0.68
nodejs block root to RootHex using toRootHex 70.848 ns/op 85.737 ns/op 0.83
browser block root to RootHex using the deprecated toHexString 195.94 ns/op 217.03 ns/op 0.90
browser block root to RootHex using toHex 160.97 ns/op 173.62 ns/op 0.93
browser block root to RootHex using toRootHex 145.59 ns/op 162.49 ns/op 0.90

by benchmarkbot/action


if (!cells) {
cells = blobsBundle.blobs.map((blob) => kzg.computeCells(blob));
throw Error(`Missing cells for post-fulu fork=${fork}`);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wemeetagain
wemeetagain previously approved these changes Aug 12, 2025
@wemeetagain

Copy link
Copy Markdown
Member

Unit test failing

@codecov

codecov Bot commented Aug 12, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 15.55556% with 38 lines in your changes missing coverage. Please review.
✅ Project coverage is 54.22%. Comparing base (b85c316) to head (bd1a72b).
⚠️ Report is 2 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #8187      +/-   ##
============================================
- Coverage     54.23%   54.22%   -0.01%     
============================================
  Files           843      843              
  Lines         63365    63374       +9     
  Branches       4795     4795              
============================================
- Hits          34364    34363       -1     
- Misses        28925    28936      +11     
+ Partials         76       75       -1     
🚀 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 merged commit 1244f93 into unstable Aug 12, 2025
30 of 34 checks passed
@nflaig nflaig deleted the nflaig/post-merge-review branch August 12, 2025 14:35
@wemeetagain

Copy link
Copy Markdown
Member

🎉 This PR is included in v1.34.0 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants