Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add EIP: Hardfork Meta Backfill - Berlin to Shapella #8005

Merged
merged 17 commits into from
Dec 8, 2023
92 changes: 92 additions & 0 deletions EIPS/eip-7568.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
eip: 7568
title: Hardfork Meta Backfill - Berlin to Shapella
description: Pointers to specifications used for the network upgrades from Berlin to Shapella.
author: Tim Beiko (@timbeiko)
discussions-to: https://ethereum-magicians.org/t/hardfork-meta-backfill/16923
status: Draft
type: Meta
created: 2023-12-01
requires: 2070, 2387, 2982, 6122, 6953,

Check failure on line 10 in EIPS/eip-7568.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `requires` cannot have empty items

error[preamble-list-requires]: preamble header `requires` cannot have empty items --> EIPS/eip-7568.md:10:39 | 10 | requires: 2070, 2387, 2982, 6122, 6953, | ^ this item is empty | = help: see https://ethereum.github.io/eipw/preamble-list-requires/

Check failure on line 10 in EIPS/eip-7568.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `requires` has extra whitespace

error[preamble-trim]: preamble header `requires` has extra whitespace --> EIPS/eip-7568.md:10:10 | 10 | requires: 2070, 2387, 2982, 6122, 6953, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ value has extra whitespace | = help: see https://ethereum.github.io/eipw/preamble-trim/

Check failure on line 10 in EIPS/eip-7568.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `requires` items must be unsigned integers

error[preamble-uint-requires]: preamble header `requires` items must be unsigned integers --> EIPS/eip-7568.md:10:40 | 10 | requires: 2070, 2387, 2982, 6122, 6953, | ^ not a non-negative integer | = help: see https://ethereum.github.io/eipw/preamble-uint-requires/
lightclient marked this conversation as resolved.
Show resolved Hide resolved
---

## Abstract

Following Muir Glacier hard fork, Meta EIPs were abandoned in favor of other ways to track changes included in Ethereum network upgrades. This EIP aggregates the specifications for these upgrades, which themselves list the specific changes included. Specifically, it covers the Beacon Chain launch (Serenity Phase 0), Berlin, London, Altair, Arrow Glacier, Gray Glacier, The Merge (Paris + Bellatrix) and Shapella (Shanghai + Capella).

## Motivation

For many years, Ethereum used Meta EIPs to document network upgrades. Recently, consensus has formed around using them again. This EIP aggregates the network upgrades who did not have Meta EIPs and links out to their specifications.

## Specification

The network upgrades below are listed in order of activation. Upgrades to Ethereum's execution layer are marked "[EL]", and those to Ethereum's consensus layer are marked "[CL]".

### Beacon Chain Launch - Serenity Phase 0 [CL]

The full specifications for the Beacon Chain at launch can be found in the [`v1.0.0` release of the `ethereum/consensus-specs` repository](https://github.com/ethereum/consensus-specs/blob/579da6d2dc734b269dbf67aa1004b54bb9449784/README.md#phase-0). Additionally, [EIP-2982](./eip-2982.md) provides context on the Beacon Chain design and rationale for its mainnet parametrization.

### Berlin [EL]

The set of EIPs included in Berlin were originally specified in [EIP-2070](./eip-2070.md), but then moved to the [`berlin.md`](https://github.com/ethereum/execution-specs/blob/8dbde99b132ff8d8fcc9cfb015a9947ccc8b12d6/network-upgrades/mainnet-upgrades/berlin.md) file of the `ethereum/execution-specs` repository.

### London [EL]

The set of EIPs included in London are specified in the [`london.md`](https://github.com/ethereum/execution-specs/blob/8dbde99b132ff8d8fcc9cfb015a9947ccc8b12d6/network-upgrades/mainnet-upgrades/london.md) file of the `ethereum/execution-specs` repository.

### Altair [CL]

The full specifications for the Altair network upgrade can be found in the [`v1.1.0` release of the `ethereum/consensus-specs` repository](https://github.com/ethereum/consensus-specs/blob/67fd7979ffd705bd6b0b5c1aaa842a445cc74d9a/README.md#altair).

### Arrow Glacier [EL]

The set of EIPs included in Arrow Glacier are specified in the[`arrow-glacier.md`](https://github.com/ethereum/execution-specs/blob/8dbde99b132ff8d8fcc9cfb015a9947ccc8b12d6/network-upgrades/mainnet-upgrades/arrow-glacier.md) file of the `ethereum/execution-specs` repository.

### Gray Glacier [EL]

The set of EIPs included in Gray Glacier are specified in the[`gray-glacier.md`](https://github.com/ethereum/execution-specs/blob/8dbde99b132ff8d8fcc9cfb015a9947ccc8b12d6/network-upgrades/mainnet-upgrades/gray-glacier.md) file of the `ethereum/execution-specs` repository.

### The Merge

The Merge was the first upgrade to require coordination between the execution and consensus layers. The consensus layer first activated the Bellatrix upgrade, which was followed by the activation of Paris on the execution layer.

#### Bellatrix [CL]

The full specifications for the Bellatrix network upgrade can be found in the [`v1.2.0` release of the `ethereum/consensus-specs` repository](https://github.com/ethereum/consensus-specs/blob/f8ae982c2fc7dbb03a3c95a638da4486310e09e9/README.md#stable-specifications).

#### Paris [EL]

The set of EIPs included in Paris are specified in the [`paris.md`](https://github.com/ethereum/execution-specs/blob/8dbde99b132ff8d8fcc9cfb015a9947ccc8b12d6/network-upgrades/mainnet-upgrades/paris.md) file of the `ethereum/execution-specs` repository.

### Shapella

The Shapella upgrade was the first upgrade to activate at the same time on both the execution and consensus layers. To enable this, the upgrade activation mechanism on the execution layer was changed to use timestamps instead of blocks. This is described in [EIP-6953](./eip-6953.md) and [EIP-6122](./eip-6122.md).

#### Shanghai [EL]

The set of EIPs included in Shanghai are specified in the[`shanghai.md`](https://github.com/ethereum/execution-specs/blob/8dbde99b132ff8d8fcc9cfb015a9947ccc8b12d6/network-upgrades/mainnet-upgrades/shanghai.md) file of the `ethereum/execution-specs` repository.

#### Capella [CL]

The full specifications for the Capella network upgrade can be found in the [`v1.3.0` release of the `ethereum/consensus-specs` repository](https://github.com/ethereum/consensus-specs/blob/01b53691dcc36d37a5ad8994b3a32d8de69fb1aa/README.md#stable-specifications).


## Rationale

The EIP repository is well known within the Ethereum community, and Meta EIPs have historically been useful to clearly list the EIPs included in a specific network upgrade.

While the specification process for the execution and consensus layers differ, there is value in having a single, harmonized, list of EIPs included in each upgrade, and for the lists for both layers to be part of the same repository.

Re-introducing Hardfork Meta EIPs enables this, and allows for de-duplication in cases where an EIP affects both the execution and consensus layer of Ethereum. This EIP covers the upgrades which did not use a Hardfork Meta EIP.

## Backwards Compatibility

No backward compatibility issues found.

## Security Considerations

None.

## Copyright

Copyright and related rights waived via [CC0](../LICENSE.md).
Loading