Skip to content

Commit

Permalink
adding blob target increase EIP
Browse files Browse the repository at this point in the history
  • Loading branch information
parithosh committed Apr 17, 2024
1 parent 0e0600e commit 582bb4b
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions EIPS/eip-xxxx.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
eip: tbd

Check failure on line 2 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `eip` must be an unsigned integer

error[preamble-eip]: preamble header `eip` must be an unsigned integer --> EIPS/eip-xxxx.md:2:5 | 2 | eip: tbd | ^^^^ not a non-negative integer | = help: see https://ethereum.github.io/eipw/preamble-eip/

Check failure on line 2 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

file name must reflect the preamble header `eip`

error[preamble-file-name]: file name must reflect the preamble header `eip` --> EIPS/eip-xxxx.md:2:5 | 2 | eip: tbd | ^^^^ this value | = help: this file's name should be `eip-tbd.md` = help: see https://ethereum.github.io/eipw/preamble-file-name/

Check failure on line 2 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `eip` must be an unsigned integer

error[preamble-eip]: preamble header `eip` must be an unsigned integer --> EIPS/eip-xxxx.md:2:5 | 2 | eip: tbd | ^^^^ not a non-negative integer | = help: see https://ethereum.github.io/eipw/preamble-eip/

Check failure on line 2 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

file name must reflect the preamble header `eip`

error[preamble-file-name]: file name must reflect the preamble header `eip` --> EIPS/eip-xxxx.md:2:5 | 2 | eip: tbd | ^^^^ this value | = help: this file's name should be `eip-tbd.md` = help: see https://ethereum.github.io/eipw/preamble-file-name/

Check failure on line 2 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `eip` must be an unsigned integer

error[preamble-eip]: preamble header `eip` must be an unsigned integer --> EIPS/eip-xxxx.md:2:5 | 2 | eip: tbd | ^^^^ not a non-negative integer | = help: see https://ethereum.github.io/eipw/preamble-eip/

Check failure on line 2 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

file name must reflect the preamble header `eip`

error[preamble-file-name]: file name must reflect the preamble header `eip` --> EIPS/eip-xxxx.md:2:5 | 2 | eip: tbd | ^^^^ this value | = help: this file's name should be `eip-tbd.md` = help: see https://ethereum.github.io/eipw/preamble-file-name/
title: Blob throughput increase
description: Increase the number of blobs to reach a new target of x blobs per block, to be defined by performing tests.
author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@savid)

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

authors in the preamble must match the expected format

error[preamble-author]: authors in the preamble must match the expected format --> EIPS/eip-xxxx.md:5:8 | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unrecognized author | = help: Try `Random J. User (@username) <test@example.com>` for an author with a GitHub username plus email. = help: Try `Random J. User (@username)` for an author with a GitHub username. = help: Try `Random J. User <test@example.com>` for an author with an email. = help: Try `Random J. User` for an author without contact information. = help: see https://ethereum.github.io/eipw/preamble-author/

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

authors in the preamble must match the expected format

error[preamble-author]: authors in the preamble must match the expected format --> EIPS/eip-xxxx.md:5:40 | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unrecognized author | = help: Try `Random J. User (@username) <test@example.com>` for an author with a GitHub username plus email. = help: Try `Random J. User (@username)` for an author with a GitHub username. = help: Try `Random J. User <test@example.com>` for an author with an email. = help: Try `Random J. User` for an author without contact information.

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

authors in the preamble must match the expected format

error[preamble-author]: authors in the preamble must match the expected format --> EIPS/eip-xxxx.md:5:71 | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) | ^^^^^^^^^^^^^^^^^^^^^^^^^ unrecognized author | = help: Try `Random J. User (@username) <test@example.com>` for an author with a GitHub username plus email. = help: Try `Random J. User (@username)` for an author with a GitHub username. = help: Try `Random J. User <test@example.com>` for an author with an email. = help: Try `Random J. User` for an author without contact information.

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

authors in the preamble must match the expected format

error[preamble-author]: authors in the preamble must match the expected format --> EIPS/eip-xxxx.md:5:97 | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) | ^^^^^^^^^^^^^^^^^^^^^ unrecognized author | = help: Try `Random J. User (@username) <test@example.com>` for an author with a GitHub username plus email. = help: Try `Random J. User (@username)` for an author with a GitHub username. = help: Try `Random J. User <test@example.com>` for an author with an email. = help: Try `Random J. User` for an author without contact information.

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `author` must contain at least one GitHub username

error[preamble-author]: preamble header `author` must contain at least one GitHub username --> EIPS/eip-xxxx.md | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) |

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

authors in the preamble must match the expected format

error[preamble-author]: authors in the preamble must match the expected format --> EIPS/eip-xxxx.md:5:8 | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unrecognized author | = help: Try `Random J. User (@username) <test@example.com>` for an author with a GitHub username plus email. = help: Try `Random J. User (@username)` for an author with a GitHub username. = help: Try `Random J. User <test@example.com>` for an author with an email. = help: Try `Random J. User` for an author without contact information. = help: see https://ethereum.github.io/eipw/preamble-author/

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

authors in the preamble must match the expected format

error[preamble-author]: authors in the preamble must match the expected format --> EIPS/eip-xxxx.md:5:40 | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unrecognized author | = help: Try `Random J. User (@username) <test@example.com>` for an author with a GitHub username plus email. = help: Try `Random J. User (@username)` for an author with a GitHub username. = help: Try `Random J. User <test@example.com>` for an author with an email. = help: Try `Random J. User` for an author without contact information.

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

authors in the preamble must match the expected format

error[preamble-author]: authors in the preamble must match the expected format --> EIPS/eip-xxxx.md:5:71 | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) | ^^^^^^^^^^^^^^^^^^^^^^^^^ unrecognized author | = help: Try `Random J. User (@username) <test@example.com>` for an author with a GitHub username plus email. = help: Try `Random J. User (@username)` for an author with a GitHub username. = help: Try `Random J. User <test@example.com>` for an author with an email. = help: Try `Random J. User` for an author without contact information.

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

authors in the preamble must match the expected format

error[preamble-author]: authors in the preamble must match the expected format --> EIPS/eip-xxxx.md:5:97 | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) | ^^^^^^^^^^^^^^^^^^^^^ unrecognized author | = help: Try `Random J. User (@username) <test@example.com>` for an author with a GitHub username plus email. = help: Try `Random J. User (@username)` for an author with a GitHub username. = help: Try `Random J. User <test@example.com>` for an author with an email. = help: Try `Random J. User` for an author without contact information.

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `author` must contain at least one GitHub username

error[preamble-author]: preamble header `author` must contain at least one GitHub username --> EIPS/eip-xxxx.md | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) |

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

authors in the preamble must match the expected format

error[preamble-author]: authors in the preamble must match the expected format --> EIPS/eip-xxxx.md:5:8 | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unrecognized author | = help: Try `Random J. User (@username) <test@example.com>` for an author with a GitHub username plus email. = help: Try `Random J. User (@username)` for an author with a GitHub username. = help: Try `Random J. User <test@example.com>` for an author with an email. = help: Try `Random J. User` for an author without contact information. = help: see https://ethereum.github.io/eipw/preamble-author/

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

authors in the preamble must match the expected format

error[preamble-author]: authors in the preamble must match the expected format --> EIPS/eip-xxxx.md:5:40 | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unrecognized author | = help: Try `Random J. User (@username) <test@example.com>` for an author with a GitHub username plus email. = help: Try `Random J. User (@username)` for an author with a GitHub username. = help: Try `Random J. User <test@example.com>` for an author with an email. = help: Try `Random J. User` for an author without contact information.

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

authors in the preamble must match the expected format

error[preamble-author]: authors in the preamble must match the expected format --> EIPS/eip-xxxx.md:5:71 | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) | ^^^^^^^^^^^^^^^^^^^^^^^^^ unrecognized author | = help: Try `Random J. User (@username) <test@example.com>` for an author with a GitHub username plus email. = help: Try `Random J. User (@username)` for an author with a GitHub username. = help: Try `Random J. User <test@example.com>` for an author with an email. = help: Try `Random J. User` for an author without contact information.

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

authors in the preamble must match the expected format

error[preamble-author]: authors in the preamble must match the expected format --> EIPS/eip-xxxx.md:5:97 | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) | ^^^^^^^^^^^^^^^^^^^^^ unrecognized author | = help: Try `Random J. User (@username) <test@example.com>` for an author with a GitHub username plus email. = help: Try `Random J. User (@username)` for an author with a GitHub username. = help: Try `Random J. User <test@example.com>` for an author with an email. = help: Try `Random J. User` for an author without contact information.

Check failure on line 5 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `author` must contain at least one GitHub username

error[preamble-author]: preamble header `author` must contain at least one GitHub username --> EIPS/eip-xxxx.md | 5 | author: Parithosh Jayanthi(@parithosh), Toni Wahrstätter(@nerolation), Sam Calder-Mason(@samcm), Andrew Davis(@Savid) |
discussions-to: tbd

Check failure on line 6 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `discussions-to` is not a valid URL

error[preamble-discussions-to]: preamble header `discussions-to` is not a valid URL --> EIPS/eip-xxxx.md:6:16 | 6 | discussions-to: tbd | ^^^^ relative URL without a base | = help: see https://ethereum.github.io/eipw/preamble-discussions-to/

Check failure on line 6 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `discussions-to` should point to a thread on ethereum-magicians.org

error[preamble-re-discussions-to]: preamble header `discussions-to` should point to a thread on ethereum-magicians.org --> EIPS/eip-xxxx.md:6:16 | 6 | discussions-to: tbd | ^^^^ required pattern was not matched | = info: the pattern in question: `^https://ethereum-magicians.org/t/[^/]+/[0-9]+$` = help: see https://ethereum.github.io/eipw/preamble-re-discussions-to/

Check failure on line 6 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `discussions-to` is not a valid URL

error[preamble-discussions-to]: preamble header `discussions-to` is not a valid URL --> EIPS/eip-xxxx.md:6:16 | 6 | discussions-to: tbd | ^^^^ relative URL without a base | = help: see https://ethereum.github.io/eipw/preamble-discussions-to/

Check failure on line 6 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `discussions-to` should point to a thread on ethereum-magicians.org

error[preamble-re-discussions-to]: preamble header `discussions-to` should point to a thread on ethereum-magicians.org --> EIPS/eip-xxxx.md:6:16 | 6 | discussions-to: tbd | ^^^^ required pattern was not matched | = info: the pattern in question: `^https://ethereum-magicians.org/t/[^/]+/[0-9]+$` = help: see https://ethereum.github.io/eipw/preamble-re-discussions-to/

Check failure on line 6 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `discussions-to` is not a valid URL

error[preamble-discussions-to]: preamble header `discussions-to` is not a valid URL --> EIPS/eip-xxxx.md:6:16 | 6 | discussions-to: tbd | ^^^^ relative URL without a base | = help: see https://ethereum.github.io/eipw/preamble-discussions-to/

Check failure on line 6 in EIPS/eip-xxxx.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `discussions-to` should point to a thread on ethereum-magicians.org

error[preamble-re-discussions-to]: preamble header `discussions-to` should point to a thread on ethereum-magicians.org --> EIPS/eip-xxxx.md:6:16 | 6 | discussions-to: tbd | ^^^^ required pattern was not matched | = info: the pattern in question: `^https://ethereum-magicians.org/t/[^/]+/[0-9]+$` = help: see https://ethereum.github.io/eipw/preamble-re-discussions-to/
status: Draft
type: Standards Track
category: Core
created: 2024-04-17
---

## Abstract

This EIP proposes to increase to the number of blobs in a block to provide more scale to Ethereum via L2 solution that rely on L1 data capacity.

## Motivation

Ethereum, with its rollup centric roadmap, scales by relying on L2. Since the Dencun fork, the blob gas target and maximum was set to 3/6 respectively. The blob gas limit was arrived at based on a series of big block tests performed on the Ethereum mainnet network as well as a series of testnets. The values were chosen cautiously, as its extremely hard to predict the exact p2p behaviour of Ethereum mainnet.

As we now have the Dencun upgrade live, we are able to use monitoring tools to check the network health. Initial monitoring indicates that we have a stable network with the current gas target, allowing us to consider starting a series of big block and blob tests to determine the theoretical headroom we currently have. The EIP would then be updated to include a proposed new blob gas target and limit.

Additional EIPs such as [EIP-7623](./eip-7623.md) proposes a calldata cost increase which would significantly lower the worst case base block size, thus creating more headroom for a potential blob throughput increase.

The current long term plan of Ethereum is to impliment peerDAS, but given the uncertain timelines, this EIP aims to increase the throughput short term to provide some scaling until future solutions are deployed.


## Specification

### Parameters

| Constant | Value |
| - | - |
| `PECTRA_FORK_EPOCH` | `tbd` |
| `MAX_BLOBS_PER_BLOCK` | `tbd` |

## Rationale

### Simplicity

A blob limit increase at the fork transition is relatively straightforward from an implimentation perspective. We would need to deploy an increased amount of monitoring around the fork epoch, but after a period of stability we can assume that the blob limit increase was successful, reducing any unexpected co-ordination efforts.

The EIP aims to minimize the amount of testing and implimentation effort from the perspective of the client teams, to allow for more resources to be allocated to peerDAS and other scaling research.

While this EIP may not achieve the new optimal blob limit, it offers a compromise for a short term increase.

### Testable changes

Through the use of big block/blob tests on Ethereum mainnet as well as testnets, we can earn a high degree of certainity that the blob limit increase would not negatively impact the network. These tests as well as the associated analysis can be performed mostly by non-client team entities, with minimal input required. Since the changes are quite contained, the EIP should be able to reduce the risk of the blob limit increase.

## Backwards Compatibility

todo

## Security Considerations

todo

## Copyright

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

0 comments on commit 582bb4b

Please sign in to comment.