Skip to content

chore: add workflow to run nightly spec tests#9268

Merged
nflaig merged 2 commits into
unstablefrom
nflaig/nightly-spec-tests-workflow
Apr 24, 2026
Merged

chore: add workflow to run nightly spec tests#9268
nflaig merged 2 commits into
unstablefrom
nflaig/nightly-spec-tests-workflow

Conversation

@nflaig
Copy link
Copy Markdown
Member

@nflaig nflaig commented Apr 24, 2026

Follow up to #9221 which adds a worfklow to run nightly spec tests

@nflaig nflaig requested a review from a team as a code owner April 24, 2026 09:13
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request adds documentation for downloading nightly spec test artifacts and updates the logic for resolving nightly run IDs to prioritize scheduled runs unless a specific branch is targeted. Review feedback indicates that the documentation examples in AGENTS.md are inconsistent with the current CLI implementation regarding argument count, order, and URL format. Additionally, there is a suggestion to allow non-scheduled events when a specific date is provided to ensure manual re-runs can be retrieved.

Comment thread AGENTS.md
Comment thread packages/spec-test-util/src/downloadNightlyTests.ts Outdated
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 24, 2026

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 91bed2a Previous: a140dd9 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.1136 ms/op 1.2457 ms/op 0.89
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 37.592 us/op 39.915 us/op 0.94
BLS verify - blst 707.17 us/op 734.75 us/op 0.96
BLS verifyMultipleSignatures 3 - blst 1.2842 ms/op 1.3404 ms/op 0.96
BLS verifyMultipleSignatures 8 - blst 2.0279 ms/op 2.1086 ms/op 0.96
BLS verifyMultipleSignatures 32 - blst 6.5769 ms/op 6.7182 ms/op 0.98
BLS verifyMultipleSignatures 64 - blst 12.775 ms/op 12.996 ms/op 0.98
BLS verifyMultipleSignatures 128 - blst 24.610 ms/op 25.192 ms/op 0.98
BLS deserializing 10000 signatures 617.68 ms/op 634.62 ms/op 0.97
BLS deserializing 100000 signatures 6.3956 s/op 6.3614 s/op 1.01
BLS verifyMultipleSignatures - same message - 3 - blst 753.89 us/op 748.21 us/op 1.01
BLS verifyMultipleSignatures - same message - 8 - blst 817.58 us/op 929.94 us/op 0.88
BLS verifyMultipleSignatures - same message - 32 - blst 1.5160 ms/op 1.5384 ms/op 0.99
BLS verifyMultipleSignatures - same message - 64 - blst 2.2897 ms/op 2.4154 ms/op 0.95
BLS verifyMultipleSignatures - same message - 128 - blst 3.9543 ms/op 4.0824 ms/op 0.97
BLS aggregatePubkeys 32 - blst 17.178 us/op 17.610 us/op 0.98
BLS aggregatePubkeys 128 - blst 61.051 us/op 62.257 us/op 0.98
getSlashingsAndExits - default max 44.867 us/op 63.878 us/op 0.70
getSlashingsAndExits - 2k 391.10 us/op 417.27 us/op 0.94
proposeBlockBody type=full, size=empty 741.84 us/op 884.71 us/op 0.84
isKnown best case - 1 super set check 164.00 ns/op 185.00 ns/op 0.89
isKnown normal case - 2 super set checks 241.00 ns/op 168.00 ns/op 1.43
isKnown worse case - 16 super set checks 164.00 ns/op 168.00 ns/op 0.98
validate api signedAggregateAndProof - struct 1.4539 ms/op 1.5096 ms/op 0.96
validate gossip signedAggregateAndProof - struct 1.4375 ms/op 1.5052 ms/op 0.96
batch validate gossip attestation - vc 640000 - chunk 32 102.83 us/op 107.71 us/op 0.95
batch validate gossip attestation - vc 640000 - chunk 64 90.410 us/op 94.577 us/op 0.96
batch validate gossip attestation - vc 640000 - chunk 128 85.000 us/op 89.788 us/op 0.95
batch validate gossip attestation - vc 640000 - chunk 256 80.824 us/op 87.307 us/op 0.93
bytes32 toHexString 277.00 ns/op 281.00 ns/op 0.99
bytes32 Buffer.toString(hex) 173.00 ns/op 181.00 ns/op 0.96
bytes32 Buffer.toString(hex) from Uint8Array 245.00 ns/op 238.00 ns/op 1.03
bytes32 Buffer.toString(hex) + 0x 176.00 ns/op 184.00 ns/op 0.96
Return object 10000 times 0.20590 ns/op 0.21110 ns/op 0.98
Throw Error 10000 times 3.1709 us/op 3.3956 us/op 0.93
toHex 95.516 ns/op 91.273 ns/op 1.05
Buffer.from 82.140 ns/op 81.618 ns/op 1.01
shared Buffer 54.820 ns/op 54.891 ns/op 1.00
fastMsgIdFn sha256 / 200 bytes 1.4350 us/op 1.4690 us/op 0.98
fastMsgIdFn h32 xxhash / 200 bytes 153.00 ns/op 154.00 ns/op 0.99
fastMsgIdFn h64 xxhash / 200 bytes 204.00 ns/op 207.00 ns/op 0.99
fastMsgIdFn sha256 / 1000 bytes 4.5340 us/op 4.6910 us/op 0.97
fastMsgIdFn h32 xxhash / 1000 bytes 231.00 ns/op 246.00 ns/op 0.94
fastMsgIdFn h64 xxhash / 1000 bytes 250.00 ns/op 255.00 ns/op 0.98
fastMsgIdFn sha256 / 10000 bytes 40.194 us/op 41.190 us/op 0.98
fastMsgIdFn h32 xxhash / 10000 bytes 1.2510 us/op 1.2660 us/op 0.99
fastMsgIdFn h64 xxhash / 10000 bytes 801.00 ns/op 827.00 ns/op 0.97
send data - 1000 256B messages 5.0721 ms/op 4.7495 ms/op 1.07
send data - 1000 512B messages 4.6835 ms/op 4.6892 ms/op 1.00
send data - 1000 1024B messages 4.9686 ms/op 5.0710 ms/op 0.98
send data - 1000 1200B messages 5.1226 ms/op 5.5291 ms/op 0.93
send data - 1000 2048B messages 5.1812 ms/op 5.2382 ms/op 0.99
send data - 1000 4096B messages 6.0905 ms/op 6.1424 ms/op 0.99
send data - 1000 16384B messages 33.485 ms/op 32.164 ms/op 1.04
send data - 1000 65536B messages 224.64 ms/op 136.03 ms/op 1.65
enrSubnets - fastDeserialize 64 bits 738.00 ns/op 810.00 ns/op 0.91
enrSubnets - ssz BitVector 64 bits 263.00 ns/op 267.00 ns/op 0.99
enrSubnets - fastDeserialize 4 bits 105.00 ns/op 105.00 ns/op 1.00
enrSubnets - ssz BitVector 4 bits 255.00 ns/op 271.00 ns/op 0.94
prioritizePeers score -10:0 att 32-0.1 sync 2-0 202.97 us/op 208.25 us/op 0.97
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 246.97 us/op 235.33 us/op 1.05
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 342.77 us/op 355.90 us/op 0.96
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 592.17 us/op 613.38 us/op 0.97
prioritizePeers score 0:0 att 64-1 sync 4-1 689.51 us/op 708.60 us/op 0.97
array of 16000 items push then shift 1.2120 us/op 1.2446 us/op 0.97
LinkedList of 16000 items push then shift 7.2390 ns/op 7.6600 ns/op 0.95
array of 16000 items push then pop 63.973 ns/op 72.695 ns/op 0.88
LinkedList of 16000 items push then pop 5.9180 ns/op 6.0650 ns/op 0.98
array of 24000 items push then shift 1.7856 us/op 1.8422 us/op 0.97
LinkedList of 24000 items push then shift 7.4960 ns/op 7.7500 ns/op 0.97
array of 24000 items push then pop 95.483 ns/op 101.24 ns/op 0.94
LinkedList of 24000 items push then pop 6.0010 ns/op 6.2170 ns/op 0.97
intersect bitArray bitLen 8 4.6280 ns/op 4.7790 ns/op 0.97
intersect array and set length 8 28.611 ns/op 29.964 ns/op 0.95
intersect bitArray bitLen 128 23.546 ns/op 24.176 ns/op 0.97
intersect array and set length 128 487.06 ns/op 503.14 ns/op 0.97
bitArray.getTrueBitIndexes() bitLen 128 1.0110 us/op 1.1490 us/op 0.88
bitArray.getTrueBitIndexes() bitLen 248 1.7490 us/op 1.9660 us/op 0.89
bitArray.getTrueBitIndexes() bitLen 512 3.4970 us/op 3.9950 us/op 0.88
Full columns - reconstruct all 6 blobs 214.75 us/op 222.10 us/op 0.97
Full columns - reconstruct half of the blobs out of 6 68.144 us/op 93.955 us/op 0.73
Full columns - reconstruct single blob out of 6 32.945 us/op 35.406 us/op 0.93
Half columns - reconstruct all 6 blobs 377.83 ms/op 388.70 ms/op 0.97
Half columns - reconstruct half of the blobs out of 6 190.43 ms/op 192.11 ms/op 0.99
Half columns - reconstruct single blob out of 6 67.959 ms/op 68.568 ms/op 0.99
Full columns - reconstruct all 10 blobs 463.07 us/op 465.76 us/op 0.99
Full columns - reconstruct half of the blobs out of 10 151.41 us/op 128.83 us/op 1.18
Full columns - reconstruct single blob out of 10 29.872 us/op 30.963 us/op 0.96
Half columns - reconstruct all 10 blobs 626.02 ms/op 651.02 ms/op 0.96
Half columns - reconstruct half of the blobs out of 10 314.83 ms/op 322.02 ms/op 0.98
Half columns - reconstruct single blob out of 10 67.033 ms/op 69.220 ms/op 0.97
Full columns - reconstruct all 20 blobs 1.4935 ms/op 772.23 us/op 1.93
Full columns - reconstruct half of the blobs out of 20 323.61 us/op 389.89 us/op 0.83
Full columns - reconstruct single blob out of 20 30.916 us/op 31.552 us/op 0.98
Half columns - reconstruct all 20 blobs 1.2358 s/op 1.2939 s/op 0.96
Half columns - reconstruct half of the blobs out of 20 623.73 ms/op 646.71 ms/op 0.96
Half columns - reconstruct single blob out of 20 68.295 ms/op 69.414 ms/op 0.98
Set add up to 64 items then delete first 2.0864 us/op 2.0874 us/op 1.00
OrderedSet add up to 64 items then delete first 3.2051 us/op 3.3074 us/op 0.97
Set add up to 64 items then delete last 2.1005 us/op 2.1132 us/op 0.99
OrderedSet add up to 64 items then delete last 3.1811 us/op 3.4268 us/op 0.93
Set add up to 64 items then delete middle 2.0772 us/op 2.1319 us/op 0.97
OrderedSet add up to 64 items then delete middle 4.6085 us/op 4.9240 us/op 0.94
Set add up to 128 items then delete first 4.0776 us/op 4.0868 us/op 1.00
OrderedSet add up to 128 items then delete first 6.7052 us/op 6.1758 us/op 1.09
Set add up to 128 items then delete last 3.7101 us/op 4.0050 us/op 0.93
OrderedSet add up to 128 items then delete last 7.9052 us/op 6.1377 us/op 1.29
Set add up to 128 items then delete middle 4.9821 us/op 4.0062 us/op 1.24
OrderedSet add up to 128 items then delete middle 11.298 us/op 12.431 us/op 0.91
Set add up to 256 items then delete first 7.6213 us/op 7.6971 us/op 0.99
OrderedSet add up to 256 items then delete first 12.697 us/op 11.979 us/op 1.06
Set add up to 256 items then delete last 7.4757 us/op 7.7393 us/op 0.97
OrderedSet add up to 256 items then delete last 11.264 us/op 12.298 us/op 0.92
Set add up to 256 items then delete middle 7.5908 us/op 7.8936 us/op 0.96
OrderedSet add up to 256 items then delete middle 37.325 us/op 39.814 us/op 0.94
pass gossip attestations to forkchoice per slot 2.5117 ms/op 2.5899 ms/op 0.97
forkChoice updateHead vc 100000 bc 64 eq 0 381.20 us/op 391.20 us/op 0.97
forkChoice updateHead vc 600000 bc 64 eq 0 2.2570 ms/op 2.3669 ms/op 0.95
forkChoice updateHead vc 1000000 bc 64 eq 0 3.7107 ms/op 3.9158 ms/op 0.95
forkChoice updateHead vc 600000 bc 320 eq 0 2.3013 ms/op 2.3144 ms/op 0.99
forkChoice updateHead vc 600000 bc 1200 eq 0 2.4302 ms/op 2.4598 ms/op 0.99
forkChoice updateHead vc 600000 bc 7200 eq 0 3.8621 ms/op 4.8689 ms/op 0.79
forkChoice updateHead vc 600000 bc 64 eq 1000 2.9098 ms/op 2.9343 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 10000 3.0462 ms/op 3.0680 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 300000 6.7814 ms/op 6.9440 ms/op 0.98
computeDeltas 1400000 validators 0% inactive 12.480 ms/op 12.348 ms/op 1.01
computeDeltas 1400000 validators 10% inactive 11.357 ms/op 11.584 ms/op 0.98
computeDeltas 1400000 validators 20% inactive 10.608 ms/op 10.526 ms/op 1.01
computeDeltas 1400000 validators 50% inactive 7.9325 ms/op 8.1590 ms/op 0.97
computeDeltas 2100000 validators 0% inactive 18.328 ms/op 18.661 ms/op 0.98
computeDeltas 2100000 validators 10% inactive 16.908 ms/op 17.276 ms/op 0.98
computeDeltas 2100000 validators 20% inactive 15.573 ms/op 15.797 ms/op 0.99
computeDeltas 2100000 validators 50% inactive 8.9754 ms/op 9.2245 ms/op 0.97
altair processAttestation - 250000 vs - 7PWei normalcase 1.8862 ms/op 2.4601 ms/op 0.77
altair processAttestation - 250000 vs - 7PWei worstcase 2.8350 ms/op 3.2445 ms/op 0.87
altair processAttestation - setStatus - 1/6 committees join 100.31 us/op 108.07 us/op 0.93
altair processAttestation - setStatus - 1/3 committees join 199.34 us/op 212.12 us/op 0.94
altair processAttestation - setStatus - 1/2 committees join 278.22 us/op 280.01 us/op 0.99
altair processAttestation - setStatus - 2/3 committees join 368.13 us/op 375.47 us/op 0.98
altair processAttestation - setStatus - 4/5 committees join 484.03 us/op 536.32 us/op 0.90
altair processAttestation - setStatus - 100% committees join 584.40 us/op 677.63 us/op 0.86
altair processBlock - 250000 vs - 7PWei normalcase 4.5115 ms/op 4.6617 ms/op 0.97
altair processBlock - 250000 vs - 7PWei normalcase hashState 16.624 ms/op 14.978 ms/op 1.11
altair processBlock - 250000 vs - 7PWei worstcase 21.637 ms/op 22.554 ms/op 0.96
altair processBlock - 250000 vs - 7PWei worstcase hashState 45.865 ms/op 44.125 ms/op 1.04
phase0 processBlock - 250000 vs - 7PWei normalcase 1.7046 ms/op 1.9522 ms/op 0.87
phase0 processBlock - 250000 vs - 7PWei worstcase 18.826 ms/op 19.953 ms/op 0.94
altair processEth1Data - 250000 vs - 7PWei normalcase 271.94 us/op 303.76 us/op 0.90
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:16 4.4430 us/op 5.4220 us/op 0.82
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:220 21.127 us/op 21.874 us/op 0.97
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:43 8.0040 us/op 5.6170 us/op 1.42
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:19 5.1370 us/op 3.6330 us/op 1.41
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1021 93.920 us/op 91.964 us/op 1.02
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11778 1.3314 ms/op 1.4321 ms/op 0.93
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.7067 ms/op 1.9690 ms/op 0.87
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.7305 ms/op 1.9179 ms/op 0.90
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 5.4394 ms/op 4.7605 ms/op 1.14
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.0221 ms/op 2.0123 ms/op 1.00
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.2827 ms/op 5.3645 ms/op 0.80
Tree 40 250000 create 352.42 ms/op 360.60 ms/op 0.98
Tree 40 250000 get(125000) 91.686 ns/op 90.019 ns/op 1.02
Tree 40 250000 set(125000) 1.0329 us/op 996.25 ns/op 1.04
Tree 40 250000 toArray() 17.219 ms/op 16.125 ms/op 1.07
Tree 40 250000 iterate all - toArray() + loop 17.259 ms/op 17.199 ms/op 1.00
Tree 40 250000 iterate all - get(i) 39.029 ms/op 39.809 ms/op 0.98
Array 250000 create 2.2405 ms/op 2.2307 ms/op 1.00
Array 250000 clone - spread 679.18 us/op 688.92 us/op 0.99
Array 250000 get(125000) 0.29800 ns/op 0.29100 ns/op 1.02
Array 250000 set(125000) 0.30000 ns/op 0.29300 ns/op 1.02
Array 250000 iterate all - loop 56.817 us/op 57.189 us/op 0.99
phase0 afterProcessEpoch - 250000 vs - 7PWei 49.441 ms/op 39.034 ms/op 1.27
Array.fill - length 1000000 2.1651 ms/op 3.6541 ms/op 0.59
Array push - length 1000000 9.2472 ms/op 10.806 ms/op 0.86
Array.get 0.20699 ns/op 0.20735 ns/op 1.00
Uint8Array.get 0.21868 ns/op 0.23399 ns/op 0.93
phase0 beforeProcessEpoch - 250000 vs - 7PWei 14.578 ms/op 18.800 ms/op 0.78
altair processEpoch - mainnet_e81889 264.10 ms/op 272.95 ms/op 0.97
mainnet_e81889 - altair beforeProcessEpoch 16.460 ms/op 16.452 ms/op 1.00
mainnet_e81889 - altair processJustificationAndFinalization 5.6920 us/op 6.1450 us/op 0.93
mainnet_e81889 - altair processInactivityUpdates 7.1300 ms/op 5.4607 ms/op 1.31
mainnet_e81889 - altair processRewardsAndPenalties 19.851 ms/op 20.453 ms/op 0.97
mainnet_e81889 - altair processRegistryUpdates 522.00 ns/op 536.00 ns/op 0.97
mainnet_e81889 - altair processSlashings 135.00 ns/op 130.00 ns/op 1.04
mainnet_e81889 - altair processEth1DataReset 136.00 ns/op 128.00 ns/op 1.06
mainnet_e81889 - altair processEffectiveBalanceUpdates 7.6069 ms/op 3.7865 ms/op 2.01
mainnet_e81889 - altair processSlashingsReset 680.00 ns/op 667.00 ns/op 1.02
mainnet_e81889 - altair processRandaoMixesReset 1.3040 us/op 1.2690 us/op 1.03
mainnet_e81889 - altair processHistoricalRootsUpdate 135.00 ns/op 127.00 ns/op 1.06
mainnet_e81889 - altair processParticipationFlagUpdates 413.00 ns/op 435.00 ns/op 0.95
mainnet_e81889 - altair processSyncCommitteeUpdates 110.00 ns/op 109.00 ns/op 1.01
mainnet_e81889 - altair afterProcessEpoch 40.617 ms/op 41.015 ms/op 0.99
capella processEpoch - mainnet_e217614 818.95 ms/op 856.06 ms/op 0.96
mainnet_e217614 - capella beforeProcessEpoch 60.497 ms/op 71.977 ms/op 0.84
mainnet_e217614 - capella processJustificationAndFinalization 6.2500 us/op 6.7000 us/op 0.93
mainnet_e217614 - capella processInactivityUpdates 18.804 ms/op 17.222 ms/op 1.09
mainnet_e217614 - capella processRewardsAndPenalties 95.346 ms/op 95.767 ms/op 1.00
mainnet_e217614 - capella processRegistryUpdates 4.3270 us/op 4.4390 us/op 0.97
mainnet_e217614 - capella processSlashings 135.00 ns/op 142.00 ns/op 0.95
mainnet_e217614 - capella processEth1DataReset 133.00 ns/op 142.00 ns/op 0.94
mainnet_e217614 - capella processEffectiveBalanceUpdates 16.928 ms/op 16.933 ms/op 1.00
mainnet_e217614 - capella processSlashingsReset 659.00 ns/op 692.00 ns/op 0.95
mainnet_e217614 - capella processRandaoMixesReset 1.2910 us/op 1.3250 us/op 0.97
mainnet_e217614 - capella processHistoricalRootsUpdate 136.00 ns/op 145.00 ns/op 0.94
mainnet_e217614 - capella processParticipationFlagUpdates 440.00 ns/op 453.00 ns/op 0.97
mainnet_e217614 - capella afterProcessEpoch 108.14 ms/op 107.71 ms/op 1.00
phase0 processEpoch - mainnet_e58758 291.47 ms/op 332.47 ms/op 0.88
mainnet_e58758 - phase0 beforeProcessEpoch 63.587 ms/op 71.322 ms/op 0.89
mainnet_e58758 - phase0 processJustificationAndFinalization 5.8110 us/op 6.9160 us/op 0.84
mainnet_e58758 - phase0 processRewardsAndPenalties 15.964 ms/op 17.448 ms/op 0.91
mainnet_e58758 - phase0 processRegistryUpdates 3.9930 us/op 2.2740 us/op 1.76
mainnet_e58758 - phase0 processSlashings 153.00 ns/op 132.00 ns/op 1.16
mainnet_e58758 - phase0 processEth1DataReset 144.00 ns/op 148.00 ns/op 0.97
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 775.69 us/op 807.24 us/op 0.96
mainnet_e58758 - phase0 processSlashingsReset 854.00 ns/op 984.00 ns/op 0.87
mainnet_e58758 - phase0 processRandaoMixesReset 1.1540 us/op 1.4260 us/op 0.81
mainnet_e58758 - phase0 processHistoricalRootsUpdate 147.00 ns/op 147.00 ns/op 1.00
mainnet_e58758 - phase0 processParticipationRecordUpdates 981.00 ns/op 1.2990 us/op 0.76
mainnet_e58758 - phase0 afterProcessEpoch 32.132 ms/op 34.055 ms/op 0.94
phase0 processEffectiveBalanceUpdates - 250000 normalcase 934.29 us/op 1.0088 ms/op 0.93
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4790 ms/op 1.5431 ms/op 0.96
altair processInactivityUpdates - 250000 normalcase 12.056 ms/op 14.580 ms/op 0.83
altair processInactivityUpdates - 250000 worstcase 11.788 ms/op 14.925 ms/op 0.79
phase0 processRegistryUpdates - 250000 normalcase 3.3270 us/op 2.4160 us/op 1.38
phase0 processRegistryUpdates - 250000 badcase_full_deposits 137.03 us/op 148.23 us/op 0.92
phase0 processRegistryUpdates - 250000 worstcase 0.5 57.163 ms/op 65.028 ms/op 0.88
altair processRewardsAndPenalties - 250000 normalcase 14.964 ms/op 15.632 ms/op 0.96
altair processRewardsAndPenalties - 250000 worstcase 14.552 ms/op 15.317 ms/op 0.95
phase0 getAttestationDeltas - 250000 normalcase 5.3801 ms/op 5.5738 ms/op 0.97
phase0 getAttestationDeltas - 250000 worstcase 5.1072 ms/op 5.5599 ms/op 0.92
phase0 processSlashings - 250000 worstcase 56.528 us/op 60.123 us/op 0.94
altair processSyncCommitteeUpdates - 250000 9.4421 ms/op 11.573 ms/op 0.82
BeaconState.hashTreeRoot - No change 192.00 ns/op 193.00 ns/op 0.99
BeaconState.hashTreeRoot - 1 full validator 72.252 us/op 100.13 us/op 0.72
BeaconState.hashTreeRoot - 32 full validator 784.28 us/op 1.0046 ms/op 0.78
BeaconState.hashTreeRoot - 512 full validator 6.8133 ms/op 10.151 ms/op 0.67
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 79.471 us/op 116.72 us/op 0.68
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.3447 ms/op 1.5825 ms/op 0.85
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 14.356 ms/op 21.756 ms/op 0.66
BeaconState.hashTreeRoot - 1 balances 71.789 us/op 92.810 us/op 0.77
BeaconState.hashTreeRoot - 32 balances 701.18 us/op 809.41 us/op 0.87
BeaconState.hashTreeRoot - 512 balances 4.7580 ms/op 7.6126 ms/op 0.63
BeaconState.hashTreeRoot - 250000 balances 108.63 ms/op 157.10 ms/op 0.69
aggregationBits - 2048 els - zipIndexesInBitList 18.518 us/op 19.935 us/op 0.93
regular array get 100000 times 21.923 us/op 22.397 us/op 0.98
wrappedArray get 100000 times 21.937 us/op 22.579 us/op 0.97
arrayWithProxy get 100000 times 16.901 ms/op 9.2591 ms/op 1.83
ssz.Root.equals 20.342 ns/op 20.912 ns/op 0.97
byteArrayEquals 20.161 ns/op 20.564 ns/op 0.98
Buffer.compare 8.3730 ns/op 8.6460 ns/op 0.97
processSlot - 1 slots 8.7310 us/op 11.068 us/op 0.79
processSlot - 32 slots 1.9697 ms/op 2.3033 ms/op 0.86
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 4.4351 ms/op 5.8091 ms/op 0.76
getCommitteeAssignments - req 1 vs - 250000 vc 1.5659 ms/op 1.6719 ms/op 0.94
getCommitteeAssignments - req 100 vs - 250000 vc 3.2684 ms/op 3.3967 ms/op 0.96
getCommitteeAssignments - req 1000 vs - 250000 vc 3.5504 ms/op 3.6980 ms/op 0.96
findModifiedValidators - 10000 modified validators 696.26 ms/op 659.00 ms/op 1.06
findModifiedValidators - 1000 modified validators 502.06 ms/op 417.07 ms/op 1.20
findModifiedValidators - 100 modified validators 278.15 ms/op 341.77 ms/op 0.81
findModifiedValidators - 10 modified validators 235.24 ms/op 286.81 ms/op 0.82
findModifiedValidators - 1 modified validators 181.30 ms/op 267.31 ms/op 0.68
findModifiedValidators - no difference 197.82 ms/op 165.35 ms/op 1.20
migrate state 1500000 validators, 3400 modified, 2000 new 2.9411 s/op 3.5552 s/op 0.83
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 3.6400 ns/op 3.7300 ns/op 0.98
state getBlockRootAtSlot - 250000 vs - 7PWei 427.52 ns/op 432.99 ns/op 0.99
computeProposerIndex 100000 validators 1.2959 ms/op 1.4073 ms/op 0.92
getNextSyncCommitteeIndices 1000 validators 2.7827 ms/op 2.9336 ms/op 0.95
getNextSyncCommitteeIndices 10000 validators 25.250 ms/op 25.981 ms/op 0.97
getNextSyncCommitteeIndices 100000 validators 84.980 ms/op 95.558 ms/op 0.89
computeProposers - vc 250000 536.10 us/op 682.65 us/op 0.79
computeEpochShuffling - vc 250000 37.969 ms/op 40.459 ms/op 0.94
getNextSyncCommittee - vc 250000 9.2917 ms/op 11.782 ms/op 0.79
nodejs block root to RootHex using toHex 88.704 ns/op 96.580 ns/op 0.92
nodejs block root to RootHex using toRootHex 54.915 ns/op 56.978 ns/op 0.96
nodejs fromHex(blob) 743.96 us/op 950.07 us/op 0.78
nodejs fromHexInto(blob) 599.42 us/op 623.95 us/op 0.96
nodejs block root to RootHex using the deprecated toHexString 439.51 ns/op 496.27 ns/op 0.89
nodejs byteArrayEquals 32 bytes (block root) 24.713 ns/op 25.963 ns/op 0.95
nodejs byteArrayEquals 48 bytes (pubkey) 35.531 ns/op 37.225 ns/op 0.95
nodejs byteArrayEquals 96 bytes (signature) 32.372 ns/op 33.191 ns/op 0.98
nodejs byteArrayEquals 1024 bytes 39.533 ns/op 40.095 ns/op 0.99
nodejs byteArrayEquals 131072 bytes (blob) 1.6917 us/op 1.7553 us/op 0.96
browser block root to RootHex using toHex 136.60 ns/op 143.76 ns/op 0.95
browser block root to RootHex using toRootHex 126.60 ns/op 128.44 ns/op 0.99
browser fromHex(blob) 1.4726 ms/op 1.5158 ms/op 0.97
browser fromHexInto(blob) 607.47 us/op 614.58 us/op 0.99
browser block root to RootHex using the deprecated toHexString 454.78 ns/op 333.46 ns/op 1.36
browser byteArrayEquals 32 bytes (block root) 27.202 ns/op 27.329 ns/op 1.00
browser byteArrayEquals 48 bytes (pubkey) 38.158 ns/op 38.546 ns/op 0.99
browser byteArrayEquals 96 bytes (signature) 72.174 ns/op 72.182 ns/op 1.00
browser byteArrayEquals 1024 bytes 742.19 ns/op 734.52 ns/op 1.01
browser byteArrayEquals 131072 bytes (blob) 94.000 us/op 92.674 us/op 1.01

by benchmarkbot/action

When the user passes a specific date, don't also force event=schedule —
a scheduled run that failed but was manually re-run should still be
findable. event=schedule still applies to the default no-args path so
PR runs can't outrank the latest master nightly in CI.

Addresses gemini-code-assist review on #9268.
@nflaig nflaig merged commit a140dd9 into unstable Apr 24, 2026
18 of 20 checks passed
@nflaig nflaig deleted the nflaig/nightly-spec-tests-workflow branch April 24, 2026 10:01
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 24, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 52.52%. Comparing base (d166e3b) to head (0e46f03).
⚠️ Report is 1 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #9268   +/-   ##
=========================================
  Coverage     52.52%   52.52%           
=========================================
  Files           848      848           
  Lines         61304    61304           
  Branches       4510     4510           
=========================================
  Hits          32201    32201           
  Misses        29038    29038           
  Partials         65       65           
🚀 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
Copy link
Copy Markdown
Member Author

nflaig commented Apr 24, 2026

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