-
Notifications
You must be signed in to change notification settings - Fork 54
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(octane/evmengine): support blob txs #2498
Conversation
octane/evmengine/keeper/helpers.go
Outdated
|
||
hasher := sha256.New() | ||
for i := range sidecar.Blobs { | ||
if err := kzg4844.VerifyBlobProof(&sidecar.Blobs[i], sidecar.Commitments[i], sidecar.Proofs[i]); err != nil { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is verifying the whole blob, proof, and commitment required for all validators? Since only Commitments
are required to calculate versioned hashes
which are provided to geth via NewPayload
, other fields (Blobs and Proofs
) are technically unused. Can they not be removed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you find the answer to this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, we only include Commitments for minimal but safe support
octane/evmengine/keeper/helpers.go
Outdated
hashes := make([]common.Hash, 0, len(sidecar.Blobs)) | ||
|
||
hasher := sha256.New() | ||
for i := range sidecar.Blobs { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ethereum consensus layer has a MAX_BLOBS_PER_BLOCK=6
. We should maybe also enforce something like this.
9eaf418
to
2796042
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Worth having blob tx in e2e?
2796042
to
b48b1d9
Compare
b48b1d9
to
bac9c75
Compare
Adds minimal support for blob txs.
Only include
BlobCommitments
in consensus chain blocks. This is required to calculate blob hashes and provide toengine.NewPayload
. This adds minimum support for blobs, i.e., that they can be submitted to EVM and included in blocks without problems.But we don't include blobs themselves (or proofs) in the consensus chains. Neither do we provide an API to query them. This limits consensus chain size by not including blobs. Submitted blobs can therefore not be queried from the consensus chain. This does render BlobTxs useless, but this isn't a problem since we don't have a use-case that require it.
Minimal support for blobs does means that stock standard geth is still supported and that forking geth to disable blob txs isn't required.
issue: https://github.com/omni-network/ops/issues/613