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: Reduce Slot Time for Lower Peak Bandwidth #8931

Merged
merged 7 commits into from
Oct 10, 2024

Conversation

benaadams
Copy link
Contributor

@benaadams benaadams commented Oct 5, 2024

Reduce Ethereum's slot time from 12 seconds to 8 seconds

  1. reduce based rollup latency
  2. increase transaction throughput by approximately 33% without increasing individual block or blob counts
  3. distributing bandwidth usage over time to lower peak bandwidth requirements and maintain network efficiency.

This would be equivalent to increasing blob count from 6 to 8 or gas limit from 30M to 40M; however this approach does not increase peak bandwidth.

@github-actions github-actions bot added c-new Creates a brand new proposal s-draft This EIP is a Draft t-core labels Oct 5, 2024
@benaadams benaadams changed the title Add EIP reduce slot time Add EIP Reduce Slot Time for Lower Peak Bandwidth Oct 5, 2024
@eth-bot
Copy link
Collaborator

eth-bot commented Oct 5, 2024

✅ All reviewers have approved.

@eth-bot eth-bot added e-consensus Waiting on editor consensus e-review Waiting on editor to review labels Oct 5, 2024
@eth-bot eth-bot changed the title Add EIP Reduce Slot Time for Lower Peak Bandwidth Add EIP: Reduce Slot Time for Lower Peak Bandwidth Oct 5, 2024
@JustinDrake
Copy link

Thank you @benaadams for pointing me to this thread :) My initial reaction would be to support reducing slot times to 8 seconds for a few reasons:

  1. It increases throughput by 1/2, an effective increase to a 45M gas limit and 9 blob limit. This roughly aligns with the proposed 40M gas limit by pumpthegas.org and the 8 blob limit by Vitalik and others.
  2. It opens the Overton window in favour of slot duration changes and would be a great warmup for future slot duration decreases.
  3. It makes the slot duration a nice power of two, aligning with the rest of the beacon chain parameters.
  4. It will make DEXes like Uniswap v3 roughly sqrt(12/8) ≈ 1.22x more efficient, saving roughly $100M in CEX-DEX arbitrage per year and ultimately leading to better execution for users.
  5. It will improve the UX of L1 contracts, reducing confirmation times by 1/3.
  6. Smoothing out peak load across more slots makes sense when execution clients largely sit idle between block verification spikes.

One downside of reducing slot times is that it will make timing games slightly more acute because of the slot-to-ping ratio decrease. Assuming a 80ms ping time and a 8s slot time the slot-to-ping ratio would be a healthy 100.

@KolbyML
Copy link
Member

KolbyML commented Oct 5, 2024

What impact will decreasing the slot time have on

  • hardware requirements
  • execution state growth and history growth (EIP-4444's hasn't shipped yet and until it does history growth is a valid concern)
  • will it affect attestation?
  • if solo builders now have less time to propagate everything, couldn't that lead to more skipped slots/re-orgs
  • how does network latency play into all this
  • Would decreasing the slot time increase the pressure to limit the amount of stakers etc

I am less aware of potential CL concerns, but I think this summary covers most of the potential bases for concerns if the slot time was decreased from 12s to 8s.

EIPS/eip-7781.md Outdated Show resolved Hide resolved
@huihzhao
Copy link

huihzhao commented Oct 6, 2024

Could you also share the validator hardware spec impacts? And also the storage impacts.

EIPS/eip-7781.md Outdated Show resolved Hide resolved
EIPS/eip-7781.md Outdated Show resolved Hide resolved
@anylots
Copy link

anylots commented Oct 8, 2024

Could it lead to worse geographical diversity, especially outside of North America and Europe?

@ahamlat
Copy link

ahamlat commented Oct 9, 2024

This proposal appears to be a promising approach to scaling Ethereum, essentially increasing its transaction throughput (TPS) and mgas/s without increasing the block size. In this context, it feels like a form of horizontal scaling, distributing the load more evenly over time, whereas simply increasing the block size would be akin to vertical scaling.

However, there are some concerns from my perspective, particularly around validator attestations and chain reorganizations. Based on metrics from our validators (Besu) and nodes, as well as with Geth, around 5% of the blocks we receive are delayed between 3 and 4 seconds, and less than 0.5% arrive after 4 seconds on a daily basis.

I’m not fully aware of all the intricacies on the consensus layer (CL) side, but I assume that if the slot time is reduced from 12 to 8 seconds, the 4-second attestation cut-off time would be shortened accordingly. This could have significant implications for attestations and potentially increase the risk of chain reorganizations. These are areas that may require further analysis to ensure network stability if this proposal is adopted.
We can see below block arrival time on a daily basis with Teku client (running with Besu and Geth)

Besu X Teku
image

Geth X Teku
image

Copy link
Contributor

@g11tech g11tech left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks mergeable with the eip renumering as suggested

benaadams and others added 4 commits October 10, 2024 13:25
Co-authored-by: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>
Co-authored-by: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>
@benaadams
Copy link
Contributor Author

benaadams commented Oct 10, 2024

Updated numbering

@eth-bot eth-bot enabled auto-merge (squash) October 10, 2024 14:05
Copy link
Collaborator

@eth-bot eth-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All Reviewers Have Approved; Performing Automatic Merge...

@eth-bot eth-bot merged commit 78684b1 into ethereum:master Oct 10, 2024
10 checks passed
@AndreaLanfranchi
Copy link
Contributor

I'm a bit confused by the apparent contradiction of this two statements

Increasing the gas limit from 30 million to 40 million or the blob limit from 6 to 8 directly raises the size of individual blocks or blobs, leading to higher peak bandwidth requirements that can strain network resources and disadvantage nodes with limited bandwidth.

and

Ensure that validators with lower bandwidth capacities can handle the increased frequency of messages.

So in the end bandwidth still remains a factor for both scenarios (i.e. either increase block size or increase block frequency). Or am I missing something ?

As an additional consideration I would also underline how, depending on individual implementations, block size increase vs block frequency increase have (serious measurement needed here) different impact on IO storage latency. Updating the whole state of the chain 30% times more might (!) result heavier (due to internals indexes implementation) than "simple" block size increase. Something to be carefully addressed not to increase the gap amongst implementations and storage models adopted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c-new Creates a brand new proposal e-consensus Waiting on editor consensus e-review Waiting on editor to review s-draft This EIP is a Draft t-core
Projects
None yet
Development

Successfully merging this pull request may close these issues.