diff --git a/ethereum-consensus/src/deneb/blob_sidecar.rs b/ethereum-consensus/src/deneb/blob_sidecar.rs index c0a6144e7..b13301009 100644 --- a/ethereum-consensus/src/deneb/blob_sidecar.rs +++ b/ethereum-consensus/src/deneb/blob_sidecar.rs @@ -1,6 +1,9 @@ use crate::{ - deneb::polynomial_commitments::{KzgCommitment, KzgProof}, - primitives::{BlobIndex, BlsSignature, Root, Slot, ValidatorIndex}, + deneb::{ + polynomial_commitments::{KzgCommitment, KzgProof}, + SignedBeaconBlockHeader, + }, + primitives::{BlobIndex, Bytes32, Root}, ssz::prelude::*, }; @@ -12,26 +15,17 @@ pub type Blob = ByteVector; #[derive( Default, Debug, Clone, SimpleSerialize, PartialEq, Eq, serde::Serialize, serde::Deserialize, )] -pub struct BlobSidecar { - pub block_root: Root, +pub struct BlobSidecar< + const BYTES_PER_BLOB: usize, + const KZG_COMMITMENT_INCLUSION_PROOF_DEPTH: usize, +> { #[serde(with = "crate::serde::as_str")] pub index: BlobIndex, - #[serde(with = "crate::serde::as_str")] - pub slot: Slot, - pub block_parent_root: Root, - #[serde(with = "crate::serde::as_str")] - pub proposer_index: ValidatorIndex, pub blob: Blob, pub kzg_commitment: KzgCommitment, pub kzg_proof: KzgProof, -} - -#[derive( - Default, Debug, Clone, SimpleSerialize, PartialEq, Eq, serde::Serialize, serde::Deserialize, -)] -pub struct SignedBlobSidecar { - pub message: BlobSidecar, - pub signature: BlsSignature, + pub signed_block_header: SignedBeaconBlockHeader, + pub kzg_commitment_inclusion_proof: Vector, } #[derive( diff --git a/ethereum-consensus/src/deneb/presets/mainnet.rs b/ethereum-consensus/src/deneb/presets/mainnet.rs index 8b7e3190e..2bbf68198 100644 --- a/ethereum-consensus/src/deneb/presets/mainnet.rs +++ b/ethereum-consensus/src/deneb/presets/mainnet.rs @@ -19,6 +19,7 @@ pub use spec::*; pub const FIELD_ELEMENTS_PER_BLOB: usize = 4096; pub const MAX_BLOB_COMMITMENTS_PER_BLOCK: usize = 4096; pub const MAX_BLOBS_PER_BLOCK: usize = 6; +pub const KZG_COMMITMENT_INCLUSION_PROOF_DEPTH: usize = 17; pub const BYTES_PER_BLOB: usize = crate::deneb::polynomial_commitments::BYTES_PER_FIELD_ELEMENT * FIELD_ELEMENTS_PER_BLOB; @@ -149,5 +150,4 @@ pub type SignedBeaconBlock = spec::SignedBeaconBlock< >; pub type Blob = spec::Blob; -pub type BlobSidecar = spec::BlobSidecar; -pub type SignedBlobSidecar = spec::SignedBlobSidecar; +pub type BlobSidecar = spec::BlobSidecar; diff --git a/ethereum-consensus/src/deneb/presets/minimal.rs b/ethereum-consensus/src/deneb/presets/minimal.rs index fc72718da..b24a5d71f 100644 --- a/ethereum-consensus/src/deneb/presets/minimal.rs +++ b/ethereum-consensus/src/deneb/presets/minimal.rs @@ -19,6 +19,7 @@ pub use spec::*; pub const FIELD_ELEMENTS_PER_BLOB: usize = 4096; pub const MAX_BLOB_COMMITMENTS_PER_BLOCK: usize = 16; pub const MAX_BLOBS_PER_BLOCK: usize = 6; +pub const KZG_COMMITMENT_INCLUSION_PROOF_DEPTH: usize = 9; pub const BYTES_PER_BLOB: usize = crate::deneb::polynomial_commitments::BYTES_PER_FIELD_ELEMENT * FIELD_ELEMENTS_PER_BLOB; @@ -149,5 +150,4 @@ pub type SignedBeaconBlock = spec::SignedBeaconBlock< >; pub type Blob = spec::Blob; -pub type BlobSidecar = spec::BlobSidecar; -pub type SignedBlobSidecar = spec::SignedBlobSidecar; +pub type BlobSidecar = spec::BlobSidecar; diff --git a/ethereum-consensus/src/deneb/spec/mod.rs b/ethereum-consensus/src/deneb/spec/mod.rs index ffe10a1d3..f66b63416 100644 --- a/ethereum-consensus/src/deneb/spec/mod.rs +++ b/ethereum-consensus/src/deneb/spec/mod.rs @@ -33,8 +33,7 @@ pub use crate::{ }, blinded_blob_sidecar::{BlindedBlobSidecar, SignedBlindedBlobSidecar}, blob_sidecar::{ - Blob, BlobIdentifier, BlobSidecar, SignedBlobSidecar, BLOB_TX_TYPE, - VERSIONED_HASH_VERSION_KZG, + Blob, BlobIdentifier, BlobSidecar, BLOB_TX_TYPE, VERSIONED_HASH_VERSION_KZG, }, block_processing::{ process_attestation, process_block, process_execution_payload, process_voluntary_exit,