这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@nazarhussain
Copy link
Contributor

@nazarhussain nazarhussain commented Jun 20, 2025

Motivation

Use the more type aware version of Biome to get benefit from type safety rules.

Description

  • Keep the rules matching to previous behavior
  • Add explanation to all ignore as it's required in new version

Steps to test or reproduce

Run all tests

@github-actions
Copy link
Contributor

github-actions bot commented Jun 20, 2025

⚠️ Performance Alert ⚠️

Possible performance regression was detected for some benchmarks.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold.

Benchmark suite Current: 648ab45 Previous: 684db9f Ratio
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 16.388 us/op 5.3040 us/op 3.09
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 9.5254 ms/op 1.4939 ms/op 6.38
phase0 getAttestationDeltas - 250000 normalcase 21.878 ms/op 6.5306 ms/op 3.35
Buffer.compare 123687377 19.075 ms/op 6.0322 ms/op 3.16
Full benchmark results
Benchmark suite Current: 648ab45 Previous: 684db9f Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.0482 ms/op 743.61 us/op 1.41
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 38.639 us/op 29.296 us/op 1.32
BLS verify - blst 883.44 us/op 853.00 us/op 1.04
BLS verifyMultipleSignatures 3 - blst 1.2595 ms/op 1.2415 ms/op 1.01
BLS verifyMultipleSignatures 8 - blst 1.7739 ms/op 1.9871 ms/op 0.89
BLS verifyMultipleSignatures 32 - blst 6.6666 ms/op 4.0570 ms/op 1.64
BLS verifyMultipleSignatures 64 - blst 9.1120 ms/op 8.0418 ms/op 1.13
BLS verifyMultipleSignatures 128 - blst 20.324 ms/op 15.543 ms/op 1.31
BLS deserializing 10000 signatures 698.78 ms/op 602.29 ms/op 1.16
BLS deserializing 100000 signatures 6.8796 s/op 6.0731 s/op 1.13
BLS verifyMultipleSignatures - same message - 3 - blst 880.28 us/op 935.93 us/op 0.94
BLS verifyMultipleSignatures - same message - 8 - blst 982.50 us/op 934.73 us/op 1.05
BLS verifyMultipleSignatures - same message - 32 - blst 1.6793 ms/op 1.5729 ms/op 1.07
BLS verifyMultipleSignatures - same message - 64 - blst 2.5442 ms/op 2.4577 ms/op 1.04
BLS verifyMultipleSignatures - same message - 128 - blst 4.3484 ms/op 3.9952 ms/op 1.09
BLS aggregatePubkeys 32 - blst 19.152 us/op 16.889 us/op 1.13
BLS aggregatePubkeys 128 - blst 67.992 us/op 59.439 us/op 1.14
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 47.219 ms/op 37.730 ms/op 1.25
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 43.737 ms/op 33.097 ms/op 1.32
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 36.490 ms/op 30.787 ms/op 1.19
getSlashingsAndExits - default max 78.355 us/op 48.616 us/op 1.61
getSlashingsAndExits - 2k 334.92 us/op 197.68 us/op 1.69
proposeBlockBody type=full, size=empty 5.6574 ms/op 4.9602 ms/op 1.14
isKnown best case - 1 super set check 211.00 ns/op 396.00 ns/op 0.53
isKnown normal case - 2 super set checks 204.00 ns/op 401.00 ns/op 0.51
isKnown worse case - 16 super set checks 204.00 ns/op 403.00 ns/op 0.51
InMemoryCheckpointStateCache - add get delete 2.4060 us/op 2.4320 us/op 0.99
validate api signedAggregateAndProof - struct 1.3803 ms/op 1.4667 ms/op 0.94
validate gossip signedAggregateAndProof - struct 1.4961 ms/op 1.6130 ms/op 0.93
batch validate gossip attestation - vc 640000 - chunk 32 117.86 us/op 106.52 us/op 1.11
batch validate gossip attestation - vc 640000 - chunk 64 102.98 us/op 93.324 us/op 1.10
batch validate gossip attestation - vc 640000 - chunk 128 94.989 us/op 82.202 us/op 1.16
batch validate gossip attestation - vc 640000 - chunk 256 99.864 us/op 86.749 us/op 1.15
pickEth1Vote - no votes 945.78 us/op 746.59 us/op 1.27
pickEth1Vote - max votes 7.3250 ms/op 5.8988 ms/op 1.24
pickEth1Vote - Eth1Data hashTreeRoot value x2048 12.168 ms/op 9.4309 ms/op 1.29
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 17.511 ms/op 15.704 ms/op 1.12
pickEth1Vote - Eth1Data fastSerialize value x2048 435.14 us/op 337.38 us/op 1.29
pickEth1Vote - Eth1Data fastSerialize tree x2048 1.9205 ms/op 1.7839 ms/op 1.08
bytes32 toHexString 356.00 ns/op 493.00 ns/op 0.72
bytes32 Buffer.toString(hex) 239.00 ns/op 401.00 ns/op 0.60
bytes32 Buffer.toString(hex) from Uint8Array 319.00 ns/op 481.00 ns/op 0.66
bytes32 Buffer.toString(hex) + 0x 233.00 ns/op 403.00 ns/op 0.58
Object access 1 prop 0.11600 ns/op 0.29500 ns/op 0.39
Map access 1 prop 0.12000 ns/op 0.30800 ns/op 0.39
Object get x1000 5.7290 ns/op 4.8850 ns/op 1.17
Map get x1000 6.5350 ns/op 5.5470 ns/op 1.18
Object set x1000 27.846 ns/op 20.465 ns/op 1.36
Map set x1000 19.955 ns/op 17.442 ns/op 1.14
Return object 10000 times 0.27870 ns/op 0.28610 ns/op 0.97
Throw Error 10000 times 4.2422 us/op 3.6321 us/op 1.17
toHex 135.53 ns/op 94.348 ns/op 1.44
Buffer.from 123.43 ns/op 88.853 ns/op 1.39
shared Buffer 84.462 ns/op 62.590 ns/op 1.35
fastMsgIdFn sha256 / 200 bytes 2.1430 us/op 1.9970 us/op 1.07
fastMsgIdFn h32 xxhash / 200 bytes 210.00 ns/op 379.00 ns/op 0.55
fastMsgIdFn h64 xxhash / 200 bytes 265.00 ns/op 421.00 ns/op 0.63
fastMsgIdFn sha256 / 1000 bytes 7.3750 us/op 5.6220 us/op 1.31
fastMsgIdFn h32 xxhash / 1000 bytes 340.00 ns/op 489.00 ns/op 0.70
fastMsgIdFn h64 xxhash / 1000 bytes 333.00 ns/op 481.00 ns/op 0.69
fastMsgIdFn sha256 / 10000 bytes 64.712 us/op 47.136 us/op 1.37
fastMsgIdFn h32 xxhash / 10000 bytes 1.8500 us/op 1.8580 us/op 1.00
fastMsgIdFn h64 xxhash / 10000 bytes 1.2200 us/op 1.3020 us/op 0.94
send data - 1000 256B messages 17.069 ms/op 15.509 ms/op 1.10
send data - 1000 512B messages 23.051 ms/op 18.626 ms/op 1.24
send data - 1000 1024B messages 30.238 ms/op 25.476 ms/op 1.19
send data - 1000 1200B messages 24.891 ms/op 19.920 ms/op 1.25
send data - 1000 2048B messages 27.731 ms/op 20.114 ms/op 1.38
send data - 1000 4096B messages 32.218 ms/op 21.629 ms/op 1.49
send data - 1000 16384B messages 44.915 ms/op 31.471 ms/op 1.43
send data - 1000 65536B messages 118.36 ms/op 92.304 ms/op 1.28
enrSubnets - fastDeserialize 64 bits 893.00 ns/op 976.00 ns/op 0.91
enrSubnets - ssz BitVector 64 bits 324.00 ns/op 489.00 ns/op 0.66
enrSubnets - fastDeserialize 4 bits 137.00 ns/op 312.00 ns/op 0.44
enrSubnets - ssz BitVector 4 bits 325.00 ns/op 483.00 ns/op 0.67
prioritizePeers score -10:0 att 32-0.1 sync 2-0 236.70 us/op 197.59 us/op 1.20
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 265.50 us/op 233.31 us/op 1.14
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 388.98 us/op 382.39 us/op 1.02
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 735.98 us/op 672.30 us/op 1.09
prioritizePeers score 0:0 att 64-1 sync 4-1 871.43 us/op 845.05 us/op 1.03
array of 16000 items push then shift 1.6289 us/op 1.3238 us/op 1.23
LinkedList of 16000 items push then shift 7.9050 ns/op 6.4030 ns/op 1.23
array of 16000 items push then pop 84.492 ns/op 69.203 ns/op 1.22
LinkedList of 16000 items push then pop 7.4460 ns/op 6.2050 ns/op 1.20
array of 24000 items push then shift 2.4208 us/op 1.9084 us/op 1.27
LinkedList of 24000 items push then shift 7.7370 ns/op 6.9530 ns/op 1.11
array of 24000 items push then pop 115.93 ns/op 97.760 ns/op 1.19
LinkedList of 24000 items push then pop 7.1340 ns/op 6.2560 ns/op 1.14
intersect bitArray bitLen 8 6.4400 ns/op 5.2270 ns/op 1.23
intersect array and set length 8 38.096 ns/op 31.617 ns/op 1.20
intersect bitArray bitLen 128 30.101 ns/op 25.760 ns/op 1.17
intersect array and set length 128 638.16 ns/op 526.74 ns/op 1.21
bitArray.getTrueBitIndexes() bitLen 128 1.1070 us/op 1.1630 us/op 0.95
bitArray.getTrueBitIndexes() bitLen 248 1.9720 us/op 1.8760 us/op 1.05
bitArray.getTrueBitIndexes() bitLen 512 4.1500 us/op 3.6950 us/op 1.12
Buffer.concat 32 items 709.00 ns/op 852.00 ns/op 0.83
Uint8Array.set 32 items 1.8680 us/op 950.00 ns/op 1.97
Buffer.copy 2.9770 us/op 1.8380 us/op 1.62
Uint8Array.set - with subarray 3.1950 us/op 1.5220 us/op 2.10
Uint8Array.set - without subarray 1.5210 us/op 934.00 ns/op 1.63
getUint32 - dataview 195.00 ns/op 367.00 ns/op 0.53
getUint32 - manual 126.00 ns/op 300.00 ns/op 0.42
Set add up to 64 items then delete first 2.7193 us/op 1.9633 us/op 1.39
OrderedSet add up to 64 items then delete first 3.7884 us/op 2.8119 us/op 1.35
Set add up to 64 items then delete last 2.6564 us/op 2.4280 us/op 1.09
OrderedSet add up to 64 items then delete last 3.7279 us/op 3.7479 us/op 0.99
Set add up to 64 items then delete middle 2.6800 us/op 2.1187 us/op 1.26
OrderedSet add up to 64 items then delete middle 5.6529 us/op 6.1356 us/op 0.92
Set add up to 128 items then delete first 5.5567 us/op 6.1115 us/op 0.91
OrderedSet add up to 128 items then delete first 8.8387 us/op 6.3301 us/op 1.40
Set add up to 128 items then delete last 5.6387 us/op 4.1057 us/op 1.37
OrderedSet add up to 128 items then delete last 8.5234 us/op 6.5385 us/op 1.30
Set add up to 128 items then delete middle 5.6677 us/op 4.7070 us/op 1.20
OrderedSet add up to 128 items then delete middle 15.686 us/op 14.260 us/op 1.10
Set add up to 256 items then delete first 12.418 us/op 11.222 us/op 1.11
OrderedSet add up to 256 items then delete first 20.349 us/op 19.410 us/op 1.05
Set add up to 256 items then delete last 12.248 us/op 11.818 us/op 1.04
OrderedSet add up to 256 items then delete last 18.529 us/op 18.412 us/op 1.01
Set add up to 256 items then delete middle 12.366 us/op 9.5446 us/op 1.30
OrderedSet add up to 256 items then delete middle 46.574 us/op 43.588 us/op 1.07
transfer serialized Status (84 B) 2.3680 us/op 1.9280 us/op 1.23
copy serialized Status (84 B) 1.1900 us/op 1.1740 us/op 1.01
transfer serialized SignedVoluntaryExit (112 B) 2.1490 us/op 1.9440 us/op 1.11
copy serialized SignedVoluntaryExit (112 B) 1.1180 us/op 1.1910 us/op 0.94
transfer serialized ProposerSlashing (416 B) 2.2190 us/op 1.9740 us/op 1.12
copy serialized ProposerSlashing (416 B) 1.9110 us/op 1.4690 us/op 1.30
transfer serialized Attestation (485 B) 3.3710 us/op 2.0140 us/op 1.67
copy serialized Attestation (485 B) 1.9760 us/op 1.2290 us/op 1.61
transfer serialized AttesterSlashing (33232 B) 2.4620 us/op 2.2220 us/op 1.11
copy serialized AttesterSlashing (33232 B) 3.9770 us/op 3.6590 us/op 1.09
transfer serialized Small SignedBeaconBlock (128000 B) 3.1380 us/op 2.3490 us/op 1.34
copy serialized Small SignedBeaconBlock (128000 B) 9.5340 us/op 5.9480 us/op 1.60
transfer serialized Avg SignedBeaconBlock (200000 B) 3.4550 us/op 2.5450 us/op 1.36
copy serialized Avg SignedBeaconBlock (200000 B) 13.705 us/op 8.4910 us/op 1.61
transfer serialized BlobsSidecar (524380 B) 3.8970 us/op 3.5450 us/op 1.10
copy serialized BlobsSidecar (524380 B) 181.83 us/op 96.776 us/op 1.88
transfer serialized Big SignedBeaconBlock (1000000 B) 3.7490 us/op 4.0220 us/op 0.93
copy serialized Big SignedBeaconBlock (1000000 B) 122.06 us/op 126.22 us/op 0.97
pass gossip attestations to forkchoice per slot 2.7822 ms/op 2.5154 ms/op 1.11
forkChoice updateHead vc 100000 bc 64 eq 0 443.98 us/op 351.26 us/op 1.26
forkChoice updateHead vc 600000 bc 64 eq 0 2.9097 ms/op 2.6264 ms/op 1.11
forkChoice updateHead vc 1000000 bc 64 eq 0 4.9397 ms/op 4.2588 ms/op 1.16
forkChoice updateHead vc 600000 bc 320 eq 0 2.9502 ms/op 2.5421 ms/op 1.16
forkChoice updateHead vc 600000 bc 1200 eq 0 2.9006 ms/op 2.6048 ms/op 1.11
forkChoice updateHead vc 600000 bc 7200 eq 0 3.1132 ms/op 2.7018 ms/op 1.15
forkChoice updateHead vc 600000 bc 64 eq 1000 10.195 ms/op 9.6632 ms/op 1.06
forkChoice updateHead vc 600000 bc 64 eq 10000 9.9660 ms/op 9.7315 ms/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 300000 13.909 ms/op 13.158 ms/op 1.06
computeDeltas 500000 validators 300 proto nodes 3.9300 ms/op 3.1669 ms/op 1.24
computeDeltas 500000 validators 1200 proto nodes 4.0480 ms/op 3.1735 ms/op 1.28
computeDeltas 500000 validators 7200 proto nodes 4.1041 ms/op 3.1099 ms/op 1.32
computeDeltas 750000 validators 300 proto nodes 6.6328 ms/op 4.8317 ms/op 1.37
computeDeltas 750000 validators 1200 proto nodes 6.8587 ms/op 4.7288 ms/op 1.45
computeDeltas 750000 validators 7200 proto nodes 7.7998 ms/op 4.7497 ms/op 1.64
computeDeltas 1400000 validators 300 proto nodes 16.724 ms/op 9.1918 ms/op 1.82
computeDeltas 1400000 validators 1200 proto nodes 14.650 ms/op 9.2876 ms/op 1.58
computeDeltas 1400000 validators 7200 proto nodes 15.622 ms/op 9.0703 ms/op 1.72
computeDeltas 2100000 validators 300 proto nodes 27.591 ms/op 13.292 ms/op 2.08
computeDeltas 2100000 validators 1200 proto nodes 27.849 ms/op 13.246 ms/op 2.10
computeDeltas 2100000 validators 7200 proto nodes 26.885 ms/op 13.283 ms/op 2.02
altair processAttestation - 250000 vs - 7PWei normalcase 3.7525 ms/op 2.0777 ms/op 1.81
altair processAttestation - 250000 vs - 7PWei worstcase 5.9769 ms/op 2.6696 ms/op 2.24
altair processAttestation - setStatus - 1/6 committees join 238.73 us/op 116.86 us/op 2.04
altair processAttestation - setStatus - 1/3 committees join 532.05 us/op 229.00 us/op 2.32
altair processAttestation - setStatus - 1/2 committees join 465.81 us/op 308.10 us/op 1.51
altair processAttestation - setStatus - 2/3 committees join 803.50 us/op 425.28 us/op 1.89
altair processAttestation - setStatus - 4/5 committees join 724.82 us/op 587.80 us/op 1.23
altair processAttestation - setStatus - 100% committees join 1.1026 ms/op 668.47 us/op 1.65
altair processBlock - 250000 vs - 7PWei normalcase 10.374 ms/op 5.4351 ms/op 1.91
altair processBlock - 250000 vs - 7PWei normalcase hashState 56.466 ms/op 29.821 ms/op 1.89
altair processBlock - 250000 vs - 7PWei worstcase 60.167 ms/op 40.555 ms/op 1.48
altair processBlock - 250000 vs - 7PWei worstcase hashState 126.51 ms/op 98.590 ms/op 1.28
phase0 processBlock - 250000 vs - 7PWei normalcase 3.5883 ms/op 2.0119 ms/op 1.78
phase0 processBlock - 250000 vs - 7PWei worstcase 30.503 ms/op 24.418 ms/op 1.25
altair processEth1Data - 250000 vs - 7PWei normalcase 393.70 us/op 289.98 us/op 1.36
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 16.388 us/op 5.3040 us/op 3.09
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 64.715 us/op 40.675 us/op 1.59
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 24.403 us/op 11.843 us/op 2.06
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 22.008 us/op 7.6540 us/op 2.88
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 248.49 us/op 154.94 us/op 1.60
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 2.4111 ms/op 1.3754 ms/op 1.75
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 3.8081 ms/op 1.9000 ms/op 2.00
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 3.2387 ms/op 2.2304 ms/op 1.45
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 7.8670 ms/op 4.5234 ms/op 1.74
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.6225 ms/op 1.7918 ms/op 2.02
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 8.7082 ms/op 3.9826 ms/op 2.19
Tree 40 250000 create 976.65 ms/op 352.31 ms/op 2.77
Tree 40 250000 get(125000) 161.05 ns/op 114.82 ns/op 1.40
Tree 40 250000 set(125000) 3.0188 us/op 1.2303 us/op 2.45
Tree 40 250000 toArray() 32.171 ms/op 22.496 ms/op 1.43
Tree 40 250000 iterate all - toArray() + loop 38.825 ms/op 20.367 ms/op 1.91
Tree 40 250000 iterate all - get(i) 68.374 ms/op 51.853 ms/op 1.32
Array 250000 create 4.3861 ms/op 2.6689 ms/op 1.64
Array 250000 clone - spread 6.2019 ms/op 700.74 us/op 8.85
Array 250000 get(125000) 0.51700 ns/op 0.60700 ns/op 0.85
Array 250000 set(125000) 0.74700 ns/op 0.61800 ns/op 1.21
Array 250000 iterate all - loop 107.94 us/op 79.557 us/op 1.36
phase0 afterProcessEpoch - 250000 vs - 7PWei 44.505 ms/op 39.575 ms/op 1.12
Array.fill - length 1000000 7.4473 ms/op 2.5583 ms/op 2.91
Array push - length 1000000 29.991 ms/op 11.824 ms/op 2.54
Array.get 0.33688 ns/op 0.27199 ns/op 1.24
Uint8Array.get 0.57491 ns/op 0.35603 ns/op 1.61
phase0 beforeProcessEpoch - 250000 vs - 7PWei 29.436 ms/op 19.817 ms/op 1.49
altair processEpoch - mainnet_e81889 384.22 ms/op 226.86 ms/op 1.69
mainnet_e81889 - altair beforeProcessEpoch 27.845 ms/op 15.007 ms/op 1.86
mainnet_e81889 - altair processJustificationAndFinalization 8.2370 us/op 4.4710 us/op 1.84
mainnet_e81889 - altair processInactivityUpdates 10.052 ms/op 3.5136 ms/op 2.86
mainnet_e81889 - altair processRewardsAndPenalties 51.160 ms/op 34.718 ms/op 1.47
mainnet_e81889 - altair processRegistryUpdates 976.00 ns/op 857.00 ns/op 1.14
mainnet_e81889 - altair processSlashings 221.00 ns/op 400.00 ns/op 0.55
mainnet_e81889 - altair processEth1DataReset 281.00 ns/op 394.00 ns/op 0.71
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.3108 ms/op 962.53 us/op 1.36
mainnet_e81889 - altair processSlashingsReset 1.2720 us/op 956.00 ns/op 1.33
mainnet_e81889 - altair processRandaoMixesReset 1.3180 us/op 1.2710 us/op 1.04
mainnet_e81889 - altair processHistoricalRootsUpdate 205.00 ns/op 394.00 ns/op 0.52
mainnet_e81889 - altair processParticipationFlagUpdates 760.00 ns/op 689.00 ns/op 1.10
mainnet_e81889 - altair processSyncCommitteeUpdates 195.00 ns/op 354.00 ns/op 0.55
mainnet_e81889 - altair afterProcessEpoch 51.223 ms/op 38.758 ms/op 1.32
capella processEpoch - mainnet_e217614 1.2635 s/op 895.69 ms/op 1.41
mainnet_e217614 - capella beforeProcessEpoch 135.31 ms/op 62.085 ms/op 2.18
mainnet_e217614 - capella processJustificationAndFinalization 9.3970 us/op 4.7150 us/op 1.99
mainnet_e217614 - capella processInactivityUpdates 22.725 ms/op 12.208 ms/op 1.86
mainnet_e217614 - capella processRewardsAndPenalties 278.74 ms/op 191.14 ms/op 1.46
mainnet_e217614 - capella processRegistryUpdates 10.490 us/op 5.2300 us/op 2.01
mainnet_e217614 - capella processSlashings 328.00 ns/op 401.00 ns/op 0.82
mainnet_e217614 - capella processEth1DataReset 446.00 ns/op 404.00 ns/op 1.10
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.1701 ms/op 3.2808 ms/op 1.58
mainnet_e217614 - capella processSlashingsReset 2.0540 us/op 1.0120 us/op 2.03
mainnet_e217614 - capella processRandaoMixesReset 2.2580 us/op 1.4760 us/op 1.53
mainnet_e217614 - capella processHistoricalRootsUpdate 571.00 ns/op 401.00 ns/op 1.42
mainnet_e217614 - capella processParticipationFlagUpdates 1.5360 us/op 703.00 ns/op 2.18
mainnet_e217614 - capella afterProcessEpoch 133.91 ms/op 110.19 ms/op 1.22
phase0 processEpoch - mainnet_e58758 511.13 ms/op 270.24 ms/op 1.89
mainnet_e58758 - phase0 beforeProcessEpoch 162.30 ms/op 69.318 ms/op 2.34
mainnet_e58758 - phase0 processJustificationAndFinalization 9.9570 us/op 5.5870 us/op 1.78
mainnet_e58758 - phase0 processRewardsAndPenalties 58.830 ms/op 37.931 ms/op 1.55
mainnet_e58758 - phase0 processRegistryUpdates 5.6910 us/op 3.2000 us/op 1.78
mainnet_e58758 - phase0 processSlashings 248.00 ns/op 414.00 ns/op 0.60
mainnet_e58758 - phase0 processEth1DataReset 296.00 ns/op 404.00 ns/op 0.73
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 6.4738 ms/op 1.0130 ms/op 6.39
mainnet_e58758 - phase0 processSlashingsReset 2.0370 us/op 1.1860 us/op 1.72
mainnet_e58758 - phase0 processRandaoMixesReset 2.1700 us/op 1.5400 us/op 1.41
mainnet_e58758 - phase0 processHistoricalRootsUpdate 307.00 ns/op 410.00 ns/op 0.75
mainnet_e58758 - phase0 processParticipationRecordUpdates 2.2310 us/op 1.1780 us/op 1.89
mainnet_e58758 - phase0 afterProcessEpoch 38.994 ms/op 34.386 ms/op 1.13
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.1534 ms/op 1.1204 ms/op 1.92
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 9.5254 ms/op 1.4939 ms/op 6.38
altair processInactivityUpdates - 250000 normalcase 30.889 ms/op 17.208 ms/op 1.80
altair processInactivityUpdates - 250000 worstcase 35.643 ms/op 21.871 ms/op 1.63
phase0 processRegistryUpdates - 250000 normalcase 17.926 us/op 7.7450 us/op 2.31
phase0 processRegistryUpdates - 250000 badcase_full_deposits 457.05 us/op 300.80 us/op 1.52
phase0 processRegistryUpdates - 250000 worstcase 0.5 175.64 ms/op 108.61 ms/op 1.62
altair processRewardsAndPenalties - 250000 normalcase 44.641 ms/op 27.915 ms/op 1.60
altair processRewardsAndPenalties - 250000 worstcase 44.766 ms/op 27.832 ms/op 1.61
phase0 getAttestationDeltas - 250000 normalcase 21.878 ms/op 6.5306 ms/op 3.35
phase0 getAttestationDeltas - 250000 worstcase 13.929 ms/op 6.0446 ms/op 2.30
phase0 processSlashings - 250000 worstcase 152.49 us/op 99.557 us/op 1.53
altair processSyncCommitteeUpdates - 250000 17.861 ms/op 11.370 ms/op 1.57
BeaconState.hashTreeRoot - No change 618.00 ns/op 519.00 ns/op 1.19
BeaconState.hashTreeRoot - 1 full validator 207.06 us/op 94.021 us/op 2.20
BeaconState.hashTreeRoot - 32 full validator 1.6104 ms/op 1.0105 ms/op 1.59
BeaconState.hashTreeRoot - 512 full validator 24.665 ms/op 13.564 ms/op 1.82
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 166.97 us/op 107.78 us/op 1.55
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.6441 ms/op 2.4992 ms/op 1.06
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 48.842 ms/op 32.531 ms/op 1.50
BeaconState.hashTreeRoot - 1 balances 127.96 us/op 80.505 us/op 1.59
BeaconState.hashTreeRoot - 32 balances 1.1647 ms/op 908.73 us/op 1.28
BeaconState.hashTreeRoot - 512 balances 15.955 ms/op 11.389 ms/op 1.40
BeaconState.hashTreeRoot - 250000 balances 302.34 ms/op 196.91 ms/op 1.54
aggregationBits - 2048 els - zipIndexesInBitList 31.545 us/op 20.732 us/op 1.52
byteArrayEquals 32 57.549 ns/op 49.443 ns/op 1.16
Buffer.compare 32 22.377 ns/op 15.764 ns/op 1.42
byteArrayEquals 1024 2.6454 us/op 1.3156 us/op 2.01
Buffer.compare 1024 35.486 ns/op 23.354 ns/op 1.52
byteArrayEquals 16384 28.202 us/op 19.756 us/op 1.43
Buffer.compare 16384 287.93 ns/op 197.28 ns/op 1.46
byteArrayEquals 123687377 233.98 ms/op 155.88 ms/op 1.50
Buffer.compare 123687377 19.075 ms/op 6.0322 ms/op 3.16
byteArrayEquals 32 - diff last byte 54.874 ns/op 45.840 ns/op 1.20
Buffer.compare 32 - diff last byte 18.062 ns/op 16.313 ns/op 1.11
byteArrayEquals 1024 - diff last byte 1.6893 us/op 1.2936 us/op 1.31
Buffer.compare 1024 - diff last byte 30.134 ns/op 23.573 ns/op 1.28
byteArrayEquals 16384 - diff last byte 27.562 us/op 20.790 us/op 1.33
Buffer.compare 16384 - diff last byte 287.08 ns/op 206.93 ns/op 1.39
byteArrayEquals 123687377 - diff last byte 245.34 ms/op 154.93 ms/op 1.58
Buffer.compare 123687377 - diff last byte 15.238 ms/op 6.6054 ms/op 2.31
byteArrayEquals 32 - random bytes 5.9540 ns/op 5.1150 ns/op 1.16
Buffer.compare 32 - random bytes 23.823 ns/op 16.097 ns/op 1.48
byteArrayEquals 1024 - random bytes 5.3690 ns/op 5.2870 ns/op 1.02
Buffer.compare 1024 - random bytes 17.871 ns/op 16.010 ns/op 1.12
byteArrayEquals 16384 - random bytes 5.2540 ns/op 5.1060 ns/op 1.03
Buffer.compare 16384 - random bytes 22.318 ns/op 15.787 ns/op 1.41
byteArrayEquals 123687377 - random bytes 6.6200 ns/op 8.4000 ns/op 0.79
Buffer.compare 123687377 - random bytes 19.080 ns/op 18.860 ns/op 1.01
regular array get 100000 times 38.087 us/op 30.594 us/op 1.24
wrappedArray get 100000 times 34.490 us/op 30.819 us/op 1.12
arrayWithProxy get 100000 times 12.598 ms/op 9.0756 ms/op 1.39
ssz.Root.equals 49.610 ns/op 44.746 ns/op 1.11
byteArrayEquals 48.773 ns/op 39.240 ns/op 1.24
Buffer.compare 10.928 ns/op 8.9860 ns/op 1.22
processSlot - 1 slots 11.028 us/op 11.117 us/op 0.99
processSlot - 32 slots 3.4329 ms/op 4.3645 ms/op 0.79
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 4.0371 ms/op 2.9759 ms/op 1.36
getCommitteeAssignments - req 1 vs - 250000 vc 2.1159 ms/op 1.8809 ms/op 1.12
getCommitteeAssignments - req 100 vs - 250000 vc 4.2430 ms/op 3.7213 ms/op 1.14
getCommitteeAssignments - req 1000 vs - 250000 vc 4.8403 ms/op 3.9963 ms/op 1.21
findModifiedValidators - 10000 modified validators 885.47 ms/op 804.90 ms/op 1.10
findModifiedValidators - 1000 modified validators 828.11 ms/op 736.84 ms/op 1.12
findModifiedValidators - 100 modified validators 323.52 ms/op 237.19 ms/op 1.36
findModifiedValidators - 10 modified validators 226.12 ms/op 148.38 ms/op 1.52
findModifiedValidators - 1 modified validators 173.08 ms/op 141.49 ms/op 1.22
findModifiedValidators - no difference 211.25 ms/op 147.31 ms/op 1.43
compare ViewDUs 6.6056 s/op 7.1273 s/op 0.93
compare each validator Uint8Array 1.4681 s/op 2.1360 s/op 0.69
compare ViewDU to Uint8Array 1.1717 s/op 1.3961 s/op 0.84
migrate state 1000000 validators, 24 modified, 0 new 930.60 ms/op 820.43 ms/op 1.13
migrate state 1000000 validators, 1700 modified, 1000 new 1.4390 s/op 1.1553 s/op 1.25
migrate state 1000000 validators, 3400 modified, 2000 new 1.4651 s/op 1.2355 s/op 1.19
migrate state 1500000 validators, 24 modified, 0 new 1.0080 s/op 817.71 ms/op 1.23
migrate state 1500000 validators, 1700 modified, 1000 new 1.4454 s/op 997.40 ms/op 1.45
migrate state 1500000 validators, 3400 modified, 2000 new 1.5166 s/op 1.2058 s/op 1.26
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.2900 ns/op 5.9600 ns/op 0.72
state getBlockRootAtSlot - 250000 vs - 7PWei 552.61 ns/op 504.43 ns/op 1.10
naive computeProposerIndex 100000 validators 63.092 ms/op 41.233 ms/op 1.53
computeProposerIndex 100000 validators 1.6348 ms/op 1.3160 ms/op 1.24
naiveGetNextSyncCommitteeIndices 1000 validators 8.3174 s/op 6.0540 s/op 1.37
getNextSyncCommitteeIndices 1000 validators 114.89 ms/op 86.903 ms/op 1.32
naiveGetNextSyncCommitteeIndices 10000 validators 8.1399 s/op 6.1571 s/op 1.32
getNextSyncCommitteeIndices 10000 validators 125.40 ms/op 94.437 ms/op 1.33
naiveGetNextSyncCommitteeIndices 100000 validators 8.4537 s/op 5.7325 s/op 1.47
getNextSyncCommitteeIndices 100000 validators 128.02 ms/op 95.334 ms/op 1.34
naive computeShuffledIndex 100000 validators 26.399 s/op 18.615 s/op 1.42
cached computeShuffledIndex 100000 validators 644.84 ms/op 506.57 ms/op 1.27
naive computeShuffledIndex 2000000 validators 623.62 s/op 499.09 s/op 1.25
cached computeShuffledIndex 2000000 validators 81.940 s/op 78.795 s/op 1.04
computeProposers - vc 250000 649.84 us/op 722.01 us/op 0.90
computeEpochShuffling - vc 250000 44.734 ms/op 45.194 ms/op 0.99
getNextSyncCommittee - vc 250000 12.077 ms/op 13.696 ms/op 0.88
computeSigningRoot for AttestationData 50.785 us/op 63.950 us/op 0.79
hash AttestationData serialized data then Buffer.toString(base64) 1.8416 us/op 1.8730 us/op 0.98
toHexString serialized data 1.6220 us/op 1.2556 us/op 1.29
Buffer.toString(base64) 188.78 ns/op 171.09 ns/op 1.10
nodejs block root to RootHex using toHex 143.51 ns/op 197.70 ns/op 0.73
nodejs block root to RootHex using toRootHex 94.803 ns/op 129.54 ns/op 0.73
nodejs fromhex(blob) 132.46 ms/op 159.69 ms/op 0.83
nodejs fromHexInto(blob) 109.05 ms/op 137.95 ms/op 0.79
browser block root to RootHex using the deprecated toHexString 568.34 ns/op 306.42 ns/op 1.85
browser block root to RootHex using toHex 442.78 ns/op 274.52 ns/op 1.61
browser block root to RootHex using toRootHex 174.46 ns/op 155.42 ns/op 1.12
browser fromHexInto(blob) 958.96 us/op 1.1508 ms/op 0.83
browser fromHex(blob) 888.17 ms/op 929.91 ms/op 0.96

by benchmarkbot/action

@codecov
Copy link

codecov bot commented Aug 25, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 54.14%. Comparing base (7332b1a) to head (f6bdc05).
⚠️ Report is 2 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #7982   +/-   ##
=========================================
  Coverage     54.14%   54.14%           
=========================================
  Files           849      849           
  Lines         63996    63997    +1     
  Branches       4850     4851    +1     
=========================================
+ Hits          34649    34650    +1     
  Misses        29270    29270           
  Partials         77       77           
🚀 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.

@nazarhussain nazarhussain marked this pull request as ready for review August 25, 2025 14:47
@nazarhussain nazarhussain requested a review from a team as a code owner August 25, 2025 14:47
nazarhussain and others added 2 commits September 2, 2025 12:34
Co-authored-by: Nico Flaig <nflaig@protonmail.com>
Co-authored-by: Nico Flaig <nflaig@protonmail.com>
Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

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

LGTM - we can keep remaining explanations as is but we should get into the habit of adding more useful explanations for new code.

Please make sure to do another merge of unstable before merging this branch.

@nazarhussain nazarhussain merged commit 22a04f4 into unstable Sep 2, 2025
18 of 20 checks passed
@nazarhussain nazarhussain deleted the nh/biome2-upgrade branch September 2, 2025 14:53
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.34.0 🎉

wemeetagain added a commit that referenced this pull request Sep 19, 2025
**Motivation**

Enable the organize import back which was disabled in #7982 to isolate
the changes for import ordering

**Description**

- Update the organize import config 
- Fix all linting errors

**Steps to test or reproduce**

- Run all tests

---------

Co-authored-by: Cayman <caymannava@gmail.com>
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.

4 participants