Skip to content

refactor: drop underscore prefix from private fields - #10208

Merged
spiral-ladder merged 1 commit into
unstablefrom
bing/yeet-underscores
Sep 29, 2026
Merged

spiral-ladder merged 1 commit into
unstablefrom
bing/yeet-underscores

Conversation

@spiral-ladder

Copy link
Copy Markdown
Member

Motivation

Our AGENTS.md officially states to not use underscore prefix for private fields:

Private fields: No underscore prefix (use private dirty, not private _dirty)

Source

This commit just cleans up existing patterns

Raised in #10189 (comment)

Description

clean up existing patterns of private underscores

AI Assistance Disclosure

autofixed with claude

Our AGENTS.md officially states to not use underscore prefix for private
fields:

> Private fields: No underscore prefix (use private dirty, not private _dirty)

[Source](https://github.com/ChainSafe/lodestar/blob/ef457417bd636749ea397413083f6977422adee1/AGENTS.md#general-conventions)

This commit just cleans up existing patterns

Raised in #10189 (comment)
@github-actions

Copy link
Copy Markdown
Contributor

Performance Report

鉁旓笍 no performance regression detected

Full benchmark results
Benchmark suite Current: 518f98c Previous: f2d839a Ratio
getPubkeys - native cache - req 1000 vs - 250000 vc 537.64 us/op 392.72 us/op 1.37
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 42.188 us/op 35.229 us/op 1.20
BLS verify - blst 850.67 us/op 849.16 us/op 1.00
BLS verifyMultipleSignatures 3 - blst 1.3270 ms/op 1.2682 ms/op 1.05
BLS verifyMultipleSignatures 8 - blst 2.2914 ms/op 2.1178 ms/op 1.08
BLS verifyMultipleSignatures 32 - blst 7.2694 ms/op 6.9019 ms/op 1.05
BLS verifyMultipleSignatures 64 - blst 13.967 ms/op 13.290 ms/op 1.05
BLS verifyMultipleSignatures 128 - blst 26.528 ms/op 25.259 ms/op 1.05
BLS deserializing 10000 signatures 650.04 ms/op 606.04 ms/op 1.07
BLS deserializing 100000 signatures 6.5550 s/op 6.1790 s/op 1.06
BLS verifyMultipleSignatures - same message - 3 - blst 961.66 us/op 907.33 us/op 1.06
BLS verifyMultipleSignatures - same message - 8 - blst 1.0952 ms/op 1.0200 ms/op 1.07
BLS verifyMultipleSignatures - same message - 32 - blst 1.7282 ms/op 1.5995 ms/op 1.08
BLS verifyMultipleSignatures - same message - 64 - blst 2.5263 ms/op 2.3710 ms/op 1.07
BLS verifyMultipleSignatures - same message - 128 - blst 4.1927 ms/op 3.9848 ms/op 1.05
BLS aggregatePubkeys 32 - blst 19.677 us/op 18.656 us/op 1.05
BLS aggregatePubkeys 128 - blst 71.548 us/op 67.551 us/op 1.06
getSlashingsAndExits - default max 44.191 us/op 34.663 us/op 1.27
getSlashingsAndExits - 2k 361.21 us/op 342.29 us/op 1.06
proposeBlockBody type=full, size=empty 1.2905 ms/op 1.6092 ms/op 0.80
isKnown best case - 1 super set check 170.00 ns/op 157.00 ns/op 1.08
isKnown normal case - 2 super set checks 161.00 ns/op 166.00 ns/op 0.97
isKnown worse case - 16 super set checks 161.00 ns/op 154.00 ns/op 1.05
validate api signedAggregateAndProof - struct 1.4962 ms/op 1.4680 ms/op 1.02
validate gossip signedAggregateAndProof - struct 1.5254 ms/op 1.4708 ms/op 1.04
batch validate gossip attestation - vc 640000 - chunk 32 123.81 us/op 120.34 us/op 1.03
batch validate gossip attestation - vc 640000 - chunk 64 105.98 us/op 102.92 us/op 1.03
batch validate gossip attestation - vc 640000 - chunk 128 94.619 us/op 93.835 us/op 1.01
batch validate gossip attestation - vc 640000 - chunk 256 96.241 us/op 94.805 us/op 1.02
bytes32 toHexString 279.00 ns/op 280.00 ns/op 1.00
bytes32 Buffer.toString(hex) 169.00 ns/op 159.00 ns/op 1.06
bytes32 Buffer.toString(hex) from Uint8Array 234.00 ns/op 224.00 ns/op 1.04
bytes32 Buffer.toString(hex) + 0x 167.00 ns/op 165.00 ns/op 1.01
Return object 10000 times 0.20770 ns/op 0.21440 ns/op 0.97
Throw Error 10000 times 3.2364 us/op 3.2649 us/op 0.99
toHex 93.224 ns/op 89.223 ns/op 1.04
Buffer.from 86.404 ns/op 81.233 ns/op 1.06
shared Buffer 57.243 ns/op 55.783 ns/op 1.03
fastMsgIdFn sha256 / 200 bytes 1.4450 us/op 1.4020 us/op 1.03
fastMsgIdFn h32 xxhash / 200 bytes 162.00 ns/op 153.00 ns/op 1.06
fastMsgIdFn h64 xxhash / 200 bytes 212.00 ns/op 199.00 ns/op 1.07
fastMsgIdFn sha256 / 1000 bytes 4.6730 us/op 4.5760 us/op 1.02
fastMsgIdFn h32 xxhash / 1000 bytes 246.00 ns/op 241.00 ns/op 1.02
fastMsgIdFn h64 xxhash / 1000 bytes 245.00 ns/op 245.00 ns/op 1.00
fastMsgIdFn sha256 / 10000 bytes 41.425 us/op 40.029 us/op 1.03
fastMsgIdFn h32 xxhash / 10000 bytes 1.2480 us/op 1.2270 us/op 1.02
fastMsgIdFn h64 xxhash / 10000 bytes 801.00 ns/op 799.00 ns/op 1.00
send data - 1000 256B messages 4.3917 ms/op 3.7343 ms/op 1.18
send data - 1000 512B messages 5.3557 ms/op 5.2118 ms/op 1.03
send data - 1000 1024B messages 5.3826 ms/op 5.4747 ms/op 0.98
send data - 1000 1200B messages 7.1625 ms/op 5.8443 ms/op 1.23
send data - 1000 2048B messages 11.225 ms/op 9.5235 ms/op 1.18
send data - 1000 4096B messages 58.610 ms/op 72.071 ms/op 0.81
send data - 1000 16384B messages 478.38 ms/op 383.65 ms/op 1.25
send data - 1000 65536B messages 1.8070 s/op 1.8753 s/op 0.96
enrSubnets - fastDeserialize 64 bits 726.00 ns/op 722.00 ns/op 1.01
enrSubnets - ssz BitVector 64 bits 255.00 ns/op 265.00 ns/op 0.96
enrSubnets - fastDeserialize 4 bits 97.000 ns/op 100.00 ns/op 0.97
enrSubnets - ssz BitVector 4 bits 261.00 ns/op 268.00 ns/op 0.97
prioritizePeers score -10:0 att 32-0.1 sync 2-0 213.06 us/op 197.43 us/op 1.08
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 241.24 us/op 224.23 us/op 1.08
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 351.92 us/op 327.64 us/op 1.07
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 617.41 us/op 566.77 us/op 1.09
prioritizePeers score 0:0 att 64-1 sync 4-1 721.14 us/op 668.07 us/op 1.08
archive index / 1 slot / archive root index lookup 22.736 us/op 17.935 us/op 1.27
archive index / 1 slot / archive block lookup, decode and hash 2.9192 ms/op 2.8013 ms/op 1.04
archive index / 1 slots / 1 columns / legacy 27.167 us/op 21.787 us/op 1.25
archive index / 1 slots / 1 columns / flat files 179.55 us/op 157.50 us/op 1.14
archive index / 1 slots / 8 columns / legacy 96.638 us/op 285.10 us/op 0.34
archive index / 1 slots / 8 columns / flat files 402.97 us/op 398.93 us/op 1.01
archive index / 1 slots / 128 columns / legacy 9.2754 ms/op 2.3160 ms/op 4.00
archive index / 1 slots / 128 columns / flat files 5.2529 ms/op 4.4325 ms/op 1.19
archive index / 8 slots / 1 columns / legacy 188.68 us/op 184.33 us/op 1.02
archive index / 8 slots / 1 columns / flat files 1.3862 ms/op 1.1966 ms/op 1.16
archive index / 8 slots / 8 columns / legacy 6.9661 ms/op 3.6378 ms/op 1.91
archive index / 8 slots / 8 columns / flat files 3.7258 ms/op 3.8710 ms/op 0.96
archive index / 8 slots / 128 columns / legacy 98.808 ms/op 105.87 ms/op 0.93
archive index / 8 slots / 128 columns / flat files 216.55 ms/op 268.19 ms/op 0.81
head state / 1 slot / archive root index lookup 21.424 us/op 18.998 us/op 1.13
head state / 1 slot / archive block lookup, decode and hash 2.8117 ms/op 3.1160 ms/op 0.90
head state / 1 slots / 1 columns / legacy 24.047 us/op 25.077 us/op 0.96
head state / 1 slots / 1 columns / flat files 159.13 us/op 132.91 us/op 1.20
head state / 1 slots / 8 columns / legacy 94.202 us/op 94.831 us/op 0.99
head state / 1 slots / 8 columns / flat files 385.47 us/op 380.48 us/op 1.01
head state / 1 slots / 128 columns / legacy 9.3622 ms/op 9.5578 ms/op 0.98
head state / 1 slots / 128 columns / flat files 4.8292 ms/op 6.2720 ms/op 0.77
head state / 8 slots / 1 columns / legacy 205.49 us/op 195.16 us/op 1.05
head state / 8 slots / 1 columns / flat files 1.1653 ms/op 1.0060 ms/op 1.16
head state / 8 slots / 8 columns / legacy 969.65 us/op 732.15 us/op 1.32
head state / 8 slots / 8 columns / flat files 3.5308 ms/op 4.2848 ms/op 0.82
head state / 8 slots / 128 columns / legacy 112.62 ms/op 116.85 ms/op 0.96
head state / 8 slots / 128 columns / flat files 341.11 ms/op 343.19 ms/op 0.99
array of 16000 items push then shift 1.3784 us/op 1.3041 us/op 1.06
LinkedList of 16000 items push then shift 8.4120 ns/op 7.7340 ns/op 1.09
array of 16000 items push then pop 86.790 ns/op 81.010 ns/op 1.07
LinkedList of 16000 items push then pop 6.7360 ns/op 6.1360 ns/op 1.10
array of 24000 items push then shift 2.0196 us/op 1.9054 us/op 1.06
LinkedList of 24000 items push then shift 8.0060 ns/op 7.2620 ns/op 1.10
array of 24000 items push then pop 122.64 ns/op 116.18 ns/op 1.06
LinkedList of 24000 items push then pop 6.6370 ns/op 6.1330 ns/op 1.08
intersect bitArray bitLen 8 4.0660 ns/op 3.8870 ns/op 1.05
intersect array and set length 8 31.004 ns/op 29.316 ns/op 1.06
intersect bitArray bitLen 128 24.503 ns/op 23.171 ns/op 1.06
intersect array and set length 128 491.83 ns/op 496.44 ns/op 0.99
bitArray.getTrueBitIndexes() bitLen 128 932.00 ns/op 939.00 ns/op 0.99
bitArray.getTrueBitIndexes() bitLen 248 1.6860 us/op 1.7690 us/op 0.95
bitArray.getTrueBitIndexes() bitLen 512 3.6540 us/op 3.6650 us/op 1.00
Full columns - reconstruct all 6 blobs 163.45 us/op 206.63 us/op 0.79
Full columns - reconstruct half of the blobs out of 6 79.039 us/op 17.515 ms/op 0.00
Full columns - reconstruct single blob out of 6 32.768 us/op 33.149 us/op 0.99
Half columns - reconstruct all 6 blobs 402.16 ms/op 394.43 ms/op 1.02
Half columns - reconstruct half of the blobs out of 6 201.90 ms/op 195.51 ms/op 1.03
Half columns - reconstruct single blob out of 6 73.082 ms/op 69.619 ms/op 1.05
Set add up to 64 items then delete first 1.5911 us/op 1.6300 us/op 0.98
OrderedSet add up to 64 items then delete first 2.4357 us/op 2.4887 us/op 0.98
Set add up to 64 items then delete last 1.7801 us/op 1.8272 us/op 0.97
OrderedSet add up to 64 items then delete last 2.7051 us/op 2.7545 us/op 0.98
Set add up to 64 items then delete middle 1.7853 us/op 1.8339 us/op 0.97
OrderedSet add up to 64 items then delete middle 4.1205 us/op 4.1863 us/op 0.98
Set add up to 128 items then delete first 3.5723 us/op 3.6314 us/op 0.98
OrderedSet add up to 128 items then delete first 5.5406 us/op 5.5877 us/op 0.99
Set add up to 128 items then delete last 3.4106 us/op 3.4728 us/op 0.98
OrderedSet add up to 128 items then delete last 5.1958 us/op 5.2772 us/op 0.98
Set add up to 128 items then delete middle 3.4312 us/op 3.4664 us/op 0.99
OrderedSet add up to 128 items then delete middle 10.893 us/op 11.191 us/op 0.97
Set add up to 256 items then delete first 7.0424 us/op 7.2122 us/op 0.98
OrderedSet add up to 256 items then delete first 12.197 us/op 12.531 us/op 0.97
Set add up to 256 items then delete last 6.7953 us/op 7.0134 us/op 0.97
OrderedSet add up to 256 items then delete last 11.683 us/op 11.606 us/op 1.01
Set add up to 256 items then delete middle 6.7810 us/op 6.8025 us/op 1.00
OrderedSet add up to 256 items then delete middle 34.611 us/op 34.048 us/op 1.02
runFastConfirmationRules vc:100000 bc:96 eq:0 4.4529 ms/op 5.0759 ms/op 0.88
runFastConfirmationRules vc:600000 bc:96 eq:0 38.376 ms/op 35.644 ms/op 1.08
runFastConfirmationRules vc:1000000 bc:96 eq:0 64.942 ms/op 58.084 ms/op 1.12
runFastConfirmationRules vc:600000 bc:320 eq:0 39.130 ms/op 37.020 ms/op 1.06
runFastConfirmationRules vc:100000 bc:96 eq:1000 1.2430 s/op 1.1220 s/op 1.11
pass gossip attestations to forkchoice per slot 2.5382 ms/op 3.0145 ms/op 0.84
forkChoice updateHead vc 100000 bc 64 eq 0 398.70 us/op 423.50 us/op 0.94
forkChoice updateHead vc 600000 bc 64 eq 0 2.3873 ms/op 2.4324 ms/op 0.98
forkChoice updateHead vc 1000000 bc 64 eq 0 4.0334 ms/op 4.2340 ms/op 0.95
forkChoice updateHead vc 600000 bc 320 eq 0 2.4316 ms/op 2.4534 ms/op 0.99
forkChoice updateHead vc 600000 bc 1200 eq 0 2.4249 ms/op 2.4939 ms/op 0.97
forkChoice updateHead vc 600000 bc 7200 eq 0 3.9764 ms/op 3.4465 ms/op 1.15
forkChoice updateHead vc 600000 bc 64 eq 1000 2.3985 ms/op 2.4350 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 10000 2.6341 ms/op 2.5229 ms/op 1.04
forkChoice updateHead vc 600000 bc 64 eq 300000 7.1212 ms/op 6.8491 ms/op 1.04
forkChoice updateHead vc 600000 bc 64 eq 0 gloas boosted 2.4566 ms/op 2.3985 ms/op 1.02
computeDeltas 1400000 validators 0% inactive 11.799 ms/op 12.179 ms/op 0.97
computeDeltas 1400000 validators 10% inactive 11.173 ms/op 11.440 ms/op 0.98
computeDeltas 1400000 validators 20% inactive 10.563 ms/op 10.747 ms/op 0.98
computeDeltas 1400000 validators 50% inactive 8.6590 ms/op 8.8991 ms/op 0.97
computeDeltas 2100000 validators 0% inactive 22.722 ms/op 18.339 ms/op 1.24
computeDeltas 2100000 validators 10% inactive 16.889 ms/op 17.291 ms/op 0.98
computeDeltas 2100000 validators 20% inactive 15.762 ms/op 16.205 ms/op 0.97
computeDeltas 2100000 validators 50% inactive 10.461 ms/op 10.631 ms/op 0.98
altair processAttestation - 250000 vs - 7PWei normalcase 2.6837 ms/op 1.8104 ms/op 1.48
altair processAttestation - 250000 vs - 7PWei worstcase 3.5213 ms/op 2.7534 ms/op 1.28
altair processAttestation - setStatus - 1/6 committees join 110.60 us/op 103.45 us/op 1.07
altair processAttestation - setStatus - 1/3 committees join 205.10 us/op 191.38 us/op 1.07
altair processAttestation - setStatus - 1/2 committees join 293.89 us/op 272.80 us/op 1.08
altair processAttestation - setStatus - 2/3 committees join 345.08 us/op 370.98 us/op 0.93
altair processAttestation - setStatus - 4/5 committees join 501.44 us/op 526.44 us/op 0.95
altair processAttestation - setStatus - 100% committees join 601.33 us/op 625.51 us/op 0.96
altair processBlock - 250000 vs - 7PWei normalcase 5.0936 ms/op 5.2507 ms/op 0.97
altair processBlock - 250000 vs - 7PWei normalcase hashState 24.302 ms/op 27.852 ms/op 0.87
altair processBlock - 250000 vs - 7PWei worstcase 26.789 ms/op 26.813 ms/op 1.00
altair processBlock - 250000 vs - 7PWei worstcase hashState 59.659 ms/op 64.523 ms/op 0.92
phase0 processBlock - 250000 vs - 7PWei normalcase 1.3566 ms/op 1.3862 ms/op 0.98
phase0 processBlock - 250000 vs - 7PWei worstcase 20.574 ms/op 20.838 ms/op 0.99
altair processEth1Data - 250000 vs - 7PWei normalcase 287.14 us/op 286.81 us/op 1.00
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:16 4.3530 us/op 3.2460 us/op 1.34
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:220 20.716 us/op 19.250 us/op 1.08
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:43 5.7070 us/op 5.3540 us/op 1.07
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:19 3.5950 us/op 3.6560 us/op 0.98
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1021 85.870 us/op 88.820 us/op 0.97
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11778 1.4165 ms/op 1.3985 ms/op 1.01
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.9327 ms/op 1.8081 ms/op 1.07
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.9180 ms/op 1.7959 ms/op 1.07
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.4903 ms/op 3.8422 ms/op 0.91
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.0120 ms/op 2.0885 ms/op 0.96
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.5691 ms/op 5.4997 ms/op 0.65
Tree 40 250000 create 358.51 ms/op 331.24 ms/op 1.08
Tree 40 250000 get(125000) 98.182 ns/op 92.072 ns/op 1.07
Tree 40 250000 set(125000) 1.0503 us/op 980.97 ns/op 1.07
Tree 40 250000 toArray() 17.776 ms/op 12.179 ms/op 1.46
Tree 40 250000 iterate all - toArray() + loop 15.864 ms/op 12.882 ms/op 1.23
Tree 40 250000 iterate all - get(i) 42.722 ms/op 39.681 ms/op 1.08
Array 250000 create 2.5283 ms/op 2.4648 ms/op 1.03
Array 250000 clone - spread 835.98 us/op 787.07 us/op 1.06
Array 250000 get(125000) 0.30500 ns/op 0.28700 ns/op 1.06
Array 250000 set(125000) 0.30400 ns/op 0.28800 ns/op 1.06
Array 250000 iterate all - loop 58.556 us/op 57.188 us/op 1.02
phase0 afterProcessEpoch - 250000 vs - 7PWei 70.543 ms/op 66.571 ms/op 1.06
Array.fill - length 1000000 3.8528 ms/op 3.9117 ms/op 0.98
Array push - length 1000000 13.156 ms/op 16.099 ms/op 0.82
Array.get 0.21105 ns/op 0.20890 ns/op 1.01
Uint8Array.get 0.24982 ns/op 0.24377 ns/op 1.02
phase0 beforeProcessEpoch - 250000 vs - 7PWei 19.769 ms/op 21.162 ms/op 0.93
altair processEpoch - mainnet_e81889 259.10 ms/op 262.02 ms/op 0.99
mainnet_e81889 - altair beforeProcessEpoch 44.639 ms/op 36.511 ms/op 1.22
mainnet_e81889 - altair processJustificationAndFinalization 5.4970 us/op 6.3280 us/op 0.87
mainnet_e81889 - altair processInactivityUpdates 6.1843 ms/op 3.4016 ms/op 1.82
mainnet_e81889 - altair processRewardsAndPenalties 18.611 ms/op 18.417 ms/op 1.01
mainnet_e81889 - altair processRegistryUpdates 553.00 ns/op 567.00 ns/op 0.98
mainnet_e81889 - altair processSlashings 136.00 ns/op 138.00 ns/op 0.99
mainnet_e81889 - altair processEth1DataReset 133.00 ns/op 136.00 ns/op 0.98
mainnet_e81889 - altair processEffectiveBalanceUpdates 6.7378 ms/op 6.5432 ms/op 1.03
mainnet_e81889 - altair processSlashingsReset 668.00 ns/op 672.00 ns/op 0.99
mainnet_e81889 - altair processRandaoMixesReset 971.00 ns/op 1.0250 us/op 0.95
mainnet_e81889 - altair processHistoricalRootsUpdate 137.00 ns/op 135.00 ns/op 1.01
mainnet_e81889 - altair processParticipationFlagUpdates 439.00 ns/op 449.00 ns/op 0.98
mainnet_e81889 - altair processSyncCommitteeUpdates 106.00 ns/op 113.00 ns/op 0.94
mainnet_e81889 - altair afterProcessEpoch 21.600 ms/op 22.258 ms/op 0.97
capella processEpoch - mainnet_e217614 760.23 ms/op 715.06 ms/op 1.06
mainnet_e217614 - capella beforeProcessEpoch 66.163 ms/op 57.669 ms/op 1.15
mainnet_e217614 - capella processJustificationAndFinalization 6.3270 us/op 5.4750 us/op 1.16
mainnet_e217614 - capella processInactivityUpdates 15.686 ms/op 14.744 ms/op 1.06
mainnet_e217614 - capella processRewardsAndPenalties 95.970 ms/op 96.850 ms/op 0.99
mainnet_e217614 - capella processRegistryUpdates 4.3870 us/op 4.4480 us/op 0.99
mainnet_e217614 - capella processSlashings 139.00 ns/op 138.00 ns/op 1.01
mainnet_e217614 - capella processEth1DataReset 134.00 ns/op 133.00 ns/op 1.01
mainnet_e217614 - capella processEffectiveBalanceUpdates 18.066 ms/op 21.266 ms/op 0.85
mainnet_e217614 - capella processSlashingsReset 657.00 ns/op 677.00 ns/op 0.97
mainnet_e217614 - capella processRandaoMixesReset 1.0180 us/op 1.0340 us/op 0.98
mainnet_e217614 - capella processHistoricalSummariesUpdate 133.00 ns/op 136.00 ns/op 0.98
mainnet_e217614 - capella processParticipationFlagUpdates 436.00 ns/op 451.00 ns/op 0.97
mainnet_e217614 - capella afterProcessEpoch 56.393 ms/op 57.745 ms/op 0.98
phase0 processEpoch - mainnet_e58758 223.30 ms/op 311.77 ms/op 0.72
mainnet_e58758 - phase0 beforeProcessEpoch 59.076 ms/op 68.158 ms/op 0.87
mainnet_e58758 - phase0 processJustificationAndFinalization 5.5420 us/op 6.2470 us/op 0.89
mainnet_e58758 - phase0 processRewardsAndPenalties 17.347 ms/op 17.355 ms/op 1.00
mainnet_e58758 - phase0 processRegistryUpdates 2.2340 us/op 2.2980 us/op 0.97
mainnet_e58758 - phase0 processSlashings 140.00 ns/op 138.00 ns/op 1.01
mainnet_e58758 - phase0 processEth1DataReset 145.00 ns/op 135.00 ns/op 1.07
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 853.77 us/op 2.1098 ms/op 0.40
mainnet_e58758 - phase0 processSlashingsReset 923.00 ns/op 947.00 ns/op 0.97
mainnet_e58758 - phase0 processRandaoMixesReset 1.1040 us/op 1.0930 us/op 1.01
mainnet_e58758 - phase0 processHistoricalRootsUpdate 144.00 ns/op 138.00 ns/op 1.04
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.0460 us/op 1.0750 us/op 0.97
mainnet_e58758 - phase0 afterProcessEpoch 18.470 ms/op 17.994 ms/op 1.03
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.0440 ms/op 996.39 us/op 1.05
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5445 ms/op 1.6278 ms/op 0.95
gloas processInactivityUpdates - 250000 inactivity leak all eligible missed target 11.649 ms/op 12.279 ms/op 0.95
phase0 processRegistryUpdates - 250000 normalcase 2.3420 us/op 2.3520 us/op 1.00
phase0 processRegistryUpdates - 250000 badcase_full_deposits 143.57 us/op 140.41 us/op 1.02
phase0 processRegistryUpdates - 250000 worstcase 0.5 67.026 ms/op 62.034 ms/op 1.08
altair processRewardsAndPenalties - 250000 normalcase 15.192 ms/op 14.839 ms/op 1.02
altair processRewardsAndPenalties - 250000 worstcase 14.977 ms/op 14.172 ms/op 1.06
phase0 getAttestationDeltas - 250000 normalcase 5.4582 ms/op 5.6888 ms/op 0.96
phase0 getAttestationDeltas - 250000 worstcase 5.5234 ms/op 5.7455 ms/op 0.96
phase0 processSlashings - 250000 worstcase 61.136 us/op 62.551 us/op 0.98
altair processSyncCommitteeUpdates - 250000 14.108 ms/op 14.084 ms/op 1.00
BeaconState.hashTreeRoot - No change 172.00 ns/op 173.00 ns/op 0.99
BeaconState.hashTreeRoot - 1 full validator 77.504 us/op 90.306 us/op 0.86
BeaconState.hashTreeRoot - 32 full validator 1.0910 ms/op 938.52 us/op 1.16
BeaconState.hashTreeRoot - 512 full validator 8.2282 ms/op 9.4905 ms/op 0.87
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 115.98 us/op 110.76 us/op 1.05
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.6485 ms/op 1.4713 ms/op 1.12
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 25.738 ms/op 23.067 ms/op 1.12
BeaconState.hashTreeRoot - 1 balances 77.088 us/op 85.977 us/op 0.90
BeaconState.hashTreeRoot - 32 balances 889.14 us/op 810.13 us/op 1.10
BeaconState.hashTreeRoot - 512 balances 7.7360 ms/op 7.2460 ms/op 1.07
BeaconState.hashTreeRoot - 250000 balances 185.47 ms/op 149.15 ms/op 1.24
aggregationBits - 2048 els - zipIndexesInBitList 19.915 us/op 20.549 us/op 0.97
regular array get 100000 times 22.540 us/op 22.987 us/op 0.98
wrappedArray get 100000 times 22.504 us/op 22.939 us/op 0.98
arrayWithProxy get 100000 times 9.7018 ms/op 9.5382 ms/op 1.02
ssz.Root.equals 20.996 ns/op 21.742 ns/op 0.97
byteArrayEquals 20.890 ns/op 21.171 ns/op 0.99
Buffer.compare 8.6560 ns/op 8.7630 ns/op 0.99
processSlot - 1 slots 10.557 us/op 12.166 us/op 0.87
processSlot - 32 slots 2.9014 ms/op 2.1708 ms/op 1.34
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.9573 ms/op 6.1977 ms/op 0.64
getCommitteeAssignments - req 1 vs - 250000 vc 1.6291 ms/op 2.1571 ms/op 0.76
getCommitteeAssignments - req 100 vs - 250000 vc 3.3229 ms/op 3.4156 ms/op 0.97
getCommitteeAssignments - req 1000 vs - 250000 vc 3.5788 ms/op 3.7122 ms/op 0.96
findModifiedValidators - 10000 modified validators 864.78 ms/op 851.15 ms/op 1.02
findModifiedValidators - 1000 modified validators 542.10 ms/op 600.71 ms/op 0.90
findModifiedValidators - 100 modified validators 345.06 ms/op 373.36 ms/op 0.92
findModifiedValidators - 10 modified validators 342.17 ms/op 306.49 ms/op 1.12
findModifiedValidators - 1 modified validators 218.99 ms/op 231.50 ms/op 0.95
findModifiedValidators - no difference 191.90 ms/op 206.22 ms/op 0.93
migrate state 1500000 validators, 3400 modified, 2000 new 3.7073 s/op 2.8271 s/op 1.31
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 3.3500 ns/op 3.2500 ns/op 1.03
state getBlockRootAtSlot - 250000 vs - 7PWei 493.85 ns/op 359.55 ns/op 1.37
computeProposerIndex 100000 validators 2.6382 ms/op 2.6083 ms/op 1.01
getNextSyncCommitteeIndices 1000 validators 1.4582 ms/op 1.3465 ms/op 1.08
getNextSyncCommitteeIndices 10000 validators 14.557 ms/op 12.749 ms/op 1.14
getNextSyncCommitteeIndices 100000 validators 55.575 ms/op 49.886 ms/op 1.11
computeProposers - vc 250000 1.2245 ms/op 1.1916 ms/op 1.03
computeEpochShuffling - vc 250000 20.525 ms/op 19.737 ms/op 1.04
getNextSyncCommittee - vc 250000 12.676 ms/op 12.191 ms/op 1.04
nodejs block root to RootHex using toHex 92.550 ns/op 87.896 ns/op 1.05
nodejs block root to RootHex using toRootHex 59.610 ns/op 58.266 ns/op 1.02
nodejs fromHex(blob) 1.0743 ms/op 885.83 us/op 1.21
nodejs fromHexInto(blob) 654.37 us/op 597.57 us/op 1.10
nodejs block root to RootHex using the deprecated toHexString 669.59 ns/op 577.66 ns/op 1.16
nodejs byteArrayEquals 32 bytes (block root) 27.315 ns/op 24.544 ns/op 1.11
nodejs byteArrayEquals 48 bytes (pubkey) 39.577 ns/op 35.546 ns/op 1.11
nodejs byteArrayEquals 96 bytes (signature) 37.585 ns/op 33.238 ns/op 1.13
nodejs byteArrayEquals 1024 bytes 44.503 ns/op 39.734 ns/op 1.12
nodejs byteArrayEquals 131072 bytes (blob) 1.8136 us/op 1.6625 us/op 1.09
browser block root to RootHex using toHex 149.09 ns/op 135.81 ns/op 1.10
browser block root to RootHex using toRootHex 135.87 ns/op 121.94 ns/op 1.11
browser fromHex(blob) 1.9543 ms/op 1.6411 ms/op 1.19
browser fromHexInto(blob) 605.61 us/op 597.42 us/op 1.01
browser block root to RootHex using the deprecated toHexString 400.67 ns/op 585.16 ns/op 0.68
browser byteArrayEquals 32 bytes (block root) 26.997 ns/op 26.786 ns/op 1.01
browser byteArrayEquals 48 bytes (pubkey) 38.280 ns/op 37.794 ns/op 1.01
browser byteArrayEquals 96 bytes (signature) 71.592 ns/op 71.036 ns/op 1.01
browser byteArrayEquals 1024 bytes 729.23 ns/op 718.75 ns/op 1.01
browser byteArrayEquals 131072 bytes (blob) 91.947 us/op 90.831 us/op 1.01

by benchmarkbot/action

@spiral-ladder

Copy link
Copy Markdown
Member Author

e2e failures seem to be flaky tests; have to do with some timing sensitive tests introduced with the new builder mechanism. might have a fix coming up.

My claude says:

The four failures are Sept 12 (two PRs), Sept 14 (on unstable itself), and today's PR.

Why it happens: the test never had any slack. It needs 6 of 8 votes for block 23 during epoch 3, and at most 6 are possible:

One vote goes to the orphan block 24 (slot 24 or slot 25's, depending on timing).
Slot 31's vote always lands after the epoch transition.

Before ChainSafe/lodestar#9832 that split was fixed. Since then it's a race.

Before, attesters always saw the current block, so slot 24 always voted for the orphan and slot 25 always voted correctly.

After, blocks come out just as the 0.5s deadline fires. The deadline usually wins, so each attester sees the previous block: slot 24 votes correctly and slot 25 votes for the orphan. When block 24 lands a few ms early, slot 24 also votes for the orphan. That leaves 5/8, epoch 3 is never finalized, and the test hangs.

@nflaig nflaig left a comment

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.

makes sense for all these changes, I had similar issue that AI refused to use underscore prefix when adding new fields to BeaconStateView, but the naming is more warranted there compared to the renames in this PR

@spiral-ladder
spiral-ladder merged commit 55c1d0c into unstable Sep 29, 2026
29 of 30 checks passed
@spiral-ladder
spiral-ladder deleted the bing/yeet-underscores branch September 29, 2026 12:58
@wemeetagain

Copy link
Copy Markdown
Member

馃帀 This PR is included in v1.50.0 馃帀

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

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants