You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The plan describes required capabilities, while Lodestar and the related specifications continue to change.
31 August refresh
Formally accepted working unstable pin: 57572140f8b75ab72466a869bf7bdc0ad0db265e, the merge commit for Lodestar PR 9832.
Newest immutable release target: Lodestar v1.47.0 at 450996b13ab305b860acd131c87f799fdbfbabf0. Release PR #9934 and merge-back PR #9971 are recorded separately from the accepted working pin.
Current consensus-specs prerelease remains v1.7.0-alpha.14.
Latest Glamsterdam execution fixtures are tests-glamsterdam-devnet@v8.1.2.
Marco's Lodestar PR #9914 merged as 9ecc10f386, completing the bid-validation and flood-publication implementation. It does not replace the formal baseline audit.
The pin, immutable spec/API/fixture/image snapshot, clean command results, and pre-existing failure inventory are recorded. The capability matrix and historical upstream audit remain in progress.
31 August baseline execution
Formal working pin: 57572140f8b75ab72466a869bf7bdc0ad0db265e, the merge commit for Lodestar PR 9832 and the current unstable head at the time of pinning.
Immutable comparison target used during the 31 August execution: v1.47.0-rc.0 at 2aff495d9c3ecb1e7f15a431d3b0a4616f4bf103. Lodestar v1.47.0 was subsequently released at 450996b13ab305b860acd131c87f799fdbfbabf0; this does not silently replace the accepted working pin.
Clean checkout used Node 24.13.0 and pnpm 11.0.0. Frozen install passed after downloading the single cache-missing @chainsafe/lodestar-z tarball.
Monorepo TypeScript builds completed for every package. The CLI package's nested pnpm write-git-data invocation hit the local sandbox Corepack cache permission boundary; running the generated writeGitData.js directly succeeded. This is local execution-environment evidence, not a source failure.
Repository-wide check-types and Biome checks passed.
Builder build, check-types, and lint passed; Builder unit suite passed 27 tests across 3 files.
An initial package-local run before workspace build failed to resolve internal @lodestar/* build outputs as expected. It passed after the required monorepo dependency build and is not recorded as a baseline code failure.
24 August reconciliation
Latest stable Lodestar release: v1.46.0 at 3873dd5b032d0ad82581fc3416e9628b4f6f2642.
Current observed unstable: bd761ec9ea1d69657a99530e0c76f08f8e315da9. This is evidence for the active API-02 branch, not yet the deliberate reproducible BASELINE-01 pin.
Current consensus-specs release: v1.7.0-alpha.14. Post-release consensus-specs PR 5545 also merged and must be included in the next pin decision.
Merged SSE resilience: Lodestar PR 9872 keeps the connection alive after one event serialization failure and closes genuinely broken streams so EventSource can reconnect.
Merged epoch-boundary head fix: Lodestar PR 9864 recomputes fork-choice head after checkpoint pull-up. NC's earlier Lodestar PR 9813 alternative remains open and its disposition must be rechecked at the formal pin.
Lodestar PR 9736 remains open, draft, and conflicting. Do not use the monitor table that classified it as merged.
Public Dora now provides point-in-time external Builder reveal evidence, but not continuous health, API-02, shutdown, recovery, Assertoor/Buildoor, or deployed-bytecode evidence.
At this 24 August checkpoint, the formal pin, capability audit, baseline failure record, and reproducible command set were still undone. The 31 August execution above supersedes that status; only the capability and historical-upstream audit remains open.
Tasks
Pin one exact Lodestar unstable SHA and keep it distinct from immutable stable and release-candidate targets.
Record consensus-specs, Builder APIs, Beacon APIs, Keymanager APIs, fixtures, images, Node, and pnpm versions.
Run the frozen install, build, lint, type-check, Builder checks, and targeted tests; record local-tool boundaries separately from source failures.
Audit the required Builder capabilities and historical upstream work against the pin.
Distinguish landed, open, closed-unmerged, prototype, fixture, and point-in-time runtime evidence.
Reconcile every affected implementation issue so completed upstream work is not duplicated.
Route unfinished shutdown, restart, cache, reveal, non-finality, and outcome evidence to REL-01, E2E-01, QA-01, OUT-01, and DATA-01 rather than claiming baseline completion.
Confirm the active feature branches and require each extracted slice to record its own base SHA and targeted validation.
Done when
The project has one reproducible baseline pin and every implementation issue reflects what is actually missing on that pin.
Evidence
Newest immutable audit target: Lodestar v1.47.0 at 450996b13ab305b860acd131c87f799fdbfbabf0; release PR #9934 and merge-back PR #9971
Current observed and formally accepted project unstable pin: 57572140f8b75ab72466a869bf7bdc0ad0db265e
Test commands/results: frozen install passed; monorepo TypeScript builds completed; repository check-types and Biome passed; Builder build/check-types/lint passed; Builder unit suite 27/27 passed. CLI nested Corepack wrapper hit a local sandbox cache permission boundary, while direct writeGitData.js execution succeeded.
Active feature reviews: API-02 #9931, TEST-01 #9932, PAYLOAD-SOURCE-01 #9958, PAYLOAD-ORCH-01 #9973, STORE-01 #9970 with hardening contribution markolazic01/lodestar#9, plus the current bid and reveal slices recorded in the capability audit.
The accepted reproducibility pin 57572140f8b75ab72466a869bf7bdc0ad0db265e remains the recorded API-02/ENV-02 baseline. It is not silently replaced by a moving branch head.
Nico's direct-Engine branch is audited at 99fd8fa9ad as proof-of-concept evidence for the confirmed direct-Engine working direction, not as a merge-ready patch or accepted service decomposition. It is 10 commits and 42 changed files on an older base, not a new reproducible project pin.
Before each extracted direct-Engine implementation slice becomes Ready, record its exact current unstable base and rerun the checks relevant to that slice.
Open watches Lodestar #9947, Lodestar #9954, and Lodestar #9955 must be rechecked for proposer-BN external Builder connection pre-warming, exiting-Builder filtering, and parent-slot behavior respectively.
At the 31 August checkpoint BASELINE-01 remained In Progress. The completed capability matrix and repository-wide audit below subsequently satisfied the issue.
1 September contributor and branch audit
Audited all 42 changed files and 10 commits on Nico's direct-Engine branch at 99fd8fa9ad, including API/event changes, BN publication and payload-attributes producers, Builder services, CLI wiring, metrics, and tests.
Audited Marco's August pull requests across Lodestar, beacon-APIs, js-libp2p, fellowship, and Builder-docs repositories. Bid validation and flood publication are already represented by completed BN-PUB-01. Open beacon-APIs #638 is represented by ATTR-SPEC-01.
Audited Nico's and NC's August protocol and Lodestar work. Added merged consensus-specs #5549 as a direct-Engine input because post-Gloas notify_forkchoice_updated now carries custody_columns. Added merged consensus-specs #5550 and Lodestar #9847 as fork-transition parent-slot baseline evidence.
The issue graph now covers the branch's ChainEvents, proposer-preferences tracker, PayloadSource, PayloadStore, BidPolicy, slot bidder, ledger invariants, revealer, metrics, and CLI configuration. No extra overlapping issue is required. Ledger invariants remain explicit across BID-CORE-01, BID-01, SELECT-01, and REV-01.
The remaining BASELINE-01 work is the full historical capability matrix and older upstream audit. This newer audit does not by itself satisfy every historical checklist item.
1 September repository-wide PR audit
Audited all 65 open Lodestar pull requests and all 110 pull requests closed or merged from 11 August through 1 September against the Builder issue graph and planning documents.
Add open Lodestar #9350 as a mainnet-scale payment correctness watch. It moves Builder pending-payment quorum arithmetic to bigint; OUT-01 owns the corresponding large-accumulator evidence.
Add open Lodestar #9332 and #9637 as EL-invalid and PTC fail-closed watches for EL-ARCH-01, QA-01, E2E-01, and OUT-01.
Add merged Lodestar #9937 plus open #9281, #9791, and #9326 as range-sync, envelope-target, stale-root, and non-finality recovery evidence. They remain BN/runtime watches rather than new Builder modules.
Add merged Lodestar #9935 and open #9936 to the conditional Heze/FOCIL baseline without activating EXT-FOCIL-01.
Open Lodestar #9957 removes older pre-Fulu blob retrieval code. It does not remove Gloas getPayload blob bundles and does not invalidate PAYLOAD-SOURCE-01.
Reorg and parent-variant evidence from Lodestar #9944, #9929, #9233, and #9723 is routed to ATTR-01, EXT-PREP-01, and deferred multi-branch testing. It does not broaden the current single-candidate payload-source slice.
No completed project issue requires reopening from this audit. BASELINE-01 remains In Progress until these watches are dispositioned in the capability matrix.
All BASELINE-01 tasks are complete. The immutable project pin remains 57572140f8b75ab72466a869bf7bdc0ad0db265e; active feature branches separately record their newer unstable bases.
Unfinished architecture, source-BN input, recovery, outcome, and end-to-end work remains explicitly routed to its owning issues. Those open watches do not keep the baseline audit itself open.
2 September specification watch
consensus-specs #5585 merged the source-tree version bump to v1.7.0-beta.0, but no v1.7.0-beta.0 tag or GitHub release exists yet. Lodestar unstable still pins v1.7.0-alpha.14 in spec-tests-version.json, so the immutable project pin remains alpha.14 until Lodestar deliberately updates it.
This later upstream movement does not reopen BASELINE-01. Each active feature PR remains responsible for recording its own current base and relevant spec compatibility.
Why
The plan describes required capabilities, while Lodestar and the related specifications continue to change.
31 August refresh
unstablepin:57572140f8b75ab72466a869bf7bdc0ad0db265e, the merge commit for Lodestar PR 9832.450996b13ab305b860acd131c87f799fdbfbabf0. Release PR #9934 and merge-back PR #9971 are recorded separately from the accepted working pin.tests-glamsterdam-devnet@v8.1.2.7aa8c9c93a; builder-specs PR 167 merged at38f11441c1; keymanager-APIs PR 93 merged atd1c9bb4691; and js-libp2p PR 3610 merged at4a6c5d11af.9ecc10f386, completing the bid-validation and flood-publication implementation. It does not replace the formal baseline audit.31 August baseline execution
57572140f8b75ab72466a869bf7bdc0ad0db265e, the merge commit for Lodestar PR 9832 and the currentunstablehead at the time of pinning.2aff495d9c3ecb1e7f15a431d3b0a4616f4bf103. Lodestar v1.47.0 was subsequently released at450996b13ab305b860acd131c87f799fdbfbabf0; this does not silently replace the accepted working pin.@chainsafe/lodestar-ztarball.pnpm write-git-datainvocation hit the local sandbox Corepack cache permission boundary; running the generatedwriteGitData.jsdirectly succeeded. This is local execution-environment evidence, not a source failure.@lodestar/*build outputs as expected. It passed after the required monorepo dependency build and is not recorded as a baseline code failure.24 August reconciliation
3873dd5b032d0ad82581fc3416e9628b4f6f2642.unstable:bd761ec9ea1d69657a99530e0c76f08f8e315da9. This is evidence for the active API-02 branch, not yet the deliberate reproducible BASELINE-01 pin.159622d983a703eb03a8a37bb1edeab7ffc3b6bc, and keymanager-APIs keymanager-APIs PR 92.tests-glamsterdam-devnet@v8.1.1.Tasks
unstableSHA and keep it distinct from immutable stable and release-candidate targets.Done when
The project has one reproducible baseline pin and every implementation issue reflects what is actually missing on that pin.
Evidence
450996b13ab305b860acd131c87f799fdbfbabf0; release PR #9934 and merge-back PR #9971unstablepin:57572140f8b75ab72466a869bf7bdc0ad0db265e38f11441c194d150386f567b4d7087ec86d4118c; beacon-APIsef98d512c03c8ca6b9d7cbdc45b9293ec2b24722; keymanager-APIsd1c9bb46914be4e80f0cd7d5a225695ba94d8751tests-glamsterdam-devnet@v8.1.2unstablehead on 2026-08-05:c65aaefd91a602df1ffb82d929ec479fba8578ac(not the project pin)unstablepin:57572140f8b75ab72466a869bf7bdc0ad0db265e38f11441c194d150386f567b4d7087ec86d4118c; beacon-APIsef98d512c03c8ca6b9d7cbdc45b9293ec2b24722; keymanager-APIsd1c9bb46914be4e80f0cd7d5a225695ba94d8751tests-glamsterdam-devnet@v8.1.2; API-02 local imagesha256:ce201e8e5300a05677dd389a3140cd03d4c9eb8068a66d28f3c4369bbb1dcd26; Gethsha256:50fad280c7e2a2d7df835b46753c7633882824fbf545efb63c03451f910090e8; eth2-val-toolssha256:46147228f291266148a6a21a2b9541367ad5f70e619d79cd5393459baf539f58; genesis generatorsha256:15bb557cbd6d29fc1b7516a7147326a8c8d3af54f3c3ac534ec8772f6e875256writeGitData.jsexecution succeeded.31 August architecture reconciliation
upstream/unstable:1e9a530f9897d50d2d6337cd4143c8dc53667c66.57572140f8b75ab72466a869bf7bdc0ad0db265eremains the recorded API-02/ENV-02 baseline. It is not silently replaced by a moving branch head.99fd8fa9adas proof-of-concept evidence for the confirmed direct-Engine working direction, not as a merge-ready patch or accepted service decomposition. It is 10 commits and 42 changed files on an older base, not a new reproducible project pin.unstablebase and rerun the checks relevant to that slice.1 September contributor and branch audit
99fd8fa9ad, including API/event changes, BN publication and payload-attributes producers, Builder services, CLI wiring, metrics, and tests.notify_forkchoice_updatednow carriescustody_columns. Added merged consensus-specs #5550 and Lodestar #9847 as fork-transition parent-slot baseline evidence.ChainEvents, proposer-preferences tracker,PayloadSource,PayloadStore,BidPolicy, slot bidder, ledger invariants, revealer, metrics, and CLI configuration. No extra overlapping issue is required. Ledger invariants remain explicit across BID-CORE-01, BID-01, SELECT-01, and REV-01.1 September repository-wide PR audit
bigint; OUT-01 owns the corresponding large-accumulator evidence.getPayloadblob bundles and does not invalidate PAYLOAD-SOURCE-01.2 September closure
668fb4897d5dfab31644a99b7d146d5705840f75.57572140f8b75ab72466a869bf7bdc0ad0db265e; active feature branches separately record their newerunstablebases.2 September specification watch
v1.7.0-beta.0, but nov1.7.0-beta.0tag or GitHub release exists yet. Lodestarunstablestill pinsv1.7.0-alpha.14inspec-tests-version.json, so the immutable project pin remains alpha.14 until Lodestar deliberately updates it.