mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-30 12:47:05 +00:00
got interop working~
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
use super::{EthSpec, InclusionListTransactions, SignedInclusionList, Slot, Transaction};
|
||||
use crate::Transactions;
|
||||
|
||||
use super::{EthSpec, SignedInclusionList, Slot, Transaction};
|
||||
use std::collections::{HashMap, HashSet};
|
||||
use tracing::debug;
|
||||
|
||||
@@ -81,10 +83,7 @@ impl<E: EthSpec> InclusionListCache<E> {
|
||||
);
|
||||
}
|
||||
|
||||
pub fn get_inclusion_list_transactions(
|
||||
&self,
|
||||
slot: Slot,
|
||||
) -> Option<InclusionListTransactions<E>> {
|
||||
pub fn get_inclusion_list_transactions(&self, slot: Slot) -> Option<Transactions<E>> {
|
||||
let Some(inner) = self.inner_map.get(&slot) else {
|
||||
return None;
|
||||
};
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
use crate::beacon_block_body::KzgCommitments;
|
||||
use crate::test_utils::TestRandom;
|
||||
use crate::{
|
||||
ChainSpec, ContextDeserialize, EthSpec, ExecutionPayloadHeaderBellatrix,
|
||||
ExecutionPayloadHeaderCapella, ExecutionPayloadHeaderDeneb, ExecutionPayloadHeaderEip7805,
|
||||
ExecutionPayloadHeaderElectra, ExecutionPayloadHeaderFulu, ExecutionPayloadHeaderRef,
|
||||
ExecutionPayloadHeaderRefMut, ExecutionRequests, ForkName, ForkVersionDecode,
|
||||
SignedRoot, Uint256,
|
||||
ExecutionPayloadHeaderRefMut, ExecutionRequests, ForkName, ForkVersionDecode, SignedRoot,
|
||||
Uint256,
|
||||
};
|
||||
use bls::PublicKeyBytes;
|
||||
use bls::Signature;
|
||||
@@ -12,7 +13,6 @@ use serde::{Deserialize, Deserializer, Serialize};
|
||||
use ssz::Decode;
|
||||
use ssz_derive::{Decode, Encode};
|
||||
use superstruct::superstruct;
|
||||
use crate::test_utils::TestRandom;
|
||||
use test_random_derive::TestRandom;
|
||||
use tree_hash_derive::TreeHash;
|
||||
|
||||
|
||||
@@ -983,7 +983,7 @@ impl ChainSpec {
|
||||
/*
|
||||
* Fulu hard fork params
|
||||
*/
|
||||
fulu_fork_version: [0x06, 0x00, 0x00, 0x00],
|
||||
fulu_fork_version: [0x07, 0x00, 0x00, 0x00],
|
||||
fulu_fork_epoch: None,
|
||||
custody_requirement: 4,
|
||||
number_of_custody_groups: 128,
|
||||
@@ -1113,7 +1113,7 @@ impl ChainSpec {
|
||||
eip7805_fork_epoch: None,
|
||||
eip7805_fork_version: [0x06, 0x00, 0x00, 0x00],
|
||||
// Fulu
|
||||
fulu_fork_version: [0x06, 0x00, 0x00, 0x01],
|
||||
fulu_fork_version: [0x07, 0x00, 0x00, 0x00],
|
||||
fulu_fork_epoch: None,
|
||||
// Other
|
||||
network_id: 2, // lighthouse testnet network id
|
||||
@@ -1328,7 +1328,7 @@ impl ChainSpec {
|
||||
/*
|
||||
* Fulu hard fork params
|
||||
*/
|
||||
fulu_fork_version: [0x06, 0x00, 0x00, 0x64],
|
||||
fulu_fork_version: [0x07, 0x00, 0x00, 0x00],
|
||||
fulu_fork_epoch: None,
|
||||
custody_requirement: 4,
|
||||
number_of_custody_groups: 128,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use crate::{
|
||||
consts::altair, consts::deneb, AltairPreset, BasePreset, BellatrixPreset, CapellaPreset,
|
||||
ChainSpec, Config, DenebPreset, ElectraPreset, EthSpec, ForkName, FuluPreset,
|
||||
ChainSpec, Config, DenebPreset, Eip7805Preset, ElectraPreset, EthSpec, ForkName, FuluPreset,
|
||||
};
|
||||
use maplit::hashmap;
|
||||
use serde::{Deserialize, Serialize};
|
||||
@@ -34,6 +34,9 @@ pub struct ConfigAndPreset {
|
||||
#[superstruct(only(Electra, Eip7805, Fulu))]
|
||||
#[serde(flatten)]
|
||||
pub electra_preset: ElectraPreset,
|
||||
#[superstruct(only(Eip7805, Fulu))]
|
||||
#[serde(flatten)]
|
||||
pub eip7805_preset: Eip7805Preset,
|
||||
#[superstruct(only(Fulu))]
|
||||
#[serde(flatten)]
|
||||
pub fulu_preset: FuluPreset,
|
||||
@@ -58,6 +61,7 @@ impl ConfigAndPreset {
|
||||
|| fork_name == Some(ForkName::Fulu)
|
||||
{
|
||||
let electra_preset = ElectraPreset::from_chain_spec::<E>(spec);
|
||||
let eip7805_preset = Eip7805Preset::from_chain_spec::<E>(spec);
|
||||
let fulu_preset = FuluPreset::from_chain_spec::<E>(spec);
|
||||
|
||||
ConfigAndPreset::Fulu(ConfigAndPresetFulu {
|
||||
@@ -68,9 +72,28 @@ impl ConfigAndPreset {
|
||||
capella_preset,
|
||||
deneb_preset,
|
||||
electra_preset,
|
||||
eip7805_preset,
|
||||
fulu_preset,
|
||||
extra_fields,
|
||||
})
|
||||
} else if spec.electra_fork_epoch.is_some()
|
||||
|| fork_name.is_none()
|
||||
|| fork_name == Some(ForkName::Eip7805)
|
||||
{
|
||||
let electra_preset = ElectraPreset::from_chain_spec::<E>(spec);
|
||||
let eip7805_preset = Eip7805Preset::from_chain_spec::<E>(spec);
|
||||
|
||||
ConfigAndPreset::Eip7805(ConfigAndPresetEip7805 {
|
||||
config,
|
||||
base_preset,
|
||||
altair_preset,
|
||||
bellatrix_preset,
|
||||
capella_preset,
|
||||
deneb_preset,
|
||||
electra_preset,
|
||||
eip7805_preset,
|
||||
extra_fields,
|
||||
})
|
||||
} else if spec.electra_fork_epoch.is_some()
|
||||
|| fork_name.is_none()
|
||||
|| fork_name == Some(ForkName::Electra)
|
||||
|
||||
@@ -1,18 +1,12 @@
|
||||
use crate::test_utils::TestRandom;
|
||||
use crate::{EthSpec, Hash256, Signature, SignedRoot, Slot, Transaction};
|
||||
use crate::{EthSpec, Hash256, Signature, SignedRoot, Slot, Transactions};
|
||||
|
||||
use derivative::Derivative;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use ssz_derive::{Decode, Encode};
|
||||
use ssz_types::VariableList;
|
||||
use test_random_derive::TestRandom;
|
||||
use tree_hash_derive::TreeHash;
|
||||
|
||||
pub type InclusionListTransactions<E> = VariableList<
|
||||
Transaction<<E as EthSpec>::MaxBytesPerTransaction>,
|
||||
<E as EthSpec>::MaxTransactionsPerInclusionList,
|
||||
>;
|
||||
|
||||
#[derive(
|
||||
Debug,
|
||||
Clone,
|
||||
@@ -33,7 +27,7 @@ pub struct InclusionList<E: EthSpec> {
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub validator_index: u64,
|
||||
pub inclusion_list_committee_root: Hash256,
|
||||
pub transactions: InclusionListTransactions<E>,
|
||||
pub transactions: Transactions<E>,
|
||||
}
|
||||
|
||||
impl<E: EthSpec> SignedRoot for InclusionList<E> {}
|
||||
|
||||
@@ -186,7 +186,7 @@ pub use crate::fork_data::ForkData;
|
||||
pub use crate::fork_name::{ForkName, InconsistentFork};
|
||||
pub use crate::graffiti::{Graffiti, GRAFFITI_BYTES_LEN};
|
||||
pub use crate::historical_batch::HistoricalBatch;
|
||||
pub use crate::inclusion_list::{InclusionList, InclusionListTransactions, SignedInclusionList};
|
||||
pub use crate::inclusion_list::{InclusionList, SignedInclusionList};
|
||||
pub use crate::inclusion_list_committee::InclusionListCommittee;
|
||||
pub use crate::inclusion_list_duty::InclusionListDuty;
|
||||
pub use crate::indexed_attestation::{
|
||||
|
||||
@@ -245,7 +245,7 @@ impl<'de, E: EthSpec> ContextDeserialize<'de, ForkName> for LightClientBootstrap
|
||||
ForkName::Deneb => {
|
||||
Self::Deneb(Deserialize::deserialize(deserializer).map_err(convert_err)?)
|
||||
}
|
||||
ForkName::Electra | ForkName::Eip7805 => {
|
||||
ForkName::Electra | ForkName::Eip7805 => {
|
||||
Self::Electra(Deserialize::deserialize(deserializer).map_err(convert_err)?)
|
||||
}
|
||||
ForkName::Fulu => {
|
||||
|
||||
@@ -263,7 +263,7 @@ impl<'de, E: EthSpec> ContextDeserialize<'de, ForkName> for LightClientFinalityU
|
||||
ForkName::Deneb => {
|
||||
Self::Deneb(Deserialize::deserialize(deserializer).map_err(convert_err)?)
|
||||
}
|
||||
ForkName::Electra | ForkName::Eip7805 => {
|
||||
ForkName::Electra | ForkName::Eip7805 => {
|
||||
Self::Electra(Deserialize::deserialize(deserializer).map_err(convert_err)?)
|
||||
}
|
||||
ForkName::Fulu => {
|
||||
|
||||
@@ -291,52 +291,17 @@ impl ElectraPreset {
|
||||
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "UPPERCASE")]
|
||||
pub struct Eip7805Preset {
|
||||
#[serde(with = "serde_utils::quoted_u32")]
|
||||
pub domain_inclusion_list_committee: u32,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub min_activation_balance: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub max_effective_balance_electra: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub min_slashing_penalty_quotient_electra: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub whistleblower_reward_quotient_electra: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub max_pending_partials_per_withdrawals_sweep: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub pending_deposits_limit: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub pending_partial_withdrawals_limit: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub pending_consolidations_limit: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub max_consolidation_requests_per_payload: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub max_deposit_requests_per_payload: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub max_attester_slashings_electra: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub max_attestations_electra: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub max_withdrawal_requests_per_payload: u64,
|
||||
pub inclusion_list_committee_size: u64,
|
||||
}
|
||||
|
||||
impl Eip7805Preset {
|
||||
pub fn from_chain_spec<E: EthSpec>(spec: &ChainSpec) -> Self {
|
||||
Self {
|
||||
min_activation_balance: spec.min_activation_balance,
|
||||
max_effective_balance_electra: spec.max_effective_balance_electra,
|
||||
min_slashing_penalty_quotient_electra: spec.min_slashing_penalty_quotient_electra,
|
||||
whistleblower_reward_quotient_electra: spec.whistleblower_reward_quotient_electra,
|
||||
max_pending_partials_per_withdrawals_sweep: spec
|
||||
.max_pending_partials_per_withdrawals_sweep,
|
||||
pending_deposits_limit: E::pending_deposits_limit() as u64,
|
||||
pending_partial_withdrawals_limit: E::pending_partial_withdrawals_limit() as u64,
|
||||
pending_consolidations_limit: E::pending_consolidations_limit() as u64,
|
||||
max_consolidation_requests_per_payload: E::max_consolidation_requests_per_payload()
|
||||
as u64,
|
||||
max_deposit_requests_per_payload: E::max_deposit_requests_per_payload() as u64,
|
||||
max_attester_slashings_electra: E::max_attester_slashings_electra() as u64,
|
||||
max_attestations_electra: E::max_attestations_electra() as u64,
|
||||
max_withdrawal_requests_per_payload: E::max_withdrawal_requests_per_payload() as u64,
|
||||
domain_inclusion_list_committee: spec.domain_inclusion_list_committee,
|
||||
inclusion_list_committee_size: spec.inclusion_list_committee_size,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -873,12 +873,12 @@ pub mod ssz_tagged_signed_beacon_block {
|
||||
ForkName::Deneb => Ok(SignedBeaconBlock::Deneb(
|
||||
SignedBeaconBlockDeneb::from_ssz_bytes(body)?,
|
||||
)),
|
||||
ForkName::Eip7805 => Ok(SignedBeaconBlock::Eip7805(
|
||||
SignedBeaconBlockEip7805::from_ssz_bytes(body)?,
|
||||
)),
|
||||
ForkName::Electra => Ok(SignedBeaconBlock::Electra(
|
||||
SignedBeaconBlockElectra::from_ssz_bytes(body)?,
|
||||
)),
|
||||
ForkName::Eip7805 => Ok(SignedBeaconBlock::Eip7805(
|
||||
SignedBeaconBlockEip7805::from_ssz_bytes(body)?,
|
||||
)),
|
||||
ForkName::Fulu => Ok(SignedBeaconBlock::Fulu(
|
||||
SignedBeaconBlockFulu::from_ssz_bytes(body)?,
|
||||
)),
|
||||
|
||||
Reference in New Issue
Block a user