Skip to content

Conversation

cskiraly
Copy link
Contributor

As a consequence of moving blob sidecar version migration code around, we ended up building blocks
with a mix of v0 and v1 blob transactions (different proof encoding in the sidecar).

This PR makes sure we are not building illegal blocks after Osaka. Blob migration is left for another PR.

Related issues and PRs:

needed for filtering logic in block production

Signed-off-by: Csaba Kiraly <[email protected]>
Comment on lines 81 to 83
OnlyPlainTxs bool // Return only plain EVM transactions (peer-join announces, block space filling)
OnlyBlobV0Txs bool // Return only V0 encoded blob transactions (block blob-space filling)
OnlyBlobV1Txs bool // Return only V1 encoded blob transactions (block blob-space filling)
Copy link
Member

Choose a reason for hiding this comment

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

Changing this API seems overkill since it is only useful for a short period around the fork boundary. I would just skip over v0 blob sidecars in the miner worker after Osaka and we can remove it again later on after the fork.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

worker does not interface directly to the blobpool, only to the txpool, so I think getting a sidecar version would require even more API changes. It would either need to relay a call to the blobpool (PendingV1Only), or we would need to add blob version info to the LazyTransaction. Both seems messy to me compared to this.

@cskiraly
Copy link
Contributor Author

I've messed up the commit before, missing the miner/worker part. Fixed now.

OnlyPlainTxs bool // Return only plain EVM transactions (peer-join announces, block space filling)
OnlyBlobTxs bool // Return only blob transactions (block blob-space filling)
OnlyPlainTxs bool // Return only plain EVM transactions (peer-join announces, block space filling)
OnlyBlobV0Txs bool // Return only V0 encoded blob transactions (block blob-space filling)
Copy link
Contributor

@fjl fjl Sep 11, 2025

Choose a reason for hiding this comment

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

MinBlobVersion int?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Min sounds good at first, but actually the only thing we need in the current usage is an exact BlobVersion.

@fjl fjl removed the status:triage label Sep 11, 2025
// When BlobTxs true, return only blob transactions (block blob-space filling)
// when false, return only non-blob txs (peer-join announces, block space filling)
BlobTxs bool
BlobVersion byte // Blob tx version to include. 0 means pre-Osaka, 1 means Osaka and later
Copy link
Member

Choose a reason for hiding this comment

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

I still think the versioning / changing the api is overkill?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I don't think there is a cleaner way to do this filtering, but maybe I'm wrong here.

Copy link
Contributor

Choose a reason for hiding this comment

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

We discussed this on triage and the filter is what we came up with

Copy link
Contributor Author

Choose a reason for hiding this comment

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

So we could also do the filtering in commitBlobTransactions, but

  • that would require loading the sidecars
  • the filtering would be hidden in that function, instead of putting it where we already do filtering and where it logically fits.
    I think the current version is better.

Copy link
Member

@MariusVanDerWijden MariusVanDerWijden left a comment

Choose a reason for hiding this comment

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

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants