# Teku: Gloas spec-conformance review

Public-source review, 2026-10-27. Scope: EIP-8282 builder requests and onboarding, EIP-7688 progressive SSZ, EIP-8045 proposers, EIP-8061 churn. **Two known spec-version-lag candidates and one additional decoding/gossip candidate** are detailed below. No client, node, devnet, transaction, or network test was run. Findings are static reasoning, not reproduced exploits. The Gloas mainnet epoch remains unscheduled in [the pinned mainnet configuration][mainnet].

## Pins and specification versions

| Source | Branch/version | Exact commit | Pin source |
|---|---|---|---|
| Teku | master | `2c35574b3373cbe8ad121a768d98f066aec05b73` | [commits/master](https://api.github.com/repos/Consensys-Incorporated/teku/commits/master), commit time 2026-10-27 16:51:17Z |
| consensus-specs | master | `8a80ffa82bd49aac0dd6db17f9e8150aa257fbc2` | [commits/master](https://api.github.com/repos/ethereum/consensus-specs/commits/master), 2026-10-27 16:28:12Z |
| Lighthouse | stable | `a376defa30470923556d91bdeb15a802e297f31f` | [commits/stable](https://api.github.com/repos/sigp/lighthouse/commits/stable), 2026-10-22 23:27:50Z |
| EIPs | master | `d4c575521d99ec881a444ab3af604e684b5f0743` | [commits/master](https://api.github.com/repos/ethereum/EIPs/commits/master) |
| execution-specs | default branch, forks/bogota | `7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b` | [branch head](https://api.github.com/repos/ethereum/execution-specs/commits/forks/bogota); Amsterdam subtree used for scope |
| consensus-specs release | v1.7.0-beta.4 | `aa16bb4c156184e9548a997d53efaf2a228a6304` | [comparison with pinned master](https://api.github.com/repos/ethereum/consensus-specs/compare/v1.7.0-beta.4...8a80ffa82bd49aac0dd6db17f9e8150aa257fbc2) |

Pins came from the GitHub API; code was read from pinned raw.githubusercontent.com URLs, not GitHub HTML. The ledger links pinned files and line ranges; `D` is Lighthouse’s SSZ dependency.

Teku's default reference-test target is explicitly **v1.7.0-beta.4**, with a separate nightly option: [build.gradle#L528-L534][target]. Its onboarding matches that release's old routing, not spec master. The comparison confirms the only **behavioral** change within the four named Gloas documents plus fork.md is PR 5736's onboarding change. There is also a nonbehavioral EIP-7521 → EIP-7251 correction in the consolidation helper docstring ([beacon-chain.md#L1479-L1486][s-deposit]); validator, p2p-interface and weak-subjectivity documents are byte-identical to beta.4. Thus “only fork.md differs” is behaviorally, not literally, accurate.

[EIP-7773][meta] supplies the 18 scheduled core EIPs below. Their text version is the EIPs pin (no separate semantic version). The implementation-spec versions are the pinned [Amsterdam subtree][el-list] and consensus-specs master; Amsterdam lists the corresponding 14 EL EIPs.

Scheduled core EIPs: **2780, 7688, 7708, 7732, 7778, 7843, 7928, 7954, 7976, 7981, 7997, 8024, 8037, 8038, 8045, 8061, 8246, 8282**. Each text is `EIPS/eip-N.md` at the EIPs pin above ([pinned text directory](https://github.com/ethereum/EIPs/tree/d4c575521d99ec881a444ab3af604e684b5f0743/EIPS)). The four assigned EIPs' statuses are 7688: Review; 8282/8045/8061: Last Call. All four use the Gloas spec pin; 8282 also has Amsterdam execution rules. Other EIPs are inventory only.

The meta-EIP separately lists networking EIPs 7975, 8070, 8136, 8159, 8189 and informational EIPs 7904, 8261; these are not silently added to the scheduled-core list. Assigned EIP pages read: [8282](https://eips.ethereum.org/EIPS/eip-8282), [7688](https://eips.ethereum.org/EIPS/eip-7688), [8045](https://eips.ethereum.org/EIPS/eip-8045), [8061](https://eips.ethereum.org/EIPS/eip-8061). The executable consensus rules take precedence over summary prose where they differ.

## Candidates

### C1 — EIP-8282: non-builder deposits fund a builder at the fork — spec-version lag, known

1. **Spec, verbatim.** [specs/gloas/fork.md#L83-L119][s-onboard]:
   ```python
   if not is_builder_withdrawal_credential(deposit.withdrawal_credentials):
       pending_deposits.append(deposit)
       continue
   ```
   The gate precedes builder lookup; only builder-credential deposits may fund builders.
2. **Teku, verbatim.** [GloasStateUpgrade.java#L222-L250][t-onboard] looks up an existing builder first, and that branch contains:
   ```java
   builders.set(
       builderIndex,
       builder.copyWithNewBalance(builder.getBalance().plus(deposit.getAmount())));
   ```
   Credential checking appears only in the missing-builder alternative. This is Gloas-only upgrade logic.
3. **Differing condition, in words.** At upgrade the pending queue contains a valid builder-credential registration for a new public key, followed by a non-builder-credential deposit for that key; it is not already a validator. Both implementations register the first deposit. Teku credits the second to the builder and removes it from the queue. Master leaves it queued for validator processing. Builder balance and pending-deposit root, hence the state root, differ. Both deposits must remain pending at the fork.
4. **Lighthouse.** [consensus/state_processing/src/upgrade/gloas.rs#L258-L303][l-onboard] agrees with Teku: credentials are checked inside the missing-builder arm, while the existing-builder arm executes `builder.balance.safe_add_assign(deposit.amount)?;`. Stable does not disprove the master-spec divergence.
5. **Confidence / attempted disproof.** **High** for the conditional state-root difference. The post-fork prefix gate is correct but cannot repair this separate upgrade path. Checked iteration order and same-pass builder visibility. Compared beta.4: old routing is specified there, so this is version lag, not nonconformance to Teku's declared release target. Spec PR 5736 and Teku PR 11582 describe this exact case. No assertion that a particular public network had such a pending queue.
6. **Severity and known-check.** **Consensus split**, conditional on a qualifying fork queue and mixed spec targets. **Known:** [Teku PR 11582](https://github.com/Consensys-Incorporated/teku/pull/11582), open/unmerged; [issue 11510](https://github.com/Consensys-Incorporated/teku/issues/11510), closed; [spec PR 5736](https://github.com/ethereum/consensus-specs/pull/5736), merged 2026-10-26. No matching accessible Hive/EEST test result established; limitations below.

### C2 — EIP-8282: validator-key overlap blocks a valid builder registration — spec-version lag, known

1. **Spec, verbatim.** [specs/gloas/fork.md#L65-L69][s-onboard]: “A valid builder registration can use a validator's public key.” At lines 95–119 the validator/pending-validator test is confined to the **invalid-signature** branch; a valid signature reaches `add_builder_to_registry`.
2. **Teku, verbatim.** [GloasStateUpgrade.java#L222-L268][t-onboard]:
   ```java
   if (validatorsUtil.getValidatorIndex(state, pubkey).isPresent()) {
     pendingDeposits.add(deposit);
     continue;
   }
   ```
   And, before checking the builder deposit signature:
   ```java
   if (pendingValidators.isPendingValidator(pubkey)) {
     pendingDeposits.add(deposit);
     return;
   }
   ```
3. **Differing condition, in words.** A queued deposit has builder credentials and a valid validator-deposit-domain signature appropriate to fork onboarding. Its public key either already belongs to a validator or has an earlier valid non-builder deposit retained in the queue. No builder yet uses the key. Master registers the builder with the fixed payload-builder version and removes this deposit from the queue. Teku retains it and creates no builder. Registry, pending queue, and upgrade root differ. 
4. **Lighthouse.** [gloas.rs#L258-L295][l-onboard] agrees with Teku: existing validators are skipped at lines 260–263; `valid_pending_validator_pubkeys.contains(&deposit.pubkey)` retains the deposit at lines 278–280 before signature checking.
5. **Confidence / attempted disproof.** **High.** [The lazy tracker][t-tracker] requires an earlier valid validator deposit; an invalid earlier deposit alone is not a trigger. Invalid builder signatures retaining validator top-ups are correct under master, not another finding. Beta.4 supports the old priority, explaining both clients' agreement. Post-fork builder requests do not impose this validator-key veto.
6. **Severity and known-check.** **Consensus split**, conditional at upgrade. **Known:** open [Teku PR 11582](https://github.com/Consensys-Incorporated/teku/pull/11582) explicitly covers existing and pending validators; [issue 11510](https://github.com/Consensys-Incorporated/teku/issues/11510) closed; [spec PR 5736](https://github.com/ethereum/consensus-specs/pull/5736) merged. Count C1/C2 as two manifestations of one known version-lag family, not two novel discoveries.

### C3 — EIP-7688: removed transaction-count cap retained in Gloas decoder — not found

1. **Spec, verbatim.** [EIP-7688#L81-L86][e-tx]: “The `MAX_TRANSACTIONS_PER_PAYLOAD` (1M) limit is no longer enforced”. [beacon-chain.md#L352-L371][s-tx] declares `Transaction(ProgressiveList[Byte])` and `Transactions(ProgressiveList[Transaction])` without the old bounds. For an envelope's unseen beacon block, [p2p-interface.md#L835-L838][s-gossip] says:
   ```python
   if block_root not in store.blocks:
       raise GossipIgnore("envelope's block has not been seen")
   ```
2. **Teku, verbatim.** The **GLOAS** creator in [SchemaRegistryBuilder.java#L436-L452][t-tx] still supplies the old count bound:
   ```java
   SszProgressiveListSchema.create(
       registry.get(TRANSACTION_SCHEMA),
       SszSchemaHints.sszPackedByteLists(),
       SpecConfigBellatrix.required(specConfig).getMaxTransactionsPerPayload()))
   ```
   The [mainnet preset][t-txpreset] is 1,048,576. [PackedByteListsUtil.java#L49-L51][t-packed] checks `elementsCount > maxElementCount` and throws `SszMaxLengthExceededException`, reached by the [progressive packed decoder][t-fast]. Gossip [decodes before processing][t-gossip]; [SSZ errors become decoding exceptions][t-codec], mapped to [ValidationResult.Invalid][t-gossip]. The finding is the Gloas schema bound.
3. **Differing condition, in words.** A Gloas execution-payload gossip envelope references an unseen block and contains 1,048,577 empty transaction byte strings. Other variable fields are small/empty and fixed fields correctly encoded. Its transaction offset table occupies 4,194,308 bytes, leaving room below the [10,485,760-byte ceiling][mainnet]. Empty byte strings are legal opaque SSZ transactions, but invalid execution transactions. Teku rejects during decoding; the specified gossip function reaches unknown-block IGNORE. The established distinction is **decoding/gossip verdict**, not valid execution-block acceptance. No packet was constructed or sent.
4. **Lighthouse.** [execution_payload.rs#L19-L30][l-tx] uses `ProgressiveVariableList<ProgressiveVariableList<u8>>`. [Cargo.toml][l-dep] pins the SSZ dependency; it [defaults the length type to U0][d-default] and [maps zero to no bound][d-default]. The [unknown-block branch][l-unknown] returns `BlockRootUnknown`, mapped to [MessageAcceptance::Ignore][l-ignore]. It agrees with the spec on this count rule and verdict path.
5. **Confidence / attempted disproof.** **Medium overall; high for the static extra bound.** Checked the actual packed fast path and Lighthouse generic default/error mapping. The offset-only case fits the byte ceiling. Its EL-invalid contents disprove treating that case as a valid-block split. The old 1-GiB per-transaction cap also remains in [ProgressiveTransactionSchema.java#L22-L34][t-txbyte], but exceeds the normal message ceiling and adds no demonstrated gossip impact; not promoted separately. No runtime reproduction, valid-block reachability, or peer-score effect was established.
6. **Severity and known-check.** **Cosmetic** within the supplied vocabulary: an observable gossip classification/conformance discrepancy, without demonstrated state-root or head divergence. Peer scoring was not measured. **Not found** as a removed-transaction-cap bug in the issue/PR queries below. Related merged bounds-hardening PRs 11299/11297 are implementation history, not evidence this particular extra bound is reported or fixed.

### Restricted entry

Teku — EIP-8061 — affects live code, details withheld.

## Rules checked and found consistent in inspected paths

“Consistent” means static correspondence in the cited path, not exhaustive input testing. Enforcing valid runtime limits in schemas need not be repeated in the block processor. Missing old processor assertions alone are not a bug.

| Rule checked | Specification | Teku evidence / result |
|---|---|---|
| 8282 registration/top-up | [deposit][s-deposit], [signature][s-deposit] | [processor L71–126][t-deposit]: prefix checked before lookup, fixed payload-builder version, dedicated signature domain for new key only. Exited builder epoch resets only at zero balance, to current epoch plus delay; nonzero balance preserves epoch. |
| 8282 exit | [exit rule][s-deposit], [active rule][s-deposit] | [processor][t-deposit], [predicate][t-active], [pending sum][t-pending], [mutator][t-delay]: known active builder, matching address, no pending payments/withdrawals; delay computed from current epoch. |
| 8282 payment/request order | [apply-parent][s-deposit] | [block processor L162–214][t-payment]: settles current/previous payment or requeues older parent's payment before requests; deposits precede exits. PR 11408 fix present. |
| 8282 encoding/decoding | [decode][s-decode], [encode][s-deposit] | [codec parsing][t-decode], [encoding][t-decode]: nonempty data, strict type ordering, fixed records, types 03/04; omit empty lists. [List decoder][t-fast] enforces record alignment. |
| 8282/7688 requests root | [container][s-deposit], [gossip][s-gossip] | [schema][t-requests], [helper][t-req-root], [block check][t-payment]: SSZ root of five-field progressive container, not EL requests hash. |
| 7688 request/operation limits | [request bounds][s-req-limits], [operations][s-deposit] | [registry][t-validator-requests], [builder bounds][t-validator-requests], [body schema][t-op-limits]: appropriate bounds; deposit requests unbounded, legacy block deposits zero. |
| 7688 decode/mutation | [runtime requirement][e-tx] | [decoder][t-fast], [mutations][t-list-mutate]: count checks before materialization, append/set bounds. [Attestation schemas][t-validator-requests] and [bitlist parser][t-bitlist] bound indices/bits and remove termination bit. C3 is an extra-bound exception. |
| 7688 merkleization | [recursion][e-tree], [length mix-in][e-tree], [container rule][e-container] | [tree][t-tree], [list root][t-fast], [container][t-container], [bitmap][t-container], [decoder/root][t-container]: capacities 1/4/16…, zero terminator, length mix-in; active bitmap ≤256 bits, final bit set, field-count consistency, unchanged serialized order/canonical offsets. |
| 7688 upgrade | [fork conversion][s-migration] | [upgrade L97–156][t-tracker], [common conversion][t-field-conversion]: rematerializes progressive list roots; history accumulators remain bounded. |
| 8045 proposers / lookahead | [sampling][s-deposit], [existing assignments][e-proposer], [fork copy][s-migration] | [accessor][t-pending]: filters active indices for unslashed before sampling. [Upgrade L151–156][t-tracker] copies Fulu lookahead instead of recomputing it. |
| 8061 budgets | [churn functions][s-deposit] | [accessor L101–142][t-pending]: capped activation, uncapped exit with floor, independent consolidation without floor; balance-increment rounding. [Epoch processor][t-activation] uses activation-only deposit budget. |
| 8061 exit epoch accounting | [exit calculation][s-deposit] | [mutator L72–100][t-delay]: max earliest epoch, replenish only on new epoch, ceiling-divide excess, subtract consumed balance; exact fit does not advance epoch. |
| 8061 weak subjectivity | [formula][s-wsp] | [calculator][t-wsp], [base arithmetic][t-wsp-base], [Gloas wiring][t-wsp-wire]: floor two-thirds exit and one-third activation separately; add consolidation; safety-decay fraction plus withdrawal delay. |

## Known-check and public test-result cross-check

GitHub issue search includes **issues and PRs, open and closed** unless qualified. All searches used `repo:Consensys-Incorporated/teku`. Numeric hits were checked for relevance rather than mistaken for EIP matches. API responses supplied merge/state status. Broad `gloas` returned 574 hits: only its first 100 updated results were inspected, supplemented by narrower complete searches. 

| Candidate / purpose | Queries and outcome |
|---|---|
| C1/C2 | `8282` (5), `gloas` (574, first 100), `epbs` (75), `onboardBuildersFromPendingDeposits` (8), `onboard_builders_from_pending_deposits` (2), `5736` (5), `builder validator deposits` (19). Exact snake-case rule with `is:open` finds 11582; `is:closed` finds 11154 (distinct performance issue). **Known** through 11582/11510 and spec 5736. |
| C3 | `7688` (11), `"MAX_TRANSACTIONS_PER_PAYLOAD"` (3 unrelated older hits), `"MAX_BYTES_PER_TRANSACTION"` (3, no matching removed-cap report), `"progressive" "limits"` (10), `"transaction" "limit" "gloas"` (1: 11415, legacy deposits), `"gloas" "transactions"` (14), `"epbs" "transactions"` (1), `"createTransactionsSchemaProvider"` (0), `"ProgressiveTransactionSchema"` (0). **Not found** for this exact count-cap discrepancy. |
| Other rules | `8045` (6), `8061` (10). Relevant implementation history: 10766 proposer changes, 10629 churn, 10739 weak subjectivity. This does not certify absence of defects. |

Search endpoint used: [GitHub issue search](https://api.github.com/search/issues?q=repo%3AConsensys-Incorporated%2Fteku%20onboard_builders_from_pending_deposits&per_page=100), substituting the exact queries above (100 results/page). One broad query was briefly rate-limited; narrower searches subsequently completed. 

Known fixes checked:

- [10983](https://api.github.com/repos/Consensys-Incorporated/teku/pulls/10983): **merged**, 2026-07-20, additional 7688 validations. Current code subsequently moves many bounds into schemas; missing old assertions are not re-reported.
- [11408](https://api.github.com/repos/Consensys-Incorporated/teku/pulls/11408): **merged**, 2026-10-06, payment before requests. Current ordering checked as correct for the exit guard.
- [11299](https://api.github.com/repos/Consensys-Incorporated/teku/pulls/11299): **merged**, 2026-09-18, optional progressive-list bounds. [11297](https://api.github.com/repos/Consensys-Incorporated/teku/pulls/11297): **merged**, 2026-09-22, bounds/error handling. Neither establishes that C3's particular extra bound is intended under EIP-7688.
- [11582 API](https://api.github.com/repos/Consensys-Incorporated/teku/pulls/11582): **open/unmerged**. Its author reports master-generated fork tests passing on the PR and failing on current master in altered routing cases. This is a third-party report, **not a test run here**. Beta.4 vectors cannot disprove master-vs-beta.4 candidates.

Public Hive/EEST cross-check attempted for **each of C1, C2, C3**, without contacting nodes:

- [Hive dashboard](https://hive.ethpandaops.io/) returned no rendered result rows via browsing and HTTP 403 on direct retrieval. [Legacy dashboard](https://hive-results.ethdevops.io/) was inaccessible; direct retrieval was blocked by environment network policy. **No test-level results could be read there.**
- [EEST site](https://eest.ethereum.org/) says tests merged into execution-specs. Read [tests@v21.0.2 release](https://api.github.com/repos/ethereum/execution-specs/releases/tags/tests%40v21.0.2), published 2026-10-26, and closed [Glamsterdam devnet v8.1.0 tracker #3295](https://api.github.com/repos/ethereum/execution-specs/issues/3295). These document fixtures/Hive infrastructure, not Teku-specific outcomes for these CL conditions. No matching results found in those documents.
- Searches: `Glamsterdam hive execution spec tests results teku builder onboarding 5736`, `site:github.com/ethereum/hive "glamsterdam" "teku"`, `site:github.com/ethereum/execution-specs "Glamsterdam" "hive" results`. None supplied a test-level result confirming or disproving C1–C3. Generic devnet health and unrelated EL failures are not evidence for these candidates.

## Pinned source URL ledger

Evidence-bearing URLs read are linked above and below. Code was read via the corresponding raw.githubusercontent.com URL. Repeated general-review citations share a file range; candidate excerpts identify the narrower lines.

[meta]: https://github.com/ethereum/EIPs/blob/d4c575521d99ec881a444ab3af604e684b5f0743/EIPS/eip-7773.md#L21-L55
[el-list]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/__init__.py#L1-L38
[target]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/build.gradle#L528-L534
[mainnet]: https://github.com/ethereum/consensus-specs/blob/8a80ffa82bd49aac0dd6db17f9e8150aa257fbc2/configs/mainnet.yaml#L58-L172
[s-onboard]: https://github.com/ethereum/consensus-specs/blob/8a80ffa82bd49aac0dd6db17f9e8150aa257fbc2/specs/gloas/fork.md#L65-L121
[t-onboard]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/gloas/forktransition/GloasStateUpgrade.java#L214-L273
[t-tracker]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/gloas/forktransition/GloasStateUpgrade.java#L97-L317
[l-onboard]: https://github.com/sigp/lighthouse/blob/a376defa30470923556d91bdeb15a802e297f31f/consensus/state_processing/src/upgrade/gloas.rs#L258-L303
[s-tx]: https://github.com/ethereum/consensus-specs/blob/8a80ffa82bd49aac0dd6db17f9e8150aa257fbc2/specs/gloas/beacon-chain.md#L352-L371
[e-tx]: https://github.com/ethereum/EIPs/blob/d4c575521d99ec881a444ab3af604e684b5f0743/EIPS/eip-7688.md#L58-L92
[s-gossip]: https://github.com/ethereum/consensus-specs/blob/8a80ffa82bd49aac0dd6db17f9e8150aa257fbc2/specs/gloas/p2p-interface.md#L830-L879
[t-tx]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaRegistryBuilder.java#L424-L452
[t-txbyte]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/execution/ProgressiveTransactionSchema.java#L22-L34
[t-txpreset]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/presets/mainnet/bellatrix.yaml#L12-L17
[t-packed]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/impl/PackedByteListsUtil.java#L38-L65
[t-fast]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/AbstractSszProgressiveListSchema.java#L155-L442
[t-gossip]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/gossip/topics/topichandlers/Eth2TopicHandler.java#L188-L268
[t-codec]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/gossip/encoding/SszGossipCodec.java#L27-L42
[l-tx]: https://github.com/sigp/lighthouse/blob/a376defa30470923556d91bdeb15a802e297f31f/consensus/types/src/execution/execution_payload.rs#L19-L30
[l-dep]: https://github.com/sigp/lighthouse/blob/a376defa30470923556d91bdeb15a802e297f31f/Cargo.toml#L290-L295
[d-default]: https://github.com/sigp/ssz_types/blob/8955d22edc7633f26fe3b5ac933facb5121d717a/src/progressive_variable_list.rs#L55-L149
[l-unknown]: https://github.com/sigp/lighthouse/blob/a376defa30470923556d91bdeb15a802e297f31f/beacon_node/beacon_chain/src/payload_envelope_verification/gossip_verified_envelope.rs#L154-L169
[l-ignore]: https://github.com/sigp/lighthouse/blob/a376defa30470923556d91bdeb15a802e297f31f/beacon_node/network/src/network_beacon_processor/gossip_methods.rs#L3913-L3926
[s-deposit]: https://github.com/ethereum/consensus-specs/blob/8a80ffa82bd49aac0dd6db17f9e8150aa257fbc2/specs/gloas/beacon-chain.md#L970-L2383
[s-decode]: https://github.com/ethereum/consensus-specs/blob/8a80ffa82bd49aac0dd6db17f9e8150aa257fbc2/specs/gloas/validator.md#L267-L320
[s-req-limits]: https://github.com/ethereum/consensus-specs/blob/8a80ffa82bd49aac0dd6db17f9e8150aa257fbc2/specs/gloas/p2p-interface.md#L504-L529
[s-wsp]: https://github.com/ethereum/consensus-specs/blob/8a80ffa82bd49aac0dd6db17f9e8150aa257fbc2/specs/gloas/weak-subjectivity.md#L31-L47
[s-migration]: https://github.com/ethereum/consensus-specs/blob/8a80ffa82bd49aac0dd6db17f9e8150aa257fbc2/specs/gloas/fork.md#L157-L194
[t-deposit]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/gloas/execution/ExecutionRequestsProcessorGloas.java#L71-L161
[t-active]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/gloas/helpers/PredicatesGloas.java#L49-L64
[t-pending]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/gloas/helpers/BeaconStateAccessorsGloas.java#L80-L159
[t-delay]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/gloas/helpers/BeaconStateMutatorsGloas.java#L72-L140
[t-payment]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/gloas/block/BlockProcessorGloas.java#L153-L214
[t-decode]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/execution/ExecutionRequestsDataCodec.java#L43-L175
[t-requests]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/execution/versions/gloas/ExecutionRequestsSchemaGloas.java#L41-L86
[t-req-root]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/gloas/helpers/MiscHelpersGloas.java#L303-L308
[t-validator-requests]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/registry/SchemaRegistryBuilder.java#L390-L751
[t-op-limits]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/blockbody/versions/gloas/BeaconBlockBodySchemaGloasImpl.java#L128-L167
[t-bitlist]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/SszProgressiveBitlistSchema.java#L250-L264
[t-list-mutate]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/impl/SszMutableProgressiveListImpl.java#L142-L150
[t-tree]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/tree/ProgressiveTreeUtil.java#L107-L123
[t-container]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/infrastructure/ssz/src/main/java/tech/pegasys/teku/infrastructure/ssz/schema/impl/AbstractSszContainerSchema.java#L147-L519
[t-field-conversion]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/state/beaconstate/common/BeaconStateFields.java#L149-L205
[t-activation]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/gloas/statetransition/epoch/EpochProcessorGloas.java#L68-L75
[t-wsp]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/gloas/weaksubjectivity/WeakSubjectivityCalculatorGloas.java#L41-L53
[t-wsp-base]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/electra/weaksubjectivity/WeakSubjectivityCalculatorElectra.java#L49-L54
[t-wsp-wire]: https://github.com/Consensys-Incorporated/teku/blob/2c35574b3373cbe8ad121a768d98f066aec05b73/ethereum/spec/src/main/java/tech/pegasys/teku/spec/logic/versions/gloas/SpecLogicGloas.java#L147-L149
[e-proposer]: https://github.com/ethereum/EIPs/blob/d4c575521d99ec881a444ab3af604e684b5f0743/EIPS/eip-8045.md#L59-L67
[e-tree]: https://github.com/ethereum/EIPs/blob/d4c575521d99ec881a444ab3af604e684b5f0743/EIPS/eip-7916.md#L39-L116
[e-container]: https://github.com/ethereum/EIPs/blob/d4c575521d99ec881a444ab3af604e684b5f0743/EIPS/eip-7495.md#L56-L87
