You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 30, 2025. It is now read-only.
Our current execution layer requires at least one transaction to be included in every block. This behavior occurs because of how the transaction retrieval and execution process is implemented in our EVM integration.
Problem
Currently, even when there are no actual transactions in the EVM payload, our system forces the inclusion of at least one transaction. This is evident in the code where ExecuteTxs is called with specific parameters that always ensure a non-zero number of transactions.
This approach prevents us from producing truly empty blocks which are necessary for Rollkit's lazy aggregation.
Proposed Solution
Implement a "lazy block production" mode that would:
Allow GetTxs to return 0 transactions when there are no transactions in the EVM payload
Add support for handling 0 transactions in the ExecuteTxs function as a special case
Introduce a configuration option to enable/disable this "lazy mode"
Implementation Details
Changes Required:
Modify the transaction retrieval logic to allow returning empty transaction sets when appropriate
Update the ExecuteTxs function to handle the case when zero transactions are submitted
Add a configuration parameter (e.g., LazyBlockProduction bool) to control this behavior
Ensure backward compatibility by maintaining current behavior when lazy mode is disabled