-
-
owned this note
-
Published
Linked with GitHub
# Kintsugi🍵 milestones
We're excited to kick-off the Merge November sprint -- *Kintsugi* 🍵!
Throughout November, we'll bring all EL and CL clients up to spec, perform initial interop exercises, and build a series of weekly devnets. All of this will culminate in the launch of a persistent devnet in December to observe (and break!) through the holidays.
See the [Kintsugi🍵 meta-spec](https://hackmd.io/@n0ble/kintsugi-spec) for concrete spec targets. Note, there is a chance minor changes make it into the meta-spec week to week. We'll make any such changes abundantly clear prior to each devnet launch.
You'll notice that these milestones look pretty similar to [Amphora milestones](https://hackmd.io/@tvanepps/amphora-milestones) and for good reason! That went exceptionally well, and with the updated specs, we want to approach this month with a similar rigor.
[toc]
### Milestone tracker
To track progress across all 10 clients (5 execution, 5 consensus), please create a Kintsugi🍵 tracking issue in your repo. We'll link to those issues here as well as track high-level milestones at a glance.
As with Amphora, please do not waste other teams' time prior to implementing core specs and running all test vectors (**M1**). The milestones are designed to help capture complexity and iterate toward stable interop and testnets.
*Please link to your primary tracking issue against the name of your client (first column).*
#### Execution layer
[teku-tracking]: https://github.com/ConsenSys/teku/issues/4504
[prysm-tracking]: https://prysmaticlabs.notion.site/Kintsugi-Sprint-Tracking-4bd719f9e7904d8ca625687b310acf26
[lh-pr]: https://github.com/sigp/lighthouse/issues/2830
[geth-pr]: https://github.com/MariusVanDerWijden/go-ethereum/pull/29
[geth-test-engine]: https://notes.ethereum.org/rmVErCfCRPKGqGkUe89-Kg?both
[geth-test-4399]: https://notes.ethereum.org/dfVXr2h2TqWDKSXZaMwGTw?view
[grandine-tracking]: https://github.com/sifraitech/grandine/issues/6
[ethereumjs-tracking-issue]: https://github.com/ethereumjs/ethereumjs-monorepo/issues/1551
[ethereumjs-pr]: https://github.com/ethereumjs/ethereumjs-monorepo/pull/1565
[nimbus-tracking]: https://github.com/status-im/nimbus-eth2/issues/3073
[mergemock]: https://github.com/protolambda/mergemock
[nethermind-pr]: https://github.com/NethermindEth/nethermind/pull/3597
[nethermind-tracking-issue]:https://github.com/NethermindEth/nethermind/issues/3581
|Team|M0|M1|M2|M3|M4|M5|M6|Docs|
|--|--|--|--|--|--|--|--|----|
Besu |🍵|🍵|🍵 teku|🍵lighthouse <br> 🍵 teku <br>🍵 lodestar <br>|🍵 teku <br>🍵 lodestar <br> |🍵| | [Tracking Issue](https://github.com/hyperledger/besu/issues/3006)
Erigon | 🍵| | | | | | | [Tracking Issue](https://github.com/ledgerwatch/erigon/issues/3078)
EthereumJS |🍵|🍵| | | | | | [WIP PR][ethereumjs-pr]<br>[Tracking Issue][ethereumjs-tracking-issue]
Geth |🍵| 🍵| 🍵 prysm <br> 🍵 Lodestar <br> 🍵 Lighthouse <br> 🍵 Nimbus|🍵 Lodestar <br> 🍵 Lighthouse <br> 🍵 Nimbus |🍵 Lodestar <br> 🍵 Lighthouse <br> 🍵 Nimbus <br> 🍵 Teku <br> 🍵 Prysm |🍵| | [WIP PR][geth-pr] <br> [Test-Cases][geth-test-engine]
Nethermind |🍵|🍵 |🍵 Lodestar<br>🍵 Lighthouse <br> 🍵 Nimbus |🍵 Lodestar<br>🍵 Lighthouse |🍵 Lodestar<br>🍵 Lighthouse <br> 🍵 Nimbus <br> 🍵 Teku <br> 🍵 Prysm |🍵| | [WIP PR][nethermind-pr] <br>[Tracking issue][nethermind-tracking-issue]
#### Consensus layer
|Team|M0|M1|M2|M3|M4|M5|M6|Docs|
|--|--|--|--|--|--|--|--|----|
Grandine |🍵|🍵|🍵 Geth| | | | | [Tracking issue][grandine-tracking]
Lighthouse |🍵|🍵|🍵 Geth<br>🍵 Nethermind | | 🍵 Nethermind <br> 🍵 Geth|🍵| | [Tracking PR][lh-pr]
Lodestar |🍵|🍵| 🍵 Nethermind <br> 🍵 Geth | |🍵 Nethermind <br> 🍵 Geth |🍵| | [Tracking issue](https://github.com/ChainSafe/lodestar/issues/3410)
Nimbus |🍵|🍵|🍵 geth <br> 🍵 Nethermind |🍵 Geth | 🍵 Geth <br> 🍵 Nethermind |🍵| | [Tracking][nimbus-tracking]
Prysm |🍵|🍵|🍵 Geth | |🍵 Geth <br> 🍵 Nethermind |🍵| | [Tracking][prysm-tracking]
Teku |🍵|🍵|🍵 Geth |🍵 Teku+Geth <br> 🍵 Lighthouse+Geth|🍵 Geth <br>🍵 Nethermind |🍵| | [Tracking][teku-tracking]
### Milestones
- **M0**: *Implementation started*
- Signify that implementation of the Kintsugi🍵 meta-spec has started by creating a tracking issue and linking in the above table
- **M1**: *Spec Implemented*
- EL/CL: pass all released consensus test vectors
- Run against [`mergemock`](https://github.com/protolambda/mergemock)
- geth based [Engine API test cases][geth-test-engine] (not yet updated to Kintsugi v2)
- EL: geth based [EIP 4399 test cases][geth-test-4399]
- EL: additional [4399 test cases](https://github.com/marioevz/kintsugi_testing/tree/main/tests/EIP4399)
- Other tests to be released asap
- **M2**: *1-to-1 Interop* -- One EL and one CL team pair off for basic interop testing
- Perform the following with at least two separate teams:
- run 1:1 devnet without transition (`TTD == 0`)
- run 1:1 devnet with transition (`TTD > 10`)
- Send simple EL TXs (ETH transfers) which are successfully executed on chain
- Bonus: run EIP-4399 TXs
- Record teams interop'd with alongside 🍵 in milestone table -- e.g. "🍵 lodestar, teku"
- **M3**: *Many-to-Many Interop* -- 2 or more EL and CL teams perform interop testing
- Run many:many devnet with transition (`TTD > 50`)
- Send EL TXs that transfer ETH and deploy a contract which are successfully executed on chain
- Record teams and devnet config/results in separate issue
- **M4**: *Weekly devnet* -- Weekly devnet build for more in depth testing
- Starting in the second week of November, EF devops (Pari, etc) will lead a devnet build on Thursdays. This devnet (if successful) will remain up until the following Thursday
- Once passing **M3**, join the weekly devnet
- To pass **M4**, client team *must* be on the devnet during the Merge transition process and process EL TXs
- *Note*: Increasingly complex EL TXs will be sent on weekly devnets, testing EIP-4399
- **M5**: *All-to-All persistent testnet* -- All ready EL and CL teams create a long-lived devnet first week of december
- Run many:many devnet with transition (`TTD > 100`)
- Keep the devnet up through the holidays for continuous testing and fun
- Create basic README for the public to connect
- **M6**: *Kintsugi🍵 code released* -- clients release Kintsugi🍵 code for public consumption
- Merge Kintsugi🍵 code into main branch
- Create basic README, ideally with a CLI flag, for the public to connect to persistent testnet
- Release Kintsugi🍵 for public consumption
### Office Hours 🕰
Every week, we'll hold Kintsugi🍵 office hours as part of the AllCoreDevs and Consensus Layer calls. The first 30-45 minutes of each call will be dedicated to team updates, issue/blocker discussion and next steps for Kintsugi🍵.
The calls are each held fortnightly on alternating weeks with the Consensus Layer call happening next, on November 4 (Thursday) 14:00 UTC, and the AllCoreDevs call happening the following week November 12 14:00 UTC.
Note that these calls are "fixed" in UTC and do not move with DST start/end. You can subscribe to them on Google Calendar [here](https://calendar.google.com/calendar/u/1?cid=Y191cGFvZm9uZzhtZ3JtcmtlZ243aWM3aGs1c0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t).