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
Copy file name to clipboardExpand all lines: electra-gap.md
+72-18Lines changed: 72 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,47 @@
1
-
# Implementation Gaps for Electra Upgrade
1
+
# Implementation Gaps for electra Upgrade
2
2
3
-
This document outlines the gaps in the current implementation of the Electra. It's still a WIP.
3
+
This document will guide you through our step-by-step plan for the implementation of the new electra fork. We’ve broken the work into three clear phases to make our goals and priorities easy to follow. This is a living document, so we will update it as we progress through the implementation.
4
4
5
-
## Difference Between Updated and Modified
5
+
## Roadmap
6
6
7
-
-**Updated**: Changes in validation rules, protocols, or external behaviors. These changes may not directly alter the logic of the implementation.
8
-
-**Modified**: Refers to direct changes made to the code or logic of an existing function, container, or process to accommodate new requirements or features.
7
+
| Status | Phase | What & Why | Key Steps | Testing |
| 🏗️ |[Phase 1: Beacon Chain Implementation](#phase-1-beacon-chain-implementation)| Build the electra-upgraded beacon chain core | • Apply electra-specific changes<br>• Run & pass full spec tests | Run spec suite (`make spec-test`), aim for 0 failures |
10
+
| ⌛ |[Phase 2: P2P & Sepolia Long-Running Sessions](#phase-2-p2p--sepolia-long-running-sessions)| Ensure stability on Sepolia | • Implement the P2P changes <br> • Deploy the node on our server pointing to Sepolia<br>• Fix every issue we found that interrupts the node execution | Continuous uptime checks & up-to-date block processing for 72+ hrs in Sepolia|
11
+
| ⌛ |[Phase 3: Validator Upgrades](#phase-3-validator-upgrades)| Ensure validators duties on devnets |• Implement the honest validator changes<br>• Make assertoor work<br> • Test via Kurtosis & Assertoor | Execute Kurtosis scenarios & Assertoor with continuous uptime checks and up-to-date validation duties for 72+ hrs on kurtosis |
9
12
10
-
## Containers
13
+
### Why this Order
14
+
15
+
We kick off with the beacon chain implementation because passing the full spec test suite is critical for protocol correctness and a solid foundation. Once all tests are green, we move to Phase 2 for prolonged Sepolia sessions and the implementation of the p2p interface changes, ensuring real-world testnet stability before mainnet moves to electra which would limit our network options before we upgrade. This will allow us to continue running long session on our servers and monitor the node execution given that just the block/epoch processing and state transitions are needed for this. With a stable node confirmed, Phase 3 begins, upgrading the validator logic, tested through Kurtosis and Assertoor to finalize the electra upgrade roadmap.
16
+
17
+
### Next Steps
18
+
19
+
Once we finish the whole electra upgrade we have a clear path to follow for the next steps:
20
+
-**Hooli long running sessions:** Right now Holesky was not an option for us because of performance issues, we need to test on Hooli and see if we can run the node on it on acceptable performance. This effort will be in parallel to the performance optimization one.
21
+
-**Performance optimization:** We need to run the node on Hooli and mainnet to identify and fix the current bottlenecks, specially on block and epoch processing.
22
+
-**Electra code enhancements:** During the implementation, some complex functions were identified that could be simplified. They are mostly related to how to manage early returns in already large python reference functions and port the logic to elixir. We will work on those to improve the code quality and make it easier to maintain in the future.
23
+
24
+
## Current Status
25
+
26
+
Right now we are at the [Beacon Chain Implementation](#phase-1-beacon-chain-implementation) phase, our current spec test results for the past weeks are:
**Note:** The aim is to reach `0` failures before next week, so we can start the long running sessions on Sepolia. Also, we want to validate the 784 test skipped on the second phase.
32
+
33
+
## Implementation Gap
34
+
35
+
Here we will detail the current implementation gaps with the specs and the way to test every phase. The initial one is the larger to implement but it has the most clear way to validate it (spec-tests). The next phases are smaller but they need to be validated on long running sessions both in devnets and testnets.
36
+
37
+
### Phase 1: Beacon Chain Implementation
38
+
39
+
We are at `40/57` (70%) of the [beacon chain changes](docs/specs/electra/beacon-chain.md), and most of the remaining functions are already in progress. We have still `165/11370` spec test failures, but we are working on them. The skipped tests were there previous to the electra upgrade, so we will work on them if needed after we finish the first phase. Our aim as mentioned before is to reach `0` failures before going to the next phase.
40
+
41
+
42
+
The current status of the implementation in the [electra-support](https://github.com/lambdaclass/lambda_ethereum_consensus/tree/electra-support) branch is as follows:
43
+
44
+
#### Containers (13/13 - 100%)
11
45
12
46
-[x] New `PendingDeposit` ([Spec](docs/specs/electra/beacon-chain.md#pendingdeposit), [PR](https://github.com/lambdaclass/lambda_ethereum_consensus/pull/1400))
13
47
-[x] New `PendingPartialWithdrawal` ([Spec](docs/specs/electra/beacon-chain.md#pendingpartialwithdrawal), [PR](https://github.com/lambdaclass/lambda_ethereum_consensus/pull/1400))
@@ -23,7 +57,7 @@ This document outlines the gaps in the current implementation of the Electra. It
-[x] New `is_compounding_withdrawal_credential` ([Spec](docs/specs/electra/beacon-chain.md#new-is_compounding_withdrawal_credential), [PR](https://github.com/lambdaclass/lambda_ethereum_consensus/pull/1419))
@@ -33,7 +67,7 @@ This document outlines the gaps in the current implementation of the Electra. It
-[x] New `get_committee_indices` ([Spec](docs/specs/electra/beacon-chain.md#new-get_committee_indices), [PR](https://github.com/lambdaclass/lambda_ethereum_consensus/pull/1419))
-[x] New `get_max_effective_balance` ([Spec](docs/specs/electra/beacon-chain.md#new-get_max_effective_balance), [PR](https://github.com/lambdaclass/lambda_ethereum_consensus/pull/1419))
@@ -82,13 +116,24 @@ This document outlines the gaps in the current implementation of the Electra. It
82
116
-[x] New `is_valid_deposit_signature` ([Spec](docs/specs/electra/beacon-chain.md#new-is_valid_deposit_signature), [PR](https://github.com/lambdaclass/lambda_ethereum_consensus/pull/1424))
0 commit comments