# Edelweiss 🏔️ 4844 Client Milestone Tracker *→ [Edelweiss High-Level Technical Plans](https://notes.ethereum.org/@timbeiko/edelweiss-milestones)* *→ [Shapella Milestones](https://notes.ethereum.org/@djrtwo/edelweiss-shapella-tracker)* [toc] ## Milestone tracker ### Execution Layer |Client|M1|M2|M3|M4|M5|Docs| |--|--|--|--|--|--|--| |[Besu][besuTracker]| [Branch][besuM1] |✅| | | | |Erigon|[Branch][erigonM1]|✅|✅ devnet4: prysm |[EthereumJS][EthJS]| [PR][EthJSM1] | | | | | [Docs][EthJS] |Geth| |Geth-PoC|[Branch][GethPoCM1]|✅|✅ devnet4: prysm, lodestar |[Nethermind][Nethermind]| [Branch][NethermindM1] | ✅ | ✅ devnet4: prysm, lodestar, teku, lighthouse | | | [Docs][NethermindDocs] [GethPoCM1]: https://github.com/mdehoog/go-ethereum [EthJS]: https://github.com/ethereumjs/ethereumjs-monorepo/issues/2494 [EthJSM1]: https://github.com/ethereumjs/ethereumjs-monorepo/pull/2349 [besuTracker]: https://github.com/hyperledger/besu/issues/4631 [besuM1]: https://github.com/hyperledger/besu/tree/eip-4844-interop [erigonM1]: https://github.com/roberto-bayardo/erigon [Nethermind]: https://github.com/NethermindEth/nethermind/issues/4558 [NethermindM1]: https://github.com/NethermindEth/nethermind/tree/feature/eip-4844 [NethermindDocs]: https://github.com/NethermindEth/nethermind/issues/4558 ### Consensus Layer |Client|M1|M2|M3|M4|M5|Docs| |--|--|--|--|--|--|--| |[Lighthouse][LH]|[✅](https://github.com/sigp/lighthouse/pull/3783)|[PR][LHM2]| | | | [In PR][LHDocs] |[Lodestar][LodestarTracker]|[PR][LodestarPR]| ✅ geth (independently ethereumjs)|✅ devnet3: geth,ethereumjs, interop repo: prysm |[Nimbus][Nimbus]|[branch][NIM2]| |[Prysm][PrysmTracker]|[✅][PrysmBranch]|[✅][PrysmBranch]| |[Teku][Teku]|[branch](https://github.com/ConsenSys/teku/tree/4844-interop)|✅ geth, lighthouse (partially)| [LodestarTracker]: https://github.com/ChainSafe/lodestar/issues/4970 [LodestarPR]:https://github.com/ChainSafe/lodestar/pull/4774 [LH]: https://github.com/sigp/lighthouse/issues/3625 [Nimbus]: https://github.com/status-im/nimbus-eth2/issues/4395 [NIM2]: https://github.com/status-im/nimbus-eth2/tree/unstable [Teku]: https://github.com/ConsenSys/teku/issues/5681 [LHM2]: https://github.com/sigp/lighthouse/pull/3783 [LHDocs]: https://github.com/sigp/lighthouse/pull/3783 [PrysmTracker]: https://github.com/prysmaticlabs/prysm/issues/11823 [PrysmBranch]: https://github.com/prysmaticlabs/prysm/pull/11621 To track progress across all 10 clients (5 execution, 5 consensus), please create an **Edelweiss EIP-4844 tracking issue** in your repo. We'll link to those issues here as well as track high-level milestones at a glance. Please also link to any interop docs/notes under "Docs". Also consider updating [this google doc](https://docs.google.com/document/d/1LM7mtkWt2VcDYFtXuFVpKPt0Zh6GhZmFEv5LStUfAZQ/edit#) with any additional details on the status of your client & 4844 interop work. Note, the milestones below aim ground our hands-on work during our time together. Although the strategy and plan will certainly evolve throughout the week, the progressive milestones below are designed to parallelize our efforts and to avoid wasting other teams' valuable time before you are ready -- this is especially true of **M0** and **M1**. **If you don't complete M0 and M1 prior to arrival, expect to sit alone in a corner feeling intense fomo as your friends build sweet devnets.** 🏔️ - **M0**: *Interop prep started* - Signify that your team has started prepping for Edelweis 4844 work by creating a tracking issue and linking against your *team's name* in the above table - **Docs**: *Core Documentation* - EL/CL: detailed documentation on how to run your 4844-ready client - Link under "Docs" in milestone table - **M1**: *Spec Implemented* - Link to branch/PR with latest implementation for client - EL/CL: pass all released consensus/static test vectors - **M2**: *1-to-1 interop* -- pair your client to one from the other layer for initial interop - Perform the following with at least two separate teams: - Run [local interop repo](https://github.com/Inphi/eip4844-interop) - Ensure blobs are gossiped and included on chain - Pass [EL+CL interop tests](https://github.com/Inphi/eip4844-interop/tree/master/tests) - Record teams interop'd with alongside ✅ in milestone table -- e.g. "✅ lodestar, teku" - **⭐️ Challenge ⭐️**: complete *prior* to Edelweiss - **M3**: *Many-to-Many interop* -- 2 or more EL and CL teams perform interop testing - Run many:many ephemeral devnets - Record teams and devnet config/results in separate issue - Hive tests - *Bonus*: attempt failures and recoveries: - Sync new nodes from genesis - Add new validators - Turn off 50% of validators for some time and then rejoin - Connect an local instance of a roll-up - **M4**: *All-to-All persistent devnet* -- All ready EL and CL teams create a long-lived devnet - Run all:all devnet - Keep the devnet up for continuous testing and fun (`devnet-edelweiss`) - Stretch goal: find a better name 😄 - Create basic README for the public to connect - **M5**: `devnet-edelweiss` Stress Test - Run all:all devnet and remains stable as we: - pummel it with blob TXs and normal TXs - connect a "bad block" and "bad TX" generator - blocks with invalid KZG commitments - blocks with valid KZG commitments but invalid associated blobs - blocks with valid KZG commitments and no associated side car - bad TXs inserted into the mempool - spam many TXs into mempool with various dependencies (multi of same nonce, etc)