movementlabsxyz / movement

The Movement Network is a Move-based L2 on Ethereum.
Apache License 2.0
79 stars 64 forks source link

(OTS) Sequencer Heuristic Does Not Split Blocks #878

Open l-monninger opened 1 hour ago

l-monninger commented 1 hour ago

Summary

The sequencer heuristics try to generate optimal blocks by performing different heuristic passes on the passed-in mempool blocks. However, the final blob bytes that are submitted to Celestia are only generated at the start and are never changed based on the heuristics. For example, if B1[tx1, tx2] is the original block and ends up being split, the two new WrappedBlocks will still store the same Celestia blob bytes containing both transactions. This seems incorrect. Here’s the relevant code:

l-monninger commented 1 hour ago

I believe the blob field is not actually used further up in the submission. But, regardless this should be changed to construct with try_new or similar. If blob is used, @mzabaluev this could be a candidate for Suzuka state freeze tbh as we might not have triggered the split path for a long time and then suddenly run into this faulty logic.

l-monninger commented 1 hour ago

@khokho