mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-17 04:48:21 +00:00
Implement changes for EIP 7691 (#6803)
* Add new config options * Use electra_enabled
This commit is contained in:
@@ -191,7 +191,6 @@ pub struct ChainSpec {
|
||||
pub max_pending_partials_per_withdrawals_sweep: u64,
|
||||
pub min_per_epoch_churn_limit_electra: u64,
|
||||
pub max_per_epoch_activation_exit_churn_limit: u64,
|
||||
pub max_blobs_per_block_electra: u64,
|
||||
|
||||
/*
|
||||
* Fulu hard fork params
|
||||
@@ -240,6 +239,13 @@ pub struct ChainSpec {
|
||||
pub blob_sidecar_subnet_count: u64,
|
||||
max_blobs_per_block: u64,
|
||||
|
||||
/*
|
||||
* Networking Electra
|
||||
*/
|
||||
max_blobs_per_block_electra: u64,
|
||||
pub blob_sidecar_subnet_count_electra: u64,
|
||||
pub max_request_blob_sidecars_electra: u64,
|
||||
|
||||
/*
|
||||
* Networking Derived
|
||||
*
|
||||
@@ -618,6 +624,14 @@ impl ChainSpec {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn max_request_blob_sidecars(&self, fork_name: ForkName) -> usize {
|
||||
if fork_name.electra_enabled() {
|
||||
self.max_request_blob_sidecars_electra as usize
|
||||
} else {
|
||||
self.max_request_blob_sidecars as usize
|
||||
}
|
||||
}
|
||||
|
||||
/// Return the value of `MAX_BLOBS_PER_BLOCK` appropriate for the fork at `epoch`.
|
||||
pub fn max_blobs_per_block(&self, epoch: Epoch) -> u64 {
|
||||
self.max_blobs_per_block_by_fork(self.fork_name_at_epoch(epoch))
|
||||
@@ -830,7 +844,6 @@ impl ChainSpec {
|
||||
u64::checked_pow(2, 8)?.checked_mul(u64::checked_pow(10, 9)?)
|
||||
})
|
||||
.expect("calculation does not overflow"),
|
||||
max_blobs_per_block_electra: default_max_blobs_per_block_electra(),
|
||||
|
||||
/*
|
||||
* Fulu hard fork params
|
||||
@@ -886,6 +899,13 @@ impl ChainSpec {
|
||||
max_blobs_by_root_request: default_max_blobs_by_root_request(),
|
||||
max_data_columns_by_root_request: default_data_columns_by_root_request(),
|
||||
|
||||
/*
|
||||
* Networking Electra specific
|
||||
*/
|
||||
max_blobs_per_block_electra: default_max_blobs_per_block_electra(),
|
||||
blob_sidecar_subnet_count_electra: default_blob_sidecar_subnet_count_electra(),
|
||||
max_request_blob_sidecars_electra: default_max_request_blob_sidecars_electra(),
|
||||
|
||||
/*
|
||||
* Application specific
|
||||
*/
|
||||
@@ -1161,7 +1181,6 @@ impl ChainSpec {
|
||||
u64::checked_pow(2, 8)?.checked_mul(u64::checked_pow(10, 9)?)
|
||||
})
|
||||
.expect("calculation does not overflow"),
|
||||
max_blobs_per_block_electra: default_max_blobs_per_block_electra(),
|
||||
|
||||
/*
|
||||
* Fulu hard fork params
|
||||
@@ -1216,6 +1235,13 @@ impl ChainSpec {
|
||||
max_blobs_by_root_request: default_max_blobs_by_root_request(),
|
||||
max_data_columns_by_root_request: default_data_columns_by_root_request(),
|
||||
|
||||
/*
|
||||
* Networking Electra specific
|
||||
*/
|
||||
max_blobs_per_block_electra: default_max_blobs_per_block_electra(),
|
||||
blob_sidecar_subnet_count_electra: default_blob_sidecar_subnet_count_electra(),
|
||||
max_request_blob_sidecars_electra: default_max_request_blob_sidecars_electra(),
|
||||
|
||||
/*
|
||||
* Application specific
|
||||
*/
|
||||
@@ -1421,6 +1447,12 @@ pub struct Config {
|
||||
#[serde(default = "default_max_blobs_per_block_electra")]
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
max_blobs_per_block_electra: u64,
|
||||
#[serde(default = "default_blob_sidecar_subnet_count_electra")]
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub blob_sidecar_subnet_count_electra: u64,
|
||||
#[serde(default = "default_max_request_blob_sidecars_electra")]
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
max_request_blob_sidecars_electra: u64,
|
||||
|
||||
#[serde(default = "default_custody_requirement")]
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
@@ -1555,6 +1587,14 @@ const fn default_max_blobs_per_block() -> u64 {
|
||||
6
|
||||
}
|
||||
|
||||
const fn default_blob_sidecar_subnet_count_electra() -> u64 {
|
||||
9
|
||||
}
|
||||
|
||||
const fn default_max_request_blob_sidecars_electra() -> u64 {
|
||||
1152
|
||||
}
|
||||
|
||||
const fn default_min_per_epoch_churn_limit_electra() -> u64 {
|
||||
128_000_000_000
|
||||
}
|
||||
@@ -1787,6 +1827,8 @@ impl Config {
|
||||
max_per_epoch_activation_exit_churn_limit: spec
|
||||
.max_per_epoch_activation_exit_churn_limit,
|
||||
max_blobs_per_block_electra: spec.max_blobs_per_block_electra,
|
||||
blob_sidecar_subnet_count_electra: spec.blob_sidecar_subnet_count_electra,
|
||||
max_request_blob_sidecars_electra: spec.max_request_blob_sidecars_electra,
|
||||
|
||||
custody_requirement: spec.custody_requirement,
|
||||
data_column_sidecar_subnet_count: spec.data_column_sidecar_subnet_count,
|
||||
@@ -1865,6 +1907,8 @@ impl Config {
|
||||
min_per_epoch_churn_limit_electra,
|
||||
max_per_epoch_activation_exit_churn_limit,
|
||||
max_blobs_per_block_electra,
|
||||
blob_sidecar_subnet_count_electra,
|
||||
max_request_blob_sidecars_electra,
|
||||
custody_requirement,
|
||||
data_column_sidecar_subnet_count,
|
||||
number_of_columns,
|
||||
@@ -1935,6 +1979,8 @@ impl Config {
|
||||
min_per_epoch_churn_limit_electra,
|
||||
max_per_epoch_activation_exit_churn_limit,
|
||||
max_blobs_per_block_electra,
|
||||
max_request_blob_sidecars_electra,
|
||||
blob_sidecar_subnet_count_electra,
|
||||
|
||||
// We need to re-derive any values that might have changed in the config.
|
||||
max_blocks_by_root_request: max_blocks_by_root_request_common(max_request_blocks),
|
||||
|
||||
Reference in New Issue
Block a user