paradigmxyz / reth

Modular, contributor-friendly and blazing-fast implementation of the Ethereum protocol, in Rust
https://reth.rs/
Apache License 2.0
3.91k stars 1.14k forks source link

Add blob txs PooledTransactions representation #3944

Closed mattsse closed 1 year ago

mattsse commented 1 year ago

Describe the feature

See https://eips.ethereum.org/EIPS/eip-4844#networking

rlp([tx_payload_body, blobs, commitments, proofs])

The node MUST validate tx_payload_body and verify the wrapped data against it. To do so, ensure that:

There are an equal number of tx_payload_body.blob_versioned_hashes, blobs, commitments, and proofs. The KZG commitments hash to the versioned hashes, i.e. kzg_to_versioned_hash(commitments[i]) == tx_payload_body.blob_versioned_hashes[i] The KZG commitments match the corresponding blobs and proofs. (Note: this can be optimized using blob_kzg_proofs, with a proof for a random evaluation at a point derived from the commitment and blob data for each blob)

This only affects the response of getPooledTransactions

https://github.com/paradigmxyz/reth/blob/72ab361d67b2cddf767956f9a9d93805c3c3fb64/crates/net/eth-wire/src/types/transactions.rs#L34-L40

because blob txs must never be broadcasted

Additional context

No response

github-actions[bot] commented 1 year ago

This issue is stale because it has been open for 14 days with no activity.