Skip to content

feat: schedule Gloas fork and 200M gas limit on Hoodi - #10313

Merged
nflaig merged 1 commit into
unstablefrom
nc/schedule-gloas-hoodi
Oct 8, 2026
Merged

nflaig merged 1 commit into
unstablefrom
nc/schedule-gloas-hoodi

Conversation

@ensi321

@ensi321 ensi321 commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

Motivation

Schedule the Glamsterdam fork (Gloas on the CL) on Hoodi so operators can upgrade ahead of activation and Lodestar ships the fork timing in a release.

Description

Sets GLOAS_FORK_EPOCH to 132352 in the Hoodi network config, activating Glamsterdam at:

  • Epoch: 132352
  • Slot: 4235264
  • Timestamp: 1793036568 (Mon, 26 Oct 2026, 17:42:48 UTC)

1742213400 + 4235264 * 12 = 1793036568, epoch-aligned with Hoodi genesis. GLOAS_FORK_VERSION (0x80000910) already matches upstream.

Also adds a GAS_LIMIT_SCHEDULE entry raising the gas limit to 200M at the fork, same as Sepolia (#10172):

GAS_LIMIT_SCHEDULE:
  - EPOCH: 132352
    GAS_LIMIT: 200000000

Mirrors eth-clients/hoodi#31. The remaining Gloas params in that PR match the mainnet defaults Hoodi already inherits.

The Lighthouse, Teku, and Nimbus Hoodi interop fixtures used by the assertEqualParams test are updated to the scheduled Gloas epoch and version, same as #8435 did for Fulu on Holesky.

This PR was written primarily by Claude Code.

🤖 Generated with Claude Code

Set GLOAS_FORK_EPOCH to 132352 in the Hoodi network config and add a
GAS_LIMIT_SCHEDULE entry raising the gas limit to 200000000 at the
same epoch, mirroring eth-clients/hoodi PR 31.

Update the Lighthouse, Teku, and Nimbus Hoodi interop fixtures to the
scheduled Gloas fork epoch and version so assertEqualParams keeps
comparing against the expected remote configs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-08T18:52:22.899305Z cdcf297 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@nflaig

nflaig commented Oct 8, 2026

Copy link
Copy Markdown
Member

@lodekeeper can you double check the timestamp and epoch are accurate (time wise) and that this is what we discussed in ACDE today

@lodekeeper

Copy link
Copy Markdown
Contributor

Yes, both check out.

Time: epoch 132352 → slot 4235264 (132352 × 32) → 1742213400 + 4235264 × 12 = 1793036568, which is Mon 26 Oct 2026, 17:42:48 UTC. 1742213400 is Hoodi genesis (MIN_GENESIS_TIME 1742212800 + GENESIS_DELAY 600, same as genesisTime in networks.ts). The EL configs in eth-clients/hoodi#31 use the same timestamp (amsterdamTime 1793036568 / 0x6adf9118).

ACDE #247 (summary): the Mon 26 Oct 17:42 UTC option was picked over Tue 27 Oct (epoch 132608), client releases are due by Oct 16, and the gas limit change was confirmed to happen at the fork epoch. That matches eth-clients/hoodi#31 (GLOAS_FORK_EPOCH: 132352, GLOAS_FORK_VERSION: 0x80000910, GAS_LIMIT_SCHEDULE 200M at 132352) and this PR. The other Gloas params in hoodi#31's config.yaml all equal the mainnet defaults Hoodi inherits here.

Two notes on the sources, neither affects this PR:

  • The auto-generated call summary says "October 26th at 1742 UTC", but further down it also says "Monday the 26th at 11 UTC". The latter matches no proposed epoch and looks like a transcription error.
  • In schedule glamsterdam on hoodi ethereum/pm#2263 the 132352 row shows Unix 1793134872, which is actually the 132608 timestamp. The UTC string on that row (17:42:48) is correct.

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 449388a Previous: c3aaeed Ratio
getPubkeys - native cache - req 1000 vs - 250000 vc 417.76 us/op 415.63 us/op 1.01
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 41.010 us/op 39.445 us/op 1.04
BLS verify - blst 899.05 us/op 881.35 us/op 1.02
BLS verifyMultipleSignatures 3 - blst 1.3956 ms/op 1.3750 ms/op 1.02
BLS verifyMultipleSignatures 8 - blst 2.2746 ms/op 2.2203 ms/op 1.02
BLS verifyMultipleSignatures 32 - blst 7.4935 ms/op 7.2744 ms/op 1.03
BLS verifyMultipleSignatures 64 - blst 14.400 ms/op 14.030 ms/op 1.03
BLS verifyMultipleSignatures 128 - blst 27.216 ms/op 26.609 ms/op 1.02
BLS deserializing 10000 signatures 644.15 ms/op 628.82 ms/op 1.02
BLS deserializing 100000 signatures 6.4451 s/op 6.2999 s/op 1.02
BLS verifyMultipleSignatures - same message - 3 - blst 957.61 us/op 927.16 us/op 1.03
BLS verifyMultipleSignatures - same message - 8 - blst 1.0870 ms/op 1.0587 ms/op 1.03
BLS verifyMultipleSignatures - same message - 32 - blst 1.7029 ms/op 1.6547 ms/op 1.03
BLS verifyMultipleSignatures - same message - 64 - blst 2.5323 ms/op 2.4443 ms/op 1.04
BLS verifyMultipleSignatures - same message - 128 - blst 4.1947 ms/op 3.9965 ms/op 1.05
BLS aggregatePubkeys 32 - blst 19.613 us/op 18.869 us/op 1.04
BLS aggregatePubkeys 128 - blst 71.322 us/op 68.435 us/op 1.04
getSlashingsAndExits - default max 44.831 us/op 42.799 us/op 1.05
getSlashingsAndExits - 2k 359.03 us/op 324.17 us/op 1.11
proposeBlockBody type=full, size=empty 688.69 us/op 697.13 us/op 0.99
isKnown best case - 1 super set check 157.00 ns/op 161.00 ns/op 0.98
isKnown normal case - 2 super set checks 161.00 ns/op 168.00 ns/op 0.96
isKnown worse case - 16 super set checks 158.00 ns/op 163.00 ns/op 0.97
validate api signedAggregateAndProof - struct 1.5504 ms/op 1.4998 ms/op 1.03
validate gossip signedAggregateAndProof - struct 1.5486 ms/op 1.5129 ms/op 1.02
batch validate gossip attestation - vc 640000 - chunk 32 124.34 us/op 119.92 us/op 1.04
batch validate gossip attestation - vc 640000 - chunk 64 105.16 us/op 101.05 us/op 1.04
batch validate gossip attestation - vc 640000 - chunk 128 95.164 us/op 91.809 us/op 1.04
batch validate gossip attestation - vc 640000 - chunk 256 95.410 us/op 91.614 us/op 1.04
bytes32 toHexString 295.00 ns/op 288.00 ns/op 1.02
bytes32 Buffer.toString(hex) 162.00 ns/op 159.00 ns/op 1.02
bytes32 Buffer.toString(hex) from Uint8Array 228.00 ns/op 230.00 ns/op 0.99
bytes32 Buffer.toString(hex) + 0x 167.00 ns/op 161.00 ns/op 1.04
Return object 10000 times 0.21380 ns/op 0.20580 ns/op 1.04
Throw Error 10000 times 3.3358 us/op 3.2338 us/op 1.03
toHex 101.13 ns/op 97.800 ns/op 1.03
Buffer.from 91.949 ns/op 91.592 ns/op 1.00
shared Buffer 65.057 ns/op 59.253 ns/op 1.10
fastMsgIdFn sha256 / 200 bytes 1.4870 us/op 1.4480 us/op 1.03
fastMsgIdFn h32 xxhash / 200 bytes 155.00 ns/op 154.00 ns/op 1.01
fastMsgIdFn h64 xxhash / 200 bytes 208.00 ns/op 197.00 ns/op 1.06
fastMsgIdFn sha256 / 1000 bytes 4.7690 us/op 4.6530 us/op 1.02
fastMsgIdFn h32 xxhash / 1000 bytes 247.00 ns/op 241.00 ns/op 1.02
fastMsgIdFn h64 xxhash / 1000 bytes 255.00 ns/op 239.00 ns/op 1.07
fastMsgIdFn sha256 / 10000 bytes 42.376 us/op 41.073 us/op 1.03
fastMsgIdFn h32 xxhash / 10000 bytes 1.3120 us/op 1.2460 us/op 1.05
fastMsgIdFn h64 xxhash / 10000 bytes 851.00 ns/op 809.00 ns/op 1.05
send data - 1000 256B messages 4.0849 ms/op 3.8415 ms/op 1.06
send data - 1000 512B messages 4.9698 ms/op 4.8615 ms/op 1.02
send data - 1000 1024B messages 5.6243 ms/op 5.1398 ms/op 1.09
send data - 1000 1200B messages 8.9557 ms/op 5.6003 ms/op 1.60
send data - 1000 2048B messages 8.7789 ms/op 10.893 ms/op 0.81
send data - 1000 4096B messages 23.592 ms/op 22.248 ms/op 1.06
send data - 1000 16384B messages 430.31 ms/op 392.59 ms/op 1.10
send data - 1000 65536B messages 1.6817 s/op 1.5563 s/op 1.08
enrSubnets - fastDeserialize 64 bits 739.00 ns/op 753.00 ns/op 0.98
enrSubnets - ssz BitVector 64 bits 257.00 ns/op 258.00 ns/op 1.00
enrSubnets - fastDeserialize 4 bits 97.000 ns/op 100.00 ns/op 0.97
enrSubnets - ssz BitVector 4 bits 266.00 ns/op 263.00 ns/op 1.01
prioritizePeers score -10:0 att 32-0.1 sync 2-0 207.43 us/op 196.92 us/op 1.05
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 232.78 us/op 223.04 us/op 1.04
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 338.92 us/op 322.15 us/op 1.05
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 602.75 us/op 572.26 us/op 1.05
prioritizePeers score 0:0 att 64-1 sync 4-1 696.83 us/op 668.17 us/op 1.04
archive index / 1 slot / archive root index lookup 18.247 us/op 16.716 us/op 1.09
archive index / 1 slot / archive block lookup, decode and hash 2.7727 ms/op 2.6129 ms/op 1.06
archive index / 1 slots / 1 columns / legacy 20.196 us/op 22.024 us/op 0.92
archive index / 1 slots / 1 columns / flat files 147.16 us/op 135.35 us/op 1.09
archive index / 1 slots / 8 columns / legacy 98.189 us/op 75.426 us/op 1.30
archive index / 1 slots / 8 columns / flat files 354.37 us/op 350.66 us/op 1.01
archive index / 1 slots / 128 columns / legacy 9.7148 ms/op 1.9860 ms/op 4.89
archive index / 1 slots / 128 columns / flat files 4.5753 ms/op 4.2622 ms/op 1.07
archive index / 8 slots / 1 columns / legacy 173.84 us/op 166.74 us/op 1.04
archive index / 8 slots / 1 columns / flat files 1.0246 ms/op 996.12 us/op 1.03
archive index / 8 slots / 8 columns / legacy 543.01 us/op 579.14 us/op 0.94
archive index / 8 slots / 8 columns / flat files 3.2267 ms/op 4.0341 ms/op 0.80
archive index / 8 slots / 128 columns / legacy 97.378 ms/op 69.059 ms/op 1.41
archive index / 8 slots / 128 columns / flat files 199.27 ms/op 182.83 ms/op 1.09
head state / 1 slot / archive root index lookup 19.831 us/op 17.145 us/op 1.16
head state / 1 slot / archive block lookup, decode and hash 2.7353 ms/op 2.6343 ms/op 1.04
head state / 1 slots / 1 columns / legacy 21.901 us/op 20.779 us/op 1.05
head state / 1 slots / 1 columns / flat files 108.74 us/op 114.36 us/op 0.95
head state / 1 slots / 8 columns / legacy 70.623 us/op 74.708 us/op 0.95
head state / 1 slots / 8 columns / flat files 324.65 us/op 311.27 us/op 1.04
head state / 1 slots / 128 columns / legacy 10.002 ms/op 4.7641 ms/op 2.10
head state / 1 slots / 128 columns / flat files 5.6081 ms/op 4.0677 ms/op 1.38
head state / 8 slots / 1 columns / legacy 170.71 us/op 165.67 us/op 1.03
head state / 8 slots / 1 columns / flat files 1.0057 ms/op 856.26 us/op 1.17
head state / 8 slots / 8 columns / legacy 564.50 us/op 585.78 us/op 0.96
head state / 8 slots / 8 columns / flat files 3.2183 ms/op 3.1845 ms/op 1.01
head state / 8 slots / 128 columns / legacy 82.880 ms/op 67.137 ms/op 1.23
head state / 8 slots / 128 columns / flat files 295.29 ms/op 215.16 ms/op 1.37
array of 16000 items push then shift 1.3299 us/op 1.2743 us/op 1.04
LinkedList of 16000 items push then shift 7.4550 ns/op 6.5160 ns/op 1.14
array of 16000 items push then pop 84.672 ns/op 75.144 ns/op 1.13
LinkedList of 16000 items push then pop 6.2030 ns/op 5.8050 ns/op 1.07
array of 24000 items push then shift 1.9881 us/op 1.8789 us/op 1.06
LinkedList of 24000 items push then shift 7.4670 ns/op 6.1810 ns/op 1.21
array of 24000 items push then pop 118.50 ns/op 102.81 ns/op 1.15
LinkedList of 24000 items push then pop 6.2500 ns/op 5.8150 ns/op 1.07
intersect bitArray bitLen 8 3.9790 ns/op 3.7550 ns/op 1.06
intersect array and set length 8 30.530 ns/op 29.309 ns/op 1.04
intersect bitArray bitLen 128 24.099 ns/op 24.081 ns/op 1.00
intersect array and set length 128 520.15 ns/op 493.72 ns/op 1.05
bitArray.getTrueBitIndexes() bitLen 128 987.00 ns/op 880.00 ns/op 1.12
bitArray.getTrueBitIndexes() bitLen 248 1.7280 us/op 1.5900 us/op 1.09
bitArray.getTrueBitIndexes() bitLen 512 3.6440 us/op 3.2910 us/op 1.11
Full columns - reconstruct all 6 blobs 169.96 us/op 144.38 us/op 1.18
Full columns - reconstruct half of the blobs out of 6 86.451 us/op 68.909 us/op 1.25
Full columns - reconstruct single blob out of 6 33.931 us/op 31.533 us/op 1.08
Half columns - reconstruct all 6 blobs 403.48 ms/op 369.64 ms/op 1.09
Half columns - reconstruct half of the blobs out of 6 201.62 ms/op 185.86 ms/op 1.08
Half columns - reconstruct single blob out of 6 71.630 ms/op 65.300 ms/op 1.10
Set add up to 64 items then delete first 1.6748 us/op 2.2190 us/op 0.75
OrderedSet add up to 64 items then delete first 2.5496 us/op 3.4446 us/op 0.74
Set add up to 64 items then delete last 1.8879 us/op 2.4180 us/op 0.78
OrderedSet add up to 64 items then delete last 2.9186 us/op 3.3929 us/op 0.86
Set add up to 64 items then delete middle 1.9558 us/op 2.1803 us/op 0.90
OrderedSet add up to 64 items then delete middle 4.4635 us/op 4.8127 us/op 0.93
Set add up to 128 items then delete first 3.7341 us/op 4.2034 us/op 0.89
OrderedSet add up to 128 items then delete first 5.4970 us/op 6.2881 us/op 0.87
Set add up to 128 items then delete last 3.7181 us/op 3.8607 us/op 0.96
OrderedSet add up to 128 items then delete last 5.6848 us/op 5.8972 us/op 0.96
Set add up to 128 items then delete middle 3.7057 us/op 3.8800 us/op 0.96
OrderedSet add up to 128 items then delete middle 12.020 us/op 11.761 us/op 1.02
Set add up to 256 items then delete first 7.3617 us/op 7.8932 us/op 0.93
OrderedSet add up to 256 items then delete first 11.313 us/op 11.664 us/op 0.97
Set add up to 256 items then delete last 7.3748 us/op 7.6337 us/op 0.97
OrderedSet add up to 256 items then delete last 11.835 us/op 11.771 us/op 1.01
Set add up to 256 items then delete middle 7.3559 us/op 7.6215 us/op 0.97
OrderedSet add up to 256 items then delete middle 36.100 us/op 34.869 us/op 1.04
runFastConfirmationRules vc:100000 bc:96 eq:0 5.0101 ms/op 4.9707 ms/op 1.01
runFastConfirmationRules vc:600000 bc:96 eq:0 35.723 ms/op 33.893 ms/op 1.05
runFastConfirmationRules vc:1000000 bc:96 eq:0 59.023 ms/op 56.024 ms/op 1.05
runFastConfirmationRules vc:600000 bc:320 eq:0 35.651 ms/op 33.605 ms/op 1.06
runFastConfirmationRules vc:100000 bc:96 eq:1000 1.1480 s/op 1.1009 s/op 1.04
pass gossip attestations to forkchoice per slot 4.6851 ms/op 4.4644 ms/op 1.05
forkChoice updateHead vc 100000 bc 64 eq 0 453.10 us/op 440.79 us/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 0 2.7199 ms/op 2.6430 ms/op 1.03
forkChoice updateHead vc 1000000 bc 64 eq 0 4.4600 ms/op 4.4103 ms/op 1.01
forkChoice updateHead vc 600000 bc 320 eq 0 2.7556 ms/op 2.6696 ms/op 1.03
forkChoice updateHead vc 600000 bc 1200 eq 0 2.7679 ms/op 2.7334 ms/op 1.01
forkChoice updateHead vc 600000 bc 7200 eq 0 3.2605 ms/op 3.1090 ms/op 1.05
forkChoice updateHead vc 600000 bc 64 eq 1000 2.7262 ms/op 2.6860 ms/op 1.01
forkChoice updateHead vc 600000 bc 64 eq 10000 2.8195 ms/op 2.7734 ms/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 300000 7.5812 ms/op 7.0823 ms/op 1.07
forkChoice updateHead vc 600000 bc 64 eq 0 gloas boosted 3.1601 ms/op 3.1229 ms/op 1.01
computeDeltas 1400000 validators 0% inactive 13.392 ms/op 13.043 ms/op 1.03
computeDeltas 1400000 validators 10% inactive 12.534 ms/op 12.387 ms/op 1.01
computeDeltas 1400000 validators 20% inactive 11.942 ms/op 11.702 ms/op 1.02
computeDeltas 1400000 validators 50% inactive 9.6184 ms/op 9.6284 ms/op 1.00
computeDeltas 2100000 validators 0% inactive 19.864 ms/op 19.462 ms/op 1.02
computeDeltas 2100000 validators 10% inactive 18.587 ms/op 18.679 ms/op 1.00
computeDeltas 2100000 validators 20% inactive 17.667 ms/op 17.575 ms/op 1.01
computeDeltas 2100000 validators 50% inactive 14.290 ms/op 14.107 ms/op 1.01
altair processAttestation - 250000 vs - 7PWei normalcase 4.8716 ms/op 4.7816 ms/op 1.02
altair processAttestation - 250000 vs - 7PWei worstcase 7.7279 ms/op 6.2277 ms/op 1.24
altair processAttestation - setStatus - 1/6 committees join 100.39 us/op 89.686 us/op 1.12
altair processAttestation - setStatus - 1/3 committees join 187.63 us/op 179.55 us/op 1.05
altair processAttestation - setStatus - 1/2 committees join 262.77 us/op 248.64 us/op 1.06
altair processAttestation - setStatus - 2/3 committees join 338.76 us/op 330.21 us/op 1.03
altair processAttestation - setStatus - 4/5 committees join 490.17 us/op 465.60 us/op 1.05
altair processAttestation - setStatus - 100% committees join 562.01 us/op 537.84 us/op 1.04
altair processBlock - 250000 vs - 7PWei normalcase 8.8762 ms/op 9.6718 ms/op 0.92
altair processBlock - 250000 vs - 7PWei normalcase hashState 26.278 ms/op 28.180 ms/op 0.93
altair processBlock - 250000 vs - 7PWei worstcase 31.730 ms/op 31.369 ms/op 1.01
altair processBlock - 250000 vs - 7PWei worstcase hashState 61.403 ms/op 62.814 ms/op 0.98
phase0 processBlock - 250000 vs - 7PWei normalcase 3.2923 ms/op 3.2756 ms/op 1.01
phase0 processBlock - 250000 vs - 7PWei worstcase 36.494 ms/op 34.225 ms/op 1.07
altair processEth1Data - 250000 vs - 7PWei normalcase 308.97 us/op 298.84 us/op 1.03
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:16 3.2000 us/op 3.1640 us/op 1.01
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:220 20.215 us/op 23.139 us/op 0.87
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:43 5.7340 us/op 6.3920 us/op 0.90
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:19 3.6290 us/op 3.9200 us/op 0.93
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1021 92.194 us/op 93.337 us/op 0.99
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11778 1.4484 ms/op 1.3984 ms/op 1.04
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.9323 ms/op 1.8080 ms/op 1.07
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.8938 ms/op 1.9317 ms/op 0.98
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.7955 ms/op 3.5455 ms/op 1.07
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.2173 ms/op 2.1120 ms/op 1.05
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.1493 ms/op 3.8925 ms/op 1.07
Tree 40 250000 create 337.68 ms/op 310.64 ms/op 1.09
Tree 40 250000 get(125000) 102.34 ns/op 97.154 ns/op 1.05
Tree 40 250000 set(125000) 1.0888 us/op 1.0210 us/op 1.07
Tree 40 250000 toArray() 10.868 ms/op 9.8453 ms/op 1.10
Tree 40 250000 iterate all - toArray() + loop 10.094 ms/op 9.5708 ms/op 1.05
Tree 40 250000 iterate all - get(i) 36.187 ms/op 34.830 ms/op 1.04
Array 250000 create 2.3421 ms/op 2.4326 ms/op 0.96
Array 250000 clone - spread 775.65 us/op 796.91 us/op 0.97
Array 250000 get(125000) 0.29400 ns/op 0.29300 ns/op 1.00
Array 250000 set(125000) 0.29500 ns/op 0.29300 ns/op 1.01
Array 250000 iterate all - loop 57.021 us/op 56.064 us/op 1.02
phase0 afterProcessEpoch - 250000 vs - 7PWei 20.888 ms/op 20.231 ms/op 1.03
Array.fill - length 1000000 4.2455 ms/op 4.0634 ms/op 1.04
Array push - length 1000000 14.759 ms/op 13.688 ms/op 1.08
Array.get 0.20395 ns/op 0.19786 ns/op 1.03
Uint8Array.get 0.26433 ns/op 0.25500 ns/op 1.04
phase0 beforeProcessEpoch - 250000 vs - 7PWei 14.399 ms/op 12.993 ms/op 1.11
altair processEpoch - mainnet_e81889 189.13 ms/op 171.11 ms/op 1.11
mainnet_e81889 - altair beforeProcessEpoch 49.262 ms/op 38.231 ms/op 1.29
mainnet_e81889 - altair processJustificationAndFinalization 4.4360 us/op 4.2830 us/op 1.04
mainnet_e81889 - altair processInactivityUpdates 3.6175 ms/op 3.3563 ms/op 1.08
mainnet_e81889 - altair processRewardsAndPenalties 17.660 ms/op 15.793 ms/op 1.12
mainnet_e81889 - altair processRegistryUpdates 573.00 ns/op 537.00 ns/op 1.07
mainnet_e81889 - altair processSlashings 143.00 ns/op 136.00 ns/op 1.05
mainnet_e81889 - altair processEth1DataReset 137.00 ns/op 130.00 ns/op 1.05
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.6072 ms/op 1.6435 ms/op 0.98
mainnet_e81889 - altair processSlashingsReset 703.00 ns/op 693.00 ns/op 1.01
mainnet_e81889 - altair processRandaoMixesReset 914.00 ns/op 878.00 ns/op 1.04
mainnet_e81889 - altair processHistoricalRootsUpdate 141.00 ns/op 133.00 ns/op 1.06
mainnet_e81889 - altair processParticipationFlagUpdates 453.00 ns/op 439.00 ns/op 1.03
mainnet_e81889 - altair processSyncCommitteeUpdates 107.00 ns/op 108.00 ns/op 0.99
mainnet_e81889 - altair afterProcessEpoch 22.017 ms/op 21.255 ms/op 1.04
capella processEpoch - mainnet_e217614 666.31 ms/op 543.12 ms/op 1.23
mainnet_e217614 - capella beforeProcessEpoch 60.923 ms/op 68.169 ms/op 0.89
mainnet_e217614 - capella processJustificationAndFinalization 4.8780 us/op 4.4560 us/op 1.09
mainnet_e217614 - capella processInactivityUpdates 14.699 ms/op 10.974 ms/op 1.34
mainnet_e217614 - capella processRewardsAndPenalties 94.703 ms/op 90.598 ms/op 1.05
mainnet_e217614 - capella processRegistryUpdates 4.4550 us/op 4.3240 us/op 1.03
mainnet_e217614 - capella processSlashings 142.00 ns/op 136.00 ns/op 1.04
mainnet_e217614 - capella processEth1DataReset 136.00 ns/op 137.00 ns/op 0.99
mainnet_e217614 - capella processEffectiveBalanceUpdates 14.852 ms/op 5.1950 ms/op 2.86
mainnet_e217614 - capella processSlashingsReset 692.00 ns/op 649.00 ns/op 1.07
mainnet_e217614 - capella processRandaoMixesReset 971.00 ns/op 911.00 ns/op 1.07
mainnet_e217614 - capella processHistoricalSummariesUpdate 142.00 ns/op 133.00 ns/op 1.07
mainnet_e217614 - capella processParticipationFlagUpdates 452.00 ns/op 437.00 ns/op 1.03
mainnet_e217614 - capella afterProcessEpoch 58.434 ms/op 55.552 ms/op 1.05
phase0 processEpoch - mainnet_e58758 196.20 ms/op 176.37 ms/op 1.11
mainnet_e58758 - phase0 beforeProcessEpoch 48.440 ms/op 37.524 ms/op 1.29
mainnet_e58758 - phase0 processJustificationAndFinalization 4.7130 us/op 4.5030 us/op 1.05
mainnet_e58758 - phase0 processRewardsAndPenalties 16.353 ms/op 15.435 ms/op 1.06
mainnet_e58758 - phase0 processRegistryUpdates 2.2720 us/op 2.1870 us/op 1.04
mainnet_e58758 - phase0 processSlashings 143.00 ns/op 151.00 ns/op 0.95
mainnet_e58758 - phase0 processEth1DataReset 135.00 ns/op 139.00 ns/op 0.97
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 845.92 us/op 882.86 us/op 0.96
mainnet_e58758 - phase0 processSlashingsReset 910.00 ns/op 816.00 ns/op 1.12
mainnet_e58758 - phase0 processRandaoMixesReset 994.00 ns/op 933.00 ns/op 1.07
mainnet_e58758 - phase0 processHistoricalRootsUpdate 139.00 ns/op 141.00 ns/op 0.99
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.7850 us/op 978.00 ns/op 1.83
mainnet_e58758 - phase0 afterProcessEpoch 17.765 ms/op 17.198 ms/op 1.03
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.1161 ms/op 985.71 us/op 1.13
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.6668 ms/op 1.5890 ms/op 1.05
gloas processInactivityUpdates - 250000 inactivity leak all eligible missed target 9.8059 ms/op 9.0286 ms/op 1.09
phase0 processRegistryUpdates - 250000 normalcase 2.4550 us/op 2.9020 us/op 0.85
phase0 processRegistryUpdates - 250000 badcase_full_deposits 145.07 us/op 151.47 us/op 0.96
phase0 processRegistryUpdates - 250000 worstcase 0.5 60.345 ms/op 51.379 ms/op 1.17
altair processRewardsAndPenalties - 250000 normalcase 14.631 ms/op 13.982 ms/op 1.05
altair processRewardsAndPenalties - 250000 worstcase 14.117 ms/op 13.684 ms/op 1.03
phase0 getAttestationDeltas - 250000 normalcase 5.7966 ms/op 5.5322 ms/op 1.05
phase0 getAttestationDeltas - 250000 worstcase 5.7971 ms/op 5.6016 ms/op 1.03
phase0 processSlashings - 250000 worstcase 63.126 us/op 66.364 us/op 0.95
altair processSyncCommitteeUpdates - 250000 13.651 ms/op 13.082 ms/op 1.04
BeaconState.hashTreeRoot - No change 173.00 ns/op 168.00 ns/op 1.03
BeaconState.hashTreeRoot - 1 full validator 75.585 us/op 56.746 us/op 1.33
BeaconState.hashTreeRoot - 32 full validator 916.68 us/op 653.08 us/op 1.40
BeaconState.hashTreeRoot - 512 full validator 7.6233 ms/op 7.6193 ms/op 1.00
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 96.296 us/op 102.39 us/op 0.94
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.5019 ms/op 1.2271 ms/op 1.22
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 15.882 ms/op 12.843 ms/op 1.24
BeaconState.hashTreeRoot - 1 balances 75.029 us/op 54.613 us/op 1.37
BeaconState.hashTreeRoot - 32 balances 782.94 us/op 545.08 us/op 1.44
BeaconState.hashTreeRoot - 512 balances 5.7829 ms/op 4.7124 ms/op 1.23
BeaconState.hashTreeRoot - 250000 balances 121.42 ms/op 103.90 ms/op 1.17
aggregationBits - 2048 els - zipIndexesInBitList 21.079 us/op 19.208 us/op 1.10
regular array get 100000 times 23.349 us/op 23.069 us/op 1.01
wrappedArray get 100000 times 23.281 us/op 22.860 us/op 1.02
arrayWithProxy get 100000 times 10.701 ms/op 10.135 ms/op 1.06
ssz.Root.equals 21.887 ns/op 21.069 ns/op 1.04
byteArrayEquals 21.669 ns/op 20.913 ns/op 1.04
Buffer.compare 9.0470 ns/op 8.7580 ns/op 1.03
processSlot - 1 slots 10.597 us/op 7.9330 us/op 1.34
processSlot - 32 slots 1.8547 ms/op 1.6489 ms/op 1.12
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.7745 ms/op 2.6686 ms/op 1.41
getCommitteeAssignments - req 1 vs - 250000 vc 2.4391 ms/op 1.6401 ms/op 1.49
getCommitteeAssignments - req 100 vs - 250000 vc 3.5104 ms/op 3.3503 ms/op 1.05
getCommitteeAssignments - req 1000 vs - 250000 vc 3.7658 ms/op 3.6141 ms/op 1.04
findModifiedValidators - 10000 modified validators 1.0496 s/op 770.94 ms/op 1.36
findModifiedValidators - 1000 modified validators 726.56 ms/op 572.48 ms/op 1.27
findModifiedValidators - 100 modified validators 422.96 ms/op 421.79 ms/op 1.00
findModifiedValidators - 10 modified validators 417.38 ms/op 344.52 ms/op 1.21
findModifiedValidators - 1 modified validators 302.97 ms/op 209.53 ms/op 1.45
findModifiedValidators - no difference 277.60 ms/op 238.04 ms/op 1.17
migrate state 1500000 validators, 3400 modified, 2000 new 3.4556 s/op 3.0423 s/op 1.14
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 3.4600 ns/op 3.6900 ns/op 0.94
state getBlockRootAtSlot - 250000 vs - 7PWei 370.80 ns/op 299.48 ns/op 1.24
computeProposerIndex 100000 validators 2.7596 ms/op 2.6837 ms/op 1.03
getNextSyncCommitteeIndices 1000 validators 1.4525 ms/op 1.4104 ms/op 1.03
getNextSyncCommitteeIndices 10000 validators 13.879 ms/op 13.528 ms/op 1.03
getNextSyncCommitteeIndices 100000 validators 55.337 ms/op 52.509 ms/op 1.05
computeProposers - vc 250000 1.3136 ms/op 1.2331 ms/op 1.07
computeEpochShuffling - vc 250000 20.883 ms/op 20.201 ms/op 1.03
getNextSyncCommittee - vc 250000 13.362 ms/op 12.554 ms/op 1.06
nodejs block root to RootHex using toHex 99.131 ns/op 96.838 ns/op 1.02
nodejs block root to RootHex using toRootHex 66.339 ns/op 63.338 ns/op 1.05
nodejs fromHex(blob) 1.1568 ms/op 874.53 us/op 1.32
nodejs fromHexInto(blob) 677.68 us/op 650.25 us/op 1.04
nodejs block root to RootHex using the deprecated toHexString 645.80 ns/op 633.13 ns/op 1.02
nodejs byteArrayEquals 32 bytes (block root) 26.208 ns/op 25.262 ns/op 1.04
nodejs byteArrayEquals 48 bytes (pubkey) 37.907 ns/op 36.280 ns/op 1.04
nodejs byteArrayEquals 96 bytes (signature) 38.950 ns/op 39.175 ns/op 0.99
nodejs byteArrayEquals 1024 bytes 46.295 ns/op 42.094 ns/op 1.10
nodejs byteArrayEquals 131072 bytes (blob) 1.7718 us/op 1.7159 us/op 1.03
browser block root to RootHex using toHex 147.33 ns/op 142.82 ns/op 1.03
browser block root to RootHex using toRootHex 132.27 ns/op 127.79 ns/op 1.04
browser fromHex(blob) 1.9250 ms/op 1.7805 ms/op 1.08
browser fromHexInto(blob) 673.29 us/op 662.83 us/op 1.02
browser block root to RootHex using the deprecated toHexString 440.85 ns/op 410.41 ns/op 1.07
browser byteArrayEquals 32 bytes (block root) 28.261 ns/op 27.972 ns/op 1.01
browser byteArrayEquals 48 bytes (pubkey) 39.646 ns/op 39.318 ns/op 1.01
browser byteArrayEquals 96 bytes (signature) 74.131 ns/op 73.852 ns/op 1.00
browser byteArrayEquals 1024 bytes 754.87 ns/op 751.40 ns/op 1.00
browser byteArrayEquals 131072 bytes (blob) 95.688 us/op 94.786 us/op 1.01

by benchmarkbot/action

@nflaig
nflaig merged commit 3acad90 into unstable Oct 8, 2026
24 of 27 checks passed
@nflaig
nflaig deleted the nc/schedule-gloas-hoodi branch October 8, 2026 20:32
@wemeetagain

Copy link
Copy Markdown
Member

🎉 This PR is included in v1.50.0 🎉

matthewkeil pushed a commit that referenced this pull request Oct 22, 2026
**Motivation**

The Hoodi Glamsterdam fork planned for 26 October 2026 (epoch `132352`)
was unscheduled on today's ACD call ([ACDE
#248](ethereum/pm#2267)). The upstream config
already reverted it in
[eth-clients/hoodi#33](eth-clients/hoodi#33).

**Description**

Reverts #10313:

- `GLOAS_FORK_EPOCH` on Hoodi goes back to `Infinity`
- removes the `GAS_LIMIT_SCHEDULE` entry that raised the gas limit to
200M at the fork epoch
- restores the other clients' Hoodi interop config snapshots

**AI Assistance Disclosure**

Written with AI assistance (Claude).

Co-authored-by: lodekeeper <lodekeeper@users.noreply.github.com>
matthewkeil pushed a commit that referenced this pull request Oct 22, 2026
**Motivation**

The Hoodi Glamsterdam fork planned for 26 October 2026 (epoch `132352`)
was unscheduled on today's ACD call ([ACDE
#248](ethereum/pm#2267)). The upstream config
already reverted it in
[eth-clients/hoodi#33](eth-clients/hoodi#33).

**Description**

Reverts #10313:

- `GLOAS_FORK_EPOCH` on Hoodi goes back to `Infinity`
- removes the `GAS_LIMIT_SCHEDULE` entry that raised the gas limit to
200M at the fork epoch
- restores the other clients' Hoodi interop config snapshots

**AI Assistance Disclosure**

Written with AI assistance (Claude).

Co-authored-by: lodekeeper <lodekeeper@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants