mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-17 04:48:21 +00:00
Fixes based on feedback
This commit is contained in:
@@ -306,6 +306,7 @@ pub struct ChainSpec {
|
||||
pub max_blocks_by_root_request_deneb: usize,
|
||||
pub max_blobs_by_root_request: usize,
|
||||
pub max_data_columns_by_root_request: usize,
|
||||
pub max_payload_envelopes_by_root_request: usize,
|
||||
|
||||
/*
|
||||
* Application params
|
||||
@@ -969,6 +970,8 @@ impl ChainSpec {
|
||||
max_blobs_by_root_request_common(self.max_request_blob_sidecars);
|
||||
self.max_data_columns_by_root_request =
|
||||
max_data_columns_by_root_request_common::<E>(self.max_request_blocks_deneb);
|
||||
self.max_payload_envelopes_by_root_request =
|
||||
max_blocks_by_root_request_common(self.max_request_payloads);
|
||||
|
||||
self
|
||||
}
|
||||
@@ -1299,6 +1302,7 @@ impl ChainSpec {
|
||||
min_epochs_for_data_column_sidecars_requests:
|
||||
default_min_epochs_for_data_column_sidecars_requests(),
|
||||
max_data_columns_by_root_request: default_data_columns_by_root_request(),
|
||||
max_payload_envelopes_by_root_request: default_max_payload_envelopes_by_root_request(),
|
||||
|
||||
/*
|
||||
* Application specific
|
||||
@@ -1629,7 +1633,7 @@ impl ChainSpec {
|
||||
builder_payment_threshold_denominator: 10,
|
||||
min_builder_withdrawability_delay: Epoch::new(4096),
|
||||
max_request_payloads: 128,
|
||||
|
||||
|
||||
/*
|
||||
* Network specific
|
||||
*/
|
||||
@@ -1685,6 +1689,7 @@ impl ChainSpec {
|
||||
min_epochs_for_data_column_sidecars_requests:
|
||||
default_min_epochs_for_data_column_sidecars_requests(),
|
||||
max_data_columns_by_root_request: default_data_columns_by_root_request(),
|
||||
max_payload_envelopes_by_root_request: default_max_payload_envelopes_by_root_request(),
|
||||
|
||||
/*
|
||||
* Application specific
|
||||
@@ -2349,6 +2354,14 @@ fn default_data_columns_by_root_request() -> usize {
|
||||
max_data_columns_by_root_request_common::<MainnetEthSpec>(default_max_request_blocks_deneb())
|
||||
}
|
||||
|
||||
fn default_max_payload_envelopes_by_root_request() -> usize {
|
||||
max_blocks_by_root_request_common(default_max_request_payloads())
|
||||
}
|
||||
|
||||
fn default_max_request_payloads() -> u64 {
|
||||
128
|
||||
}
|
||||
|
||||
impl Default for Config {
|
||||
fn default() -> Self {
|
||||
let chain_spec = MainnetEthSpec::default_spec();
|
||||
|
||||
@@ -8,7 +8,9 @@ use ssz_derive::{Decode, Encode};
|
||||
use test_random_derive::TestRandom;
|
||||
use tree_hash_derive::TreeHash;
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Encode, Decode, Deserialize, TestRandom, TreeHash, Educe)]
|
||||
#[derive(
|
||||
Debug, Default, Clone, Serialize, Encode, Decode, Deserialize, TestRandom, TreeHash, Educe,
|
||||
)]
|
||||
#[educe(PartialEq, Hash(bound(E: EthSpec)))]
|
||||
#[context_deserialize(ForkName)]
|
||||
#[serde(bound = "E: EthSpec")]
|
||||
|
||||
@@ -8,6 +8,7 @@ use bls::{PublicKey, Signature};
|
||||
use context_deserialize::context_deserialize;
|
||||
use educe::Educe;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use ssz::{BYTES_PER_LENGTH_OFFSET, Encode as SszEncode};
|
||||
use ssz_derive::{Decode, Encode};
|
||||
use test_random_derive::TestRandom;
|
||||
use tree_hash_derive::TreeHash;
|
||||
@@ -22,6 +23,36 @@ pub struct SignedExecutionPayloadEnvelope<E: EthSpec> {
|
||||
}
|
||||
|
||||
impl<E: EthSpec> SignedExecutionPayloadEnvelope<E> {
|
||||
/// Returns the minimum SSZ-encoded size (all variable-length fields empty).
|
||||
pub fn min_size() -> usize {
|
||||
Self {
|
||||
message: ExecutionPayloadEnvelope::default(),
|
||||
signature: Signature::empty(),
|
||||
}
|
||||
.as_ssz_bytes()
|
||||
.len()
|
||||
}
|
||||
|
||||
/// Returns the maximum SSZ-encoded size.
|
||||
#[allow(clippy::arithmetic_side_effects)]
|
||||
pub fn max_size() -> usize {
|
||||
// Start from the min size (all variable-length fields empty)
|
||||
Self::min_size()
|
||||
// ExecutionPayloadGloas variable-length fields:
|
||||
+ (E::max_extra_data_bytes() * <u8 as SszEncode>::ssz_fixed_len())
|
||||
+ (E::max_transactions_per_payload()
|
||||
* (BYTES_PER_LENGTH_OFFSET + E::max_bytes_per_transaction()))
|
||||
+ (E::max_withdrawals_per_payload()
|
||||
* <crate::Withdrawal as SszEncode>::ssz_fixed_len())
|
||||
// ExecutionRequests variable-length fields:
|
||||
+ (E::max_deposit_requests_per_payload()
|
||||
* <crate::DepositRequest as SszEncode>::ssz_fixed_len())
|
||||
+ (E::max_withdrawal_requests_per_payload()
|
||||
* <crate::WithdrawalRequest as SszEncode>::ssz_fixed_len())
|
||||
+ (E::max_consolidation_requests_per_payload()
|
||||
* <crate::ConsolidationRequest as SszEncode>::ssz_fixed_len())
|
||||
}
|
||||
|
||||
pub fn slot(&self) -> Slot {
|
||||
self.message.slot
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user