-
Notifications
You must be signed in to change notification settings - Fork 106
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
EIP-4844: Implement NetworkTransactionPayload #1422
Comments
I think I found an easier solution to implement NetworkTransactionPayload. |
Nodes must not automatically broadcast blob transactions to their peers. Instead, those transactions are only announced using
NewPooledTransactionHashes
messages, and can then be manually requested viaGetPooledTransactions
.Transactions are presented as
TransactionType || TransactionNetworkPayload
on the execution layer network, the payload is a SSZ encoded container:MAX_TX_WRAP_KZG_COMMITMENTS: 2 ** 24
FIELD_ELEMENTS_PER_BLOB: 4096
LIMIT_BLOBS_PER_TX: 2 ** 24
We do network-level validation of
BlobTransactionNetworkWrapper
objects as follows:EIP-2718 is extended with a “wrapper data”, the typed transaction can be encoded in two forms, dependent on the context:
Execution-payloads / blocks use the minimal encoding of transactions. In the transaction-pool and local transaction-journal the network encoding is used.
For previous types of transactions the network encoding is no different, i.e. TransactionNetworkPayload == TransactionPayload.
The TransactionNetworkPayload wraps a TransactionPayload with additional data: this wrapping data SHOULD be verified directly before or after signature verification.
When a blob transaction is passed through the network (see the Networking section below), the TransactionNetworkPayload version of the transaction also includes blobs and kzgs (commitments list). The execution layer verifies the wrapper validity against the inner TransactionPayload after signature verification as:
BLOB_COMMITMENT_VERSION_KZG: Bytes1(0x01)
MAX_DATA_GAS_PER_BLOCK: 2 ** 19
DATA_GAS_PER_BLOB: 2 ** 17
The text was updated successfully, but these errors were encountered: