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

Octane no empty blocks #2936

Open
ttarsi opened this issue Jan 29, 2025 · 0 comments
Open

Octane no empty blocks #2936

ttarsi opened this issue Jan 29, 2025 · 0 comments

Comments

@ttarsi
Copy link
Contributor

ttarsi commented Jan 29, 2025

Problem to Solve

In the early days of the chain, many EVM blocks are empty. This wastes space on nodes in the long run. We could reduce node size significantly by skipping "most" empty blocks.

Proposed Solution

First thing to decide is whether periodic empty blocks are required or not, i.e. at least build one empty block every N consensus blocks.

Then, there are basically two ways to do this:

  1. Best effort per node config
  • Provide an halo config flag (evm-no-empty-blocks).
  • If enabled on a validator node, that node proposes skips execution payload if it contains zero txs, or if ConsensusHeight%N==0
  • No other changes are required, since validators are allowed to skip EVM blocks when proposing consensus blocks.
  • This will however depend on the proportion of validators that configure this.
  1. Enforced in consensus layer
  • Don't provide any flag, rather build this as network upgrade.
  • All validators skips execution payload it contains zero txs, or if ConsensusHeight%N==0
  • All validators enforce this in ProcessProposal. So reject empty evm blocks unless ConsensusHeight%N==0.
@corverroos corverroos changed the title Only build non-empty blocks Octane no empty blocks Jan 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant