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

feat: Sequencers should bound execution time #10838

Closed
PhilWindle opened this issue Dec 18, 2024 · 2 comments · Fixed by #10870
Closed

feat: Sequencers should bound execution time #10838

PhilWindle opened this issue Dec 18, 2024 · 2 comments · Fixed by #10870
Assignees
Milestone

Comments

@PhilWindle
Copy link
Collaborator

PhilWindle commented Dec 18, 2024

Currently, sequencers work by retrieving transactions from the mempool, up to a configured limit. They execute these transactions and then attempt to gain attestations. Attesting requires re-executing the transactions.

The sequencer pays no consideration to the amount of time it takes to execute the transactions it retrieves, so if it takes too long then it misses the slot.

The sequencer should bound execution time based on the configured time table, only starting transaction execution if there is greater than some proportion of the available block-building time available. The sequencer should then request attestations on whatever they have managed to build.

This should ensure we maintain a stream of blocks at the expense of trying to achieve a specific TPS.

@PhilWindle PhilWindle assigned PhilWindle and unassigned PhilWindle Dec 18, 2024
@PhilWindle PhilWindle changed the title Bound execution time Sequencers should bound execution time Dec 18, 2024
@PhilWindle PhilWindle added this to the TestNet milestone Dec 18, 2024
@just-mitch
Copy link
Collaborator

It would be nice we had a way to estimate mana usage by transaction before it was processed. Then the sequencer could keep a running tab of its mana/s and then more effectively binpack its block based on the time remaining.

@just-mitch
Copy link
Collaborator

But yes, at least cutting it off when it is approaching the boundary of the timetable is a good first step.

@spalladino spalladino changed the title Sequencers should bound execution time feat: Sequencers should bound execution time Dec 18, 2024
@spalladino spalladino self-assigned this Dec 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment