diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 476b3cf1798..75063ee2e0b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -210,9 +210,9 @@ jobs: ## Testing Checklist (DELETE ME) - - [ ] Run on synced Prater Sigma Prime nodes. + - [ ] Run on synced Holesky Sigma Prime nodes. - [ ] Run on synced Canary (mainnet) Sigma Prime nodes. - - [ ] Resync a Prater node. + - [ ] Resync a Holesky node. - [ ] Resync a mainnet node. ## Release Checklist (DELETE ME) diff --git a/Cargo.lock b/Cargo.lock index 3a52b854ced..d2c8756cb89 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -30,10 +30,7 @@ dependencies = [ "filesystem", "safe_arith", "sensitive_url", - "serde", - "serde_json", "slashing_protection", - "slog", "slot_clock", "tempfile", "tokio", @@ -822,19 +819,15 @@ dependencies = [ "dirs", "environment", "eth2_config", - "eth2_network_config", "execution_layer", - "futures", "genesis", "hex", "http_api", "hyper 1.3.1", "lighthouse_network", - "lighthouse_version", "monitoring_api", "node_test_rig", "sensitive_url", - "serde", "serde_json", "slasher", "slog", @@ -849,11 +842,8 @@ dependencies = [ name = "beacon_processor" version = "0.1.0" dependencies = [ - "derivative", - "ethereum_ssz", "fnv", "futures", - "hex", "itertools", "lazy_static", "lighthouse_metrics", @@ -1037,12 +1027,9 @@ dependencies = [ "log", "logging", "serde", - "serde_json", - "serde_yaml", "slog", "slog-async", "slog-scope", - "slog-stdlog", "slog-term", "tokio", "types", @@ -1072,7 +1059,6 @@ dependencies = [ "reqwest", "sensitive_url", "serde", - "serde_json", ] [[package]] @@ -1341,12 +1327,9 @@ dependencies = [ "lazy_static", "lighthouse_metrics", "lighthouse_network", - "logging", "monitoring_api", "network", - "num_cpus", "operation_pool", - "parking_lot 0.12.2", "sensitive_url", "serde", "serde_yaml", @@ -1360,7 +1343,6 @@ dependencies = [ "time", "timer", "tokio", - "tree_hash", "types", ] @@ -1786,12 +1768,9 @@ dependencies = [ "clap_utils", "environment", "hex", - "logging", "slog", - "sloggers", "store", "strum", - "tempfile", "types", ] @@ -2132,13 +2111,11 @@ version = "0.2.0" dependencies = [ "beacon_chain", "bls", - "cached_tree_hash", "compare_fields", "compare_fields_derive", "derivative", "eth2_network_config", "ethereum-types 0.14.1", - "ethereum_serde_utils", "ethereum_ssz", "ethereum_ssz_derive", "execution_layer", @@ -2154,7 +2131,6 @@ dependencies = [ "serde_yaml", "snap", "state_processing", - "store", "swap_or_not_shuffle", "tree_hash", "tree_hash_derive", @@ -2336,15 +2312,12 @@ dependencies = [ "ethereum_ssz_derive", "execution_layer", "futures", - "hex", "lazy_static", "lighthouse_metrics", "merkle_proof", "parking_lot 0.12.2", - "reqwest", "sensitive_url", "serde", - "serde_json", "serde_yaml", "slog", "sloggers", @@ -2386,7 +2359,6 @@ dependencies = [ "libsecp256k1", "lighthouse_network", "mediatype", - "mime", "pretty_reqwest_error", "procfs", "proto_array", @@ -2400,7 +2372,6 @@ dependencies = [ "ssz_types", "store", "tokio", - "tree_hash", "types", ] @@ -2472,7 +2443,6 @@ dependencies = [ "pretty_reqwest_error", "reqwest", "sensitive_url", - "serde_json", "serde_yaml", "sha2 0.9.9", "slog", @@ -2802,7 +2772,6 @@ version = "0.1.0" dependencies = [ "async-channel", "deposit_contract", - "environment", "ethers-core", "ethers-providers", "execution_layer", @@ -2827,7 +2796,6 @@ dependencies = [ "alloy-consensus", "alloy-rlp", "arc-swap", - "async-trait", "builder_client", "bytes", "environment", @@ -2837,7 +2805,6 @@ dependencies = [ "ethereum_ssz", "ethers-core", "fork_choice", - "futures", "hash-db", "hash256-std-hasher", "hex", @@ -3350,7 +3317,6 @@ dependencies = [ "regex", "serde", "sha2 0.10.8", - "smallvec", "tracing", "void", ] @@ -4290,7 +4256,6 @@ dependencies = [ "clap", "clap_utils", "deposit_contract", - "directory", "env_logger 0.9.3", "environment", "eth1_test_rig", @@ -4302,7 +4267,6 @@ dependencies = [ "execution_layer", "genesis", "hex", - "int_to_bytes", "lighthouse_network", "lighthouse_version", "log", @@ -4889,10 +4853,8 @@ dependencies = [ "slasher", "slashing_protection", "slog", - "sloggers", "task_executor", "tempfile", - "tracing-subscriber", "types", "unused_port", "validator_client", @@ -4904,7 +4866,6 @@ dependencies = [ name = "lighthouse_metrics" version = "0.2.0" dependencies = [ - "lazy_static", "prometheus", ] @@ -4913,8 +4874,6 @@ name = "lighthouse_network" version = "0.2.0" dependencies = [ "async-channel", - "base64 0.21.7", - "byteorder", "bytes", "delay_map", "directory", @@ -4926,11 +4885,8 @@ dependencies = [ "ethereum_ssz_derive", "fnv", "futures", - "futures-ticker", - "getrandom", "gossipsub", "hex", - "hex_fmt", "instant", "lazy_static", "libp2p", @@ -4961,9 +4917,6 @@ dependencies = [ "tokio", "tokio-io-timeout", "tokio-util 0.6.10", - "tracing", - "tree_hash", - "tree_hash_derive", "types", "unsigned-varint 0.6.0", "unused_port", @@ -5053,7 +5006,6 @@ dependencies = [ "serde", "serde_json", "slog", - "slog-async", "slog-term", "sloggers", "take_mut", @@ -5487,10 +5439,8 @@ dependencies = [ "beacon_processor", "delay_map", "derivative", - "environment", "error-chain", "eth2", - "ethereum-types 0.14.1", "ethereum_ssz", "execution_layer", "fnv", @@ -5504,10 +5454,8 @@ dependencies = [ "lighthouse_metrics", "lighthouse_network", "logging", - "lru", "lru_cache", "matches", - "num_cpus", "operation_pool", "parking_lot 0.12.2", "rand", @@ -5524,7 +5472,6 @@ dependencies = [ "task_executor", "tokio", "tokio-stream", - "tokio-util 0.6.10", "types", ] @@ -7588,9 +7535,7 @@ version = "0.2.0" dependencies = [ "clap", "env_logger 0.9.3", - "eth1", "eth2_network_config", - "ethereum-types 0.14.1", "execution_layer", "futures", "node_test_rig", @@ -7598,7 +7543,6 @@ dependencies = [ "rayon", "sensitive_url", "serde_json", - "ssz_types", "tokio", "types", ] @@ -7642,7 +7586,6 @@ dependencies = [ "safe_arith", "serde", "slog", - "sloggers", "strum", "tempfile", "tree_hash", @@ -7952,7 +7895,6 @@ name = "store" version = "0.2.0" dependencies = [ "beacon_chain", - "bls", "db-key", "directory", "ethereum_ssz", @@ -7961,14 +7903,11 @@ dependencies = [ "lazy_static", "leveldb", "lighthouse_metrics", - "logging", "lru", "parking_lot 0.12.2", - "safe_arith", "serde", "slog", "sloggers", - "smallvec", "state_processing", "strum", "tempfile", @@ -8138,7 +8077,6 @@ dependencies = [ "lighthouse_network", "parking_lot 0.12.2", "serde", - "serde_json", "sysinfo", "types", ] @@ -8812,7 +8750,6 @@ dependencies = [ "smallvec", "ssz_types", "state_processing", - "strum", "superstruct", "swap_or_not_shuffle", "tempfile", @@ -9068,12 +9005,10 @@ name = "validator_manager" version = "0.1.0" dependencies = [ "account_utils", - "bls", "clap", "clap_utils", "environment", "eth2", - "eth2_keystore", "eth2_network_config", "eth2_wallet", "ethereum_serde_utils", @@ -9309,13 +9244,11 @@ dependencies = [ "beacon_chain", "beacon_node", "bls", - "byteorder", "clap", "diesel", "diesel_migrations", "env_logger 0.9.3", "eth2", - "hex", "http_api", "hyper 1.3.1", "log", diff --git a/account_manager/Cargo.toml b/account_manager/Cargo.toml index 0fab7b31fe3..7f2fa05a888 100644 --- a/account_manager/Cargo.toml +++ b/account_manager/Cargo.toml @@ -27,9 +27,6 @@ safe_arith = { workspace = true } slot_clock = { workspace = true } filesystem = { workspace = true } sensitive_url = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -slog = { workspace = true } [dev-dependencies] tempfile = { workspace = true } diff --git a/beacon_node/Cargo.toml b/beacon_node/Cargo.toml index 7cc6e2b6ae8..e2f6c681c1e 100644 --- a/beacon_node/Cargo.toml +++ b/beacon_node/Cargo.toml @@ -29,18 +29,14 @@ clap = { workspace = true } slog = { workspace = true } dirs = { workspace = true } directory = { workspace = true } -futures = { workspace = true } environment = { workspace = true } task_executor = { workspace = true } genesis = { workspace = true } -eth2_network_config = { workspace = true } execution_layer = { workspace = true } lighthouse_network = { workspace = true } -serde = { workspace = true } serde_json = { workspace = true } clap_utils = { workspace = true } hyper = { workspace = true } -lighthouse_version = { workspace = true } hex = { workspace = true } slasher = { workspace = true } monitoring_api = { workspace = true } diff --git a/beacon_node/beacon_chain/src/beacon_chain.rs b/beacon_node/beacon_chain/src/beacon_chain.rs index 88edf6d2c6b..1ae93e41271 100644 --- a/beacon_node/beacon_chain/src/beacon_chain.rs +++ b/beacon_node/beacon_chain/src/beacon_chain.rs @@ -6434,9 +6434,8 @@ impl BeaconChain { /// account the current slot when accounting for skips. pub fn is_healthy(&self, parent_root: &Hash256) -> Result { let cached_head = self.canonical_head.cached_head(); - // Check if the merge has been finalized. - if let Some(finalized_hash) = cached_head.forkchoice_update_parameters().finalized_hash { - if ExecutionBlockHash::zero() == finalized_hash { + if let Some(head_hash) = cached_head.forkchoice_update_parameters().head_hash { + if ExecutionBlockHash::zero() == head_hash { return Ok(ChainHealth::PreMerge); } } else { diff --git a/beacon_node/beacon_chain/src/data_availability_checker.rs b/beacon_node/beacon_chain/src/data_availability_checker.rs index 8e8f2565c94..e0347d81c39 100644 --- a/beacon_node/beacon_chain/src/data_availability_checker.rs +++ b/beacon_node/beacon_chain/src/data_availability_checker.rs @@ -94,14 +94,6 @@ impl DataAvailabilityChecker { .get_execution_valid_block(block_root) } - /// Return the required blobs `block_root` expects if the block is currenlty in the cache. - pub fn num_expected_blobs(&self, block_root: &Hash256) -> Option { - self.availability_cache - .peek_pending_components(block_root, |components| { - components.and_then(|components| components.num_expected_blobs()) - }) - } - /// Return the set of imported blob indexes for `block_root`. Returns None if there is no block /// component for `block_root`. pub fn imported_blob_indexes(&self, block_root: &Hash256) -> Option> { diff --git a/beacon_node/beacon_processor/Cargo.toml b/beacon_node/beacon_processor/Cargo.toml index 6c49a28ec87..3373dd1c72f 100644 --- a/beacon_node/beacon_processor/Cargo.toml +++ b/beacon_node/beacon_processor/Cargo.toml @@ -15,10 +15,7 @@ strum = { workspace = true } task_executor = { workspace = true } slot_clock = { workspace = true } lighthouse_network = { workspace = true } -hex = { workspace = true } -derivative = { workspace = true } types = { workspace = true } -ethereum_ssz = { workspace = true } lazy_static = { workspace = true } lighthouse_metrics = { workspace = true } parking_lot = { workspace = true } diff --git a/beacon_node/builder_client/Cargo.toml b/beacon_node/builder_client/Cargo.toml index 21b9b841334..c3658f45c73 100644 --- a/beacon_node/builder_client/Cargo.toml +++ b/beacon_node/builder_client/Cargo.toml @@ -9,5 +9,4 @@ reqwest = { workspace = true } sensitive_url = { workspace = true } eth2 = { workspace = true } serde = { workspace = true } -serde_json = { workspace = true } lighthouse_version = { workspace = true } diff --git a/beacon_node/client/Cargo.toml b/beacon_node/client/Cargo.toml index 16c4a947a66..4ac035d17be 100644 --- a/beacon_node/client/Cargo.toml +++ b/beacon_node/client/Cargo.toml @@ -16,8 +16,6 @@ store = { workspace = true } network = { workspace = true } timer = { path = "../timer" } lighthouse_network = { workspace = true } -logging = { workspace = true } -parking_lot = { workspace = true } types = { workspace = true } eth2_config = { workspace = true } slot_clock = { workspace = true } @@ -44,6 +42,4 @@ slasher_service = { path = "../../slasher/service" } monitoring_api = { workspace = true } execution_layer = { workspace = true } beacon_processor = { workspace = true } -num_cpus = { workspace = true } ethereum_ssz = { workspace = true } -tree_hash = { workspace = true } diff --git a/beacon_node/eth1/Cargo.toml b/beacon_node/eth1/Cargo.toml index 2f716cd19bc..2ffca4a5710 100644 --- a/beacon_node/eth1/Cargo.toml +++ b/beacon_node/eth1/Cargo.toml @@ -11,12 +11,9 @@ sloggers = { workspace = true } environment = { workspace = true } [dependencies] -reqwest = { workspace = true } execution_layer = { workspace = true } futures = { workspace = true } -serde_json = { workspace = true } serde = { workspace = true } -hex = { workspace = true } types = { workspace = true } merkle_proof = { workspace = true } ethereum_ssz = { workspace = true } diff --git a/beacon_node/eth1/src/service.rs b/beacon_node/eth1/src/service.rs index 31082394baf..d68a8b6f287 100644 --- a/beacon_node/eth1/src/service.rs +++ b/beacon_node/eth1/src/service.rs @@ -23,7 +23,7 @@ use tokio::time::{interval_at, Duration, Instant}; use types::{ChainSpec, DepositTreeSnapshot, Eth1Data, EthSpec, Unsigned}; /// Indicates the default eth1 chain id we use for the deposit contract. -pub const DEFAULT_CHAIN_ID: Eth1Id = Eth1Id::Goerli; +pub const DEFAULT_CHAIN_ID: Eth1Id = Eth1Id::Mainnet; /// Indicates the default eth1 endpoint. pub const DEFAULT_ETH1_ENDPOINT: &str = "http://localhost:8545"; @@ -266,7 +266,7 @@ pub struct Config { pub endpoint: Eth1Endpoint, /// The address the `BlockCache` and `DepositCache` should assume is the canonical deposit contract. pub deposit_contract_address: String, - /// The eth1 chain id where the deposit contract is deployed (Goerli/Mainnet). + /// The eth1 chain id where the deposit contract is deployed (Holesky/Mainnet). pub chain_id: Eth1Id, /// Defines the first block that the `DepositCache` will start searching for deposit logs. /// @@ -450,11 +450,6 @@ impl Service { /// Returns the follow distance that has been shortened to accommodate for differences in the /// spacing between blocks. - /// - /// ## Notes - /// - /// This is useful since the spec declares `SECONDS_PER_ETH1_BLOCK` to be `14`, whilst it is - /// actually `15` on Goerli. pub fn cache_follow_distance(&self) -> u64 { self.config().cache_follow_distance() } diff --git a/beacon_node/execution_layer/Cargo.toml b/beacon_node/execution_layer/Cargo.toml index 28cd16e4ef9..ff147ad3b4c 100644 --- a/beacon_node/execution_layer/Cargo.toml +++ b/beacon_node/execution_layer/Cargo.toml @@ -8,9 +8,7 @@ edition = { workspace = true } [dependencies] types = { workspace = true } tokio = { workspace = true } -async-trait = "0.1.51" slog = { workspace = true } -futures = { workspace = true } sensitive_url = { workspace = true } reqwest = { workspace = true } ethereum_serde_utils = { workspace = true } diff --git a/beacon_node/execution_layer/src/engine_api/http.rs b/beacon_node/execution_layer/src/engine_api/http.rs index 93705a16925..9c8a91909c6 100644 --- a/beacon_node/execution_layer/src/engine_api/http.rs +++ b/beacon_node/execution_layer/src/engine_api/http.rs @@ -238,7 +238,6 @@ pub mod deposit_methods { /// Represents an eth1 chain/network id. #[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] pub enum Eth1Id { - Goerli, Mainnet, Custom(u64), } @@ -262,7 +261,6 @@ pub mod deposit_methods { fn into(self) -> u64 { match self { Eth1Id::Mainnet => 1, - Eth1Id::Goerli => 5, Eth1Id::Custom(id) => id, } } @@ -273,7 +271,6 @@ pub mod deposit_methods { let into = |x: Eth1Id| -> u64 { x.into() }; match id { id if id == into(Eth1Id::Mainnet) => Eth1Id::Mainnet, - id if id == into(Eth1Id::Goerli) => Eth1Id::Goerli, id => Eth1Id::Custom(id), } } diff --git a/beacon_node/lighthouse_network/Cargo.toml b/beacon_node/lighthouse_network/Cargo.toml index 1617c0bd6c9..13baf2e9ce7 100644 --- a/beacon_node/lighthouse_network/Cargo.toml +++ b/beacon_node/lighthouse_network/Cargo.toml @@ -13,8 +13,6 @@ types = { workspace = true } serde = { workspace = true } ethereum_ssz = { workspace = true } ethereum_ssz_derive = { workspace = true } -tree_hash = { workspace = true } -tree_hash_derive = { workspace = true } slog = { workspace = true } lighthouse_version = { workspace = true } tokio = { workspace = true } @@ -43,18 +41,12 @@ superstruct = { workspace = true } prometheus-client = "0.22.0" unused_port = { workspace = true } delay_map = { workspace = true } -tracing = { workspace = true } -byteorder = { workspace = true } bytes = { workspace = true } either = { workspace = true } # Local dependencies -futures-ticker = "0.0.3" -getrandom = "0.2.11" -hex_fmt = "0.3.0" instant = "0.1.12" void = "1.0.2" -base64 = "0.21.5" libp2p-mplex = "0.41" [dependencies.libp2p] diff --git a/beacon_node/lighthouse_network/gossipsub/Cargo.toml b/beacon_node/lighthouse_network/gossipsub/Cargo.toml index 871955c0591..d484edd81c4 100644 --- a/beacon_node/lighthouse_network/gossipsub/Cargo.toml +++ b/beacon_node/lighthouse_network/gossipsub/Cargo.toml @@ -33,7 +33,6 @@ rand = "0.8" regex = "1.10.3" serde = { version = "1", optional = true, features = ["derive"] } sha2 = "0.10.8" -smallvec = "1.13.1" tracing = "0.1.37" void = "1.0.2" diff --git a/beacon_node/network/Cargo.toml b/beacon_node/network/Cargo.toml index 406015360ef..0ad7f53ee70 100644 --- a/beacon_node/network/Cargo.toml +++ b/beacon_node/network/Cargo.toml @@ -39,19 +39,14 @@ logging = { workspace = true } task_executor = { workspace = true } igd-next = "0.14" itertools = { workspace = true } -num_cpus = { workspace = true } lru_cache = { workspace = true } -lru = { workspace = true } strum = { workspace = true } -tokio-util = { workspace = true } derivative = { workspace = true } delay_map = { workspace = true } -ethereum-types = { workspace = true } operation_pool = { workspace = true } execution_layer = { workspace = true } beacon_processor = { workspace = true } parking_lot = { workspace = true } -environment = { workspace = true } [features] # NOTE: This can be run via cargo build --bin lighthouse --features network/disable-backfill diff --git a/beacon_node/network/src/network_beacon_processor/gossip_methods.rs b/beacon_node/network/src/network_beacon_processor/gossip_methods.rs index ac5d8b1c370..374dca2a5ab 100644 --- a/beacon_node/network/src/network_beacon_processor/gossip_methods.rs +++ b/beacon_node/network/src/network_beacon_processor/gossip_methods.rs @@ -753,7 +753,9 @@ impl NetworkBeaconProcessor { let blob_slot = verified_blob.slot(); let blob_index = verified_blob.id().index; - match self.chain.process_gossip_blob(verified_blob).await { + let result = self.chain.process_gossip_blob(verified_blob).await; + + match &result { Ok(AvailabilityProcessingStatus::Imported(block_root)) => { // Note: Reusing block imported metric here metrics::inc_counter(&metrics::BEACON_PROCESSOR_GOSSIP_BLOCK_IMPORTED_TOTAL); @@ -802,6 +804,16 @@ impl NetworkBeaconProcessor { ); } } + + // If a block is in the da_checker, sync maybe awaiting for an event when block is finally + // imported. A block can become imported both after processing a block or blob. If a + // importing a block results in `Imported`, notify. Do not notify of blob errors. + if matches!(result, Ok(AvailabilityProcessingStatus::Imported(_))) { + self.send_sync_message(SyncMessage::GossipBlockProcessResult { + block_root, + imported: true, + }); + } } /// Process the beacon block received from the gossip network and: diff --git a/beacon_node/network/src/sync/block_lookups/mod.rs b/beacon_node/network/src/sync/block_lookups/mod.rs index 94645197c99..1b3491b9c73 100644 --- a/beacon_node/network/src/sync/block_lookups/mod.rs +++ b/beacon_node/network/src/sync/block_lookups/mod.rs @@ -39,7 +39,11 @@ pub const SINGLE_BLOCK_LOOKUP_MAX_ATTEMPTS: u8 = 4; /// Maximum time we allow a lookup to exist before assuming it is stuck and will never make /// progress. Assume the worse case processing time per block component set * times max depth. /// 15 * 2 * 32 = 16 minutes. -const LOOKUP_MAX_DURATION_SECS: usize = 15 * PARENT_DEPTH_TOLERANCE; +const LOOKUP_MAX_DURATION_STUCK_SECS: u64 = 15 * PARENT_DEPTH_TOLERANCE as u64; +/// The most common case of child-lookup without peers is receiving block components before the +/// attestation deadline when the node is lagging behind. Once peers start attesting for the child +/// lookup at most after 4 seconds, the lookup should gain peers. +const LOOKUP_MAX_DURATION_NO_PEERS_SECS: u64 = 10; pub enum BlockComponent { Block(DownloadResult>>), @@ -625,7 +629,11 @@ impl BlockLookups { /// dropped. pub fn drop_lookup_and_children(&mut self, dropped_id: SingleLookupId) { if let Some(dropped_lookup) = self.single_block_lookups.remove(&dropped_id) { - debug!(self.log, "Dropping child lookup"; "id" => ?dropped_id, "block_root" => ?dropped_lookup.block_root()); + debug!(self.log, "Dropping lookup"; + "id" => ?dropped_id, + "block_root" => ?dropped_lookup.block_root(), + "awaiting_parent" => ?dropped_lookup.awaiting_parent(), + ); let child_lookups = self .single_block_lookups @@ -663,6 +671,9 @@ impl BlockLookups { } false } + // If UnknownLookup do not log the request error. No need to drop child lookups nor + // update metrics because the lookup does not exist. + Err(LookupRequestError::UnknownLookup) => false, Err(error) => { debug!(self.log, "Dropping lookup on request error"; "id" => id, "source" => source, "error" => ?error); metrics::inc_counter_vec(&metrics::SYNC_LOOKUP_DROPPED, &[error.into()]); @@ -689,6 +700,53 @@ impl BlockLookups { ); } + /// Perform some prune operations on lookups on some interval + pub fn prune_lookups(&mut self) { + self.drop_lookups_without_peers(); + self.drop_stuck_lookups(); + } + + /// Lookups without peers are allowed to exist for some time. See this common race condition: + /// + /// 1. Receive unknown block parent event + /// 2. Create child lookup with zero peers + /// 3. Parent is processed, before receiving any attestation for the child block + /// 4. Child lookup is attempted to make progress but has no peers + /// 5. We receive an attestion for child block and add a peer to the child block lookup + /// + /// On step 4 we could drop the lookup because we attempt to issue a request with no peers + /// available. This has two issues: + /// - We may drop the lookup while some other block component is processing, triggering an + /// unknown lookup error. This can potentially cause un-related child lookups to also be + /// dropped when calling `drop_lookup_and_children`. + /// - We lose all progress of the lookup, and have to re-download its components that we may + /// already have there cached. + /// + /// Instead there's no negative for keeping lookups with no peers around for some time. If we + /// regularly prune them, it should not be a memory concern (TODO: maybe yes!). + fn drop_lookups_without_peers(&mut self) { + for (lookup_id, block_root) in self + .single_block_lookups + .values() + .filter(|lookup| { + // Do not drop lookup that are awaiting events to prevent inconsinstencies. If a + // lookup gets stuck, it will be eventually pruned by `drop_stuck_lookups` + lookup.has_no_peers() + && lookup.elapsed_since_created() + > Duration::from_secs(LOOKUP_MAX_DURATION_NO_PEERS_SECS) + && !lookup.is_awaiting_event() + }) + .map(|lookup| (lookup.id, lookup.block_root())) + .collect::>() + { + debug!(self.log, "Dropping lookup with no peers"; + "id" => lookup_id, + "block_root" => ?block_root + ); + self.drop_lookup_and_children(lookup_id); + } + } + /// Safety mechanism to unstuck lookup sync. Lookup sync if purely event driven and depends on /// external components to feed it events to make progress. If there is a bug in network, in /// beacon processor, or here internally: lookups can get stuck forever. A stuck lookup can @@ -702,10 +760,10 @@ impl BlockLookups { /// /// - One single clear warn level log per stuck incident /// - If the original bug is sporadic, it reduces the time a node is stuck from forever to 15 min - pub fn drop_stuck_lookups(&mut self) { + fn drop_stuck_lookups(&mut self) { // While loop to find and drop all disjoint trees of potentially stuck lookups. while let Some(stuck_lookup) = self.single_block_lookups.values().find(|lookup| { - lookup.elapsed_since_created() > Duration::from_secs(LOOKUP_MAX_DURATION_SECS as u64) + lookup.elapsed_since_created() > Duration::from_secs(LOOKUP_MAX_DURATION_STUCK_SECS) }) { let ancestor_stuck_lookup = match self.find_oldest_ancestor_lookup(stuck_lookup) { Ok(lookup) => lookup, diff --git a/beacon_node/network/src/sync/block_lookups/single_block_lookup.rs b/beacon_node/network/src/sync/block_lookups/single_block_lookup.rs index f587a98254d..5bea08e8885 100644 --- a/beacon_node/network/src/sync/block_lookups/single_block_lookup.rs +++ b/beacon_node/network/src/sync/block_lookups/single_block_lookup.rs @@ -137,9 +137,17 @@ impl SingleBlockLookup { self.block_root() == block_root } - /// Get all unique peers that claim to have imported this set of block components - pub fn all_peers(&self) -> impl Iterator + '_ { - self.peers.iter() + /// Returns true if the block has already been downloaded. + pub fn both_components_processed(&self) -> bool { + self.block_request_state.state.is_processed() + && self.blob_request_state.state.is_processed() + } + + /// Returns true if this request is expecting some event to make progress + pub fn is_awaiting_event(&self) -> bool { + self.awaiting_parent.is_some() + || self.block_request_state.state.is_awaiting_event() + || self.blob_request_state.state.is_awaiting_event() } /// Makes progress on all requests of this lookup. Any error is not recoverable and must result @@ -189,13 +197,9 @@ impl SingleBlockLookup { } let Some(peer_id) = self.use_rand_available_peer() else { - if awaiting_parent { - // Allow lookups awaiting for a parent to have zero peers. If when the parent - // resolve they still have zero peers the lookup will fail gracefully. - return Ok(()); - } else { - return Err(LookupRequestError::NoPeers); - } + // Allow lookup to not have any peers. In that case do nothing. If the lookup does + // not have peers for some time, it will be dropped. + return Ok(()); }; let request = R::request_state_mut(self); @@ -226,18 +230,17 @@ impl SingleBlockLookup { Ok(()) } + /// Get all unique peers that claim to have imported this set of block components + pub fn all_peers(&self) -> impl Iterator + '_ { + self.peers.iter() + } + /// Add peer to all request states. The peer must be able to serve this request. /// Returns true if the peer was newly inserted into some request state. pub fn add_peer(&mut self, peer_id: PeerId) -> bool { self.peers.insert(peer_id) } - /// Returns true if the block has already been downloaded. - pub fn both_components_processed(&self) -> bool { - self.block_request_state.state.is_processed() - && self.blob_request_state.state.is_processed() - } - /// Remove peer from available peers. Return true if there are no more available peers and all /// requests are not expecting any future event (AwaitingDownload). pub fn remove_peer(&mut self, peer_id: &PeerId) -> bool { @@ -351,6 +354,24 @@ impl SingleLookupRequestState { } } + /// Returns true if we can expect some future event to progress this block component request + /// specifically. + pub fn is_awaiting_event(&self) -> bool { + match self.state { + // No event will progress this request specifically, but the request may be put on hold + // due to some external event + State::AwaitingDownload { .. } => false, + // Network will emit a download success / error event + State::Downloading { .. } => true, + // Not awaiting any external event + State::AwaitingProcess { .. } => false, + // Beacon processor will emit a processing result event + State::Processing { .. } => true, + // Request complete, no future event left + State::Processed { .. } => false, + } + } + pub fn peek_downloaded_data(&self) -> Option<&T> { match &self.state { State::AwaitingDownload => None, diff --git a/beacon_node/network/src/sync/block_lookups/tests.rs b/beacon_node/network/src/sync/block_lookups/tests.rs index 5a85e57f632..70a8c6174d4 100644 --- a/beacon_node/network/src/sync/block_lookups/tests.rs +++ b/beacon_node/network/src/sync/block_lookups/tests.rs @@ -1452,13 +1452,16 @@ fn block_in_processing_cache_becomes_invalid() { let peer_id = r.new_connected_peer(); r.insert_block_to_processing_cache(block.clone().into()); r.trigger_unknown_block_from_attestation(block_root, peer_id); + // Should trigger blob request + let id = r.expect_blob_lookup_request(block_root); // Should not trigger block request r.expect_empty_network(); // Simulate invalid block, removing it from processing cache r.simulate_block_gossip_processing_becomes_invalid(block_root); // Should download block, then issue blobs request r.complete_lookup_block_download(block); - let id = r.expect_blob_lookup_request(block_root); + // Should not trigger block or blob request + r.expect_empty_network(); r.complete_lookup_block_import_valid(block_root, false); // Resolve blob and expect lookup completed r.complete_single_lookup_blob_lookup_valid(id, peer_id, blobs, true); @@ -1475,11 +1478,14 @@ fn block_in_processing_cache_becomes_valid_imported() { let peer_id = r.new_connected_peer(); r.insert_block_to_processing_cache(block.clone().into()); r.trigger_unknown_block_from_attestation(block_root, peer_id); + // Should trigger blob request + let id = r.expect_blob_lookup_request(block_root); // Should not trigger block request r.expect_empty_network(); // Resolve the block from processing step r.simulate_block_gossip_processing_becomes_valid_missing_components(block.into()); - let id = r.expect_blob_lookup_request(block_root); + // Should not trigger block or blob request + r.expect_empty_network(); // Resolve blob and expect lookup completed r.complete_single_lookup_blob_lookup_valid(id, peer_id, blobs, true); r.expect_no_active_lookups(); diff --git a/beacon_node/network/src/sync/manager.rs b/beacon_node/network/src/sync/manager.rs index 1162f63de0a..8d4e50b4ea2 100644 --- a/beacon_node/network/src/sync/manager.rs +++ b/beacon_node/network/src/sync/manager.rs @@ -56,6 +56,7 @@ use lighthouse_network::rpc::RPCError; use lighthouse_network::types::{NetworkGlobals, SyncState}; use lighthouse_network::SyncInfo; use lighthouse_network::{PeerAction, PeerId}; +use lru_cache::LRUTimeCache; use slog::{crit, debug, error, info, o, trace, warn, Logger}; use std::ops::Sub; use std::sync::Arc; @@ -72,6 +73,11 @@ use types::{BlobSidecar, EthSpec, Hash256, SignedBeaconBlock, Slot}; /// blocks for. pub const SLOT_IMPORT_TOLERANCE: usize = 32; +/// Suppress duplicated `UnknownBlockHashFromAttestation` events for some duration of time. In +/// practice peers are likely to send the same root during a single slot. 30 seconds is a rather +/// arbitrary number that covers a full slot, but allows recovery if sync get stuck for a few slots. +const NOTIFIED_UNKNOWN_ROOT_EXPIRY_SECONDS: u64 = 30; + pub type Id = u32; #[derive(Debug, Hash, PartialEq, Eq, Clone, Copy)] @@ -199,6 +205,10 @@ pub struct SyncManager { backfill_sync: BackFillSync, block_lookups: BlockLookups, + /// debounce duplicated `UnknownBlockHashFromAttestation` for the same root peer tuple. A peer + /// may forward us thousands of a attestations, each one triggering an individual event. Only + /// one event is useful, the rest generating log noise and wasted cycles + notified_unknown_roots: LRUTimeCache<(PeerId, Hash256)>, /// The logger for the import manager. log: Logger, @@ -262,6 +272,9 @@ impl SyncManager { log.new(o!("service" => "backfill_sync")), ), block_lookups: BlockLookups::new(log.new(o!("service"=> "lookup_sync"))), + notified_unknown_roots: LRUTimeCache::new(Duration::from_secs( + NOTIFIED_UNKNOWN_ROOT_EXPIRY_SECONDS, + )), log: log.clone(), } } @@ -547,9 +560,10 @@ impl SyncManager { futures::stream::iter(ee_responsiveness_watch.await).flatten() }; - // LOOKUP_MAX_DURATION_SECS is 60 seconds. Logging every 30 seconds allows enough timely - // visbility while being sparse and not increasing the debug log volume in a noticeable way - let mut interval = tokio::time::interval(Duration::from_secs(30)); + // min(LOOKUP_MAX_DURATION_*) is 15 seconds. The cost of calling prune_lookups more often is + // one iteration over the single lookups HashMap. This map is supposed to be very small < 10 + // unless there is a bug. + let mut prune_lookups_interval = tokio::time::interval(Duration::from_secs(15)); // process any inbound messages loop { @@ -560,8 +574,8 @@ impl SyncManager { Some(engine_state) = check_ee_stream.next(), if check_ee => { self.handle_new_execution_engine_state(engine_state); } - _ = interval.tick() => { - self.block_lookups.drop_stuck_lookups(); + _ = prune_lookups_interval.tick() => { + self.block_lookups.prune_lookups(); } } } @@ -622,7 +636,11 @@ impl SyncManager { ); } SyncMessage::UnknownBlockHashFromAttestation(peer_id, block_root) => { - self.handle_unknown_block_root(peer_id, block_root); + if !self.notified_unknown_roots.contains(&(peer_id, block_root)) { + self.notified_unknown_roots.insert((peer_id, block_root)); + debug!(self.log, "Received unknown block hash message"; "block_root" => ?block_root, "peer" => ?peer_id); + self.handle_unknown_block_root(peer_id, block_root); + } } SyncMessage::Disconnect(peer_id) => { debug!(self.log, "Received disconnected message"; "peer_id" => %peer_id); diff --git a/beacon_node/store/Cargo.toml b/beacon_node/store/Cargo.toml index b7822670078..7bf1ef76bef 100644 --- a/beacon_node/store/Cargo.toml +++ b/beacon_node/store/Cargo.toml @@ -25,7 +25,3 @@ lru = { workspace = true } sloggers = { workspace = true } directory = { workspace = true } strum = { workspace = true } -safe_arith = { workspace = true } -bls = { workspace = true } -smallvec = { workspace = true } -logging = { workspace = true } diff --git a/book/src/api-lighthouse.md b/book/src/api-lighthouse.md index 6ef00578f70..b63505c4901 100644 --- a/book/src/api-lighthouse.md +++ b/book/src/api-lighthouse.md @@ -686,7 +686,7 @@ The first few lines of the response would look like: "slot": "1", "parent_slot": "0", "proposer_index": 93, - "graffiti": "EF #vm-eth2-raw-iron-prater-101" + "graffiti": "EF #vm-eth2-raw-iron-101" }, "attestation_rewards": { "total": 637260, diff --git a/book/src/api-vc-auth-header.md b/book/src/api-vc-auth-header.md index ca0cc098d9c..f2f9caf46b5 100644 --- a/book/src/api-vc-auth-header.md +++ b/book/src/api-vc-auth-header.md @@ -31,7 +31,7 @@ When starting the validator client it will output a log message containing the p to the file containing the api token. ```text -Sep 28 19:17:52.615 INFO HTTP API started api_token_file: "$HOME/prater/validators/api-token.txt", listen_address: 127.0.0.1:5062 +Sep 28 19:17:52.615 INFO HTTP API started api_token_file: "$HOME/holesky/validators/api-token.txt", listen_address: 127.0.0.1:5062 ``` The _path_ to the API token may also be fetched from the HTTP API itself (this endpoint is the only @@ -45,7 +45,7 @@ Response: ```json { - "token_path": "/home/karlm/.lighthouse/prater/validators/api-token.txt" + "token_path": "/home/karlm/.lighthouse/holesky/validators/api-token.txt" } ``` diff --git a/book/src/api-vc-endpoints.md b/book/src/api-vc-endpoints.md index 22f0064745c..a36aa737083 100644 --- a/book/src/api-vc-endpoints.md +++ b/book/src/api-vc-endpoints.md @@ -225,7 +225,7 @@ Example Response Body ```json { "data": { - "CONFIG_NAME": "prater", + "CONFIG_NAME": "holesky", "PRESET_BASE": "mainnet", "TERMINAL_TOTAL_DIFFICULTY": "10790000", "TERMINAL_BLOCK_HASH": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -353,7 +353,7 @@ Example Response Body ```json { - "token_path": "/home/karlm/.lighthouse/prater/validators/api-token.txt" + "token_path": "/home/karlm/.lighthouse/holesky/validators/api-token.txt" } ``` diff --git a/book/src/help_bn.md b/book/src/help_bn.md index e77db3df549..f47360eab0e 100644 --- a/book/src/help_bn.md +++ b/book/src/help_bn.md @@ -345,8 +345,8 @@ OPTIONS: Defines how many seconds to wait between each message sent to the monitoring-endpoint. Default: 60s --network - Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis, - chiado, sepolia, holesky] + Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, gnosis, chiado, sepolia, + holesky] --network-dir Data directory for network keys. Defaults to network/ inside the beacon node dir. diff --git a/book/src/help_general.md b/book/src/help_general.md index e7e323f3300..90d950aa2db 100644 --- a/book/src/help_general.md +++ b/book/src/help_general.md @@ -61,8 +61,8 @@ OPTIONS: The maximum size (in MB) each log file can grow to before rotating. If set to 0, background file logging is disabled. [default: 200] --network - Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis, - chiado, sepolia, holesky] + Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, gnosis, chiado, sepolia, + holesky] --safe-slots-to-import-optimistically Used to coordinate manual overrides of the SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY parameter. This flag should only be used if the user has a clear understanding that the broad Ethereum community has elected to override diff --git a/book/src/help_vc.md b/book/src/help_vc.md index 4fd35b1ea22..f10d837f624 100644 --- a/book/src/help_vc.md +++ b/book/src/help_vc.md @@ -175,8 +175,8 @@ OPTIONS: Defines how many seconds to wait between each message sent to the monitoring-endpoint. Default: 60s --network - Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis, - chiado, sepolia, holesky] + Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, gnosis, chiado, sepolia, + holesky] --proposer-nodes Comma-separated addresses to one or more beacon node HTTP APIs. These specify nodes that are used to send beacon block proposals. A failure will revert back to the standard beacon nodes specified in --beacon-nodes. diff --git a/book/src/help_vm.md b/book/src/help_vm.md index 85dcdd3c0b8..c3d505df40d 100644 --- a/book/src/help_vm.md +++ b/book/src/help_vm.md @@ -57,8 +57,8 @@ OPTIONS: The maximum size (in MB) each log file can grow to before rotating. If set to 0, background file logging is disabled. [default: 200] --network - Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis, - chiado, sepolia, holesky] + Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, gnosis, chiado, sepolia, + holesky] --safe-slots-to-import-optimistically Used to coordinate manual overrides of the SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY parameter. This flag should only be used if the user has a clear understanding that the broad Ethereum community has elected to override diff --git a/book/src/help_vm_create.md b/book/src/help_vm_create.md index 1b43d0f9880..af4a491e764 100644 --- a/book/src/help_vm_create.md +++ b/book/src/help_vm_create.md @@ -100,8 +100,8 @@ OPTIONS: If present, the mnemonic will be read in from this file. --network - Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis, - chiado, sepolia, holesky] + Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, gnosis, chiado, sepolia, + holesky] --output-path The path to a directory where the validator and (optionally) deposits files will be created. The directory will be created if it does not exist. diff --git a/book/src/help_vm_import.md b/book/src/help_vm_import.md index e8eb4946aa0..bee94a0835d 100644 --- a/book/src/help_vm_import.md +++ b/book/src/help_vm_import.md @@ -64,8 +64,8 @@ OPTIONS: The maximum size (in MB) each log file can grow to before rotating. If set to 0, background file logging is disabled. [default: 200] --network - Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis, - chiado, sepolia, holesky] + Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, gnosis, chiado, sepolia, + holesky] --safe-slots-to-import-optimistically Used to coordinate manual overrides of the SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY parameter. This flag should only be used if the user has a clear understanding that the broad Ethereum community has elected to override diff --git a/book/src/help_vm_move.md b/book/src/help_vm_move.md index 95c6c8e00ea..d23f2c2de91 100644 --- a/book/src/help_vm_move.md +++ b/book/src/help_vm_move.md @@ -76,8 +76,8 @@ OPTIONS: The maximum size (in MB) each log file can grow to before rotating. If set to 0, background file logging is disabled. [default: 200] --network - Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis, - chiado, sepolia, holesky] + Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, gnosis, chiado, sepolia, + holesky] --prefer-builder-proposals If this flag is set, Lighthouse will always prefer blocks constructed by builders, regardless of payload value. [possible values: true, false] diff --git a/book/src/key-management.md b/book/src/key-management.md index 007ccf6977b..fa6e99a2aa6 100644 --- a/book/src/key-management.md +++ b/book/src/key-management.md @@ -75,21 +75,21 @@ mnemonic is encrypted with a password. It is the responsibility of the user to define a strong password. The password is only required for interacting with the wallet, it is not required for recovering keys from a mnemonic. -To create a wallet, use the `lighthouse account wallet` command. For example, if we wish to create a new wallet for the Goerli testnet named `wally` and saves it in `~/.lighthouse/goerli/wallets` with a randomly generated password saved +To create a wallet, use the `lighthouse account wallet` command. For example, if we wish to create a new wallet for the Holesky testnet named `wally` and saves it in `~/.lighthouse/holesky/wallets` with a randomly generated password saved to `./wallet.pass`: ```bash -lighthouse --network goerli account wallet create --name wally --password-file wally.pass +lighthouse --network holesky account wallet create --name wally --password-file wally.pass ``` -Using the above command, a wallet will be created in `~/.lighthouse/goerli/wallets` with the name +Using the above command, a wallet will be created in `~/.lighthouse/holesky/wallets` with the name `wally`. It is encrypted using the password defined in the `wally.pass` file. During the wallet creation process, a 24-word mnemonic will be displayed. Record the mnemonic because it allows you to recreate the files in the case of data loss. > Notes: > -> - When navigating to the directory `~/.lighthouse/goerli/wallets`, one will not see the wallet name `wally`, but a hexadecimal folder containing the wallet file. However, when interacting with `lighthouse` in the CLI, the name `wally` will be used. +> - When navigating to the directory `~/.lighthouse/holesky/wallets`, one will not see the wallet name `wally`, but a hexadecimal folder containing the wallet file. However, when interacting with `lighthouse` in the CLI, the name `wally` will be used. > - The password is not `wally.pass`, it is the _content_ of the > `wally.pass` file. > - If `wally.pass` already exists, the wallet password will be set to the content @@ -100,18 +100,18 @@ During the wallet creation process, a 24-word mnemonic will be displayed. Record Validators are fundamentally represented by a BLS keypair. In Lighthouse, we use a wallet to generate these keypairs. Once a wallet exists, the `lighthouse account validator create` command can be used to generate the BLS keypair and all necessary information to submit a validator deposit. With the `wally` wallet created in [Step 1](#step-1-create-a-wallet-and-record-the-mnemonic), we can create a validator with the command: ```bash -lighthouse --network goerli account validator create --wallet-name wally --wallet-password wally.pass --count 1 +lighthouse --network holesky account validator create --wallet-name wally --wallet-password wally.pass --count 1 ``` This command will: -- Derive a single new BLS keypair from wallet `wally` in `~/.lighthouse/goerli/wallets`, updating it so that it generates a new key next time. -- Create a new directory `~/.lighthouse/goerli/validators` containing: +- Derive a single new BLS keypair from wallet `wally` in `~/.lighthouse/holesky/wallets`, updating it so that it generates a new key next time. +- Create a new directory `~/.lighthouse/holesky/validators` containing: - An encrypted keystore file `voting-keystore.json` containing the validator's voting keypair. - An `eth1_deposit_data.rlp` assuming the default deposit amount (`32 ETH`) which can be submitted to the deposit contract for the Goerli testnet. Other networks can be set via the `--network` parameter. -- Create a new directory `~/.lighthouse/goerli/secrets` which stores a password to the validator's voting keypair. +- Create a new directory `~/.lighthouse/holesky/secrets` which stores a password to the validator's voting keypair. If you want to create another validator in the future, repeat [Step 2](#step-2-create-a-validator). The wallet keeps track of how many validators it has generated and ensures that a new validator is generated each time. The important thing is to keep the 24-word mnemonic safe so that it can be used to generate new validator keys if needed. diff --git a/book/src/merge-migration.md b/book/src/merge-migration.md index 8653cc45d90..6de05cff2a4 100644 --- a/book/src/merge-migration.md +++ b/book/src/merge-migration.md @@ -209,4 +209,3 @@ guidance for specific setups. - [Ethereum Staking Launchpad: Merge Readiness](https://launchpad.ethereum.org/en/merge-readiness). - [CoinCashew: Ethereum Merge Upgrade Checklist](https://www.coincashew.com/coins/overview-eth/archived-guides/ethereum-merge-upgrade-checklist-for-home-stakers-and-validators) - [EthDocker: Merge Preparation](https://eth-docker.net/About/MergePrep/) -- [Remy Roy: How to join the Goerli/Prater merge testnet](https://github.com/remyroy/ethstaker/blob/main/merge-goerli-prater.md) diff --git a/book/src/voluntary-exit.md b/book/src/voluntary-exit.md index 33672e54b77..6261f2e2675 100644 --- a/book/src/voluntary-exit.md +++ b/book/src/voluntary-exit.md @@ -32,7 +32,7 @@ Below is an example for initiating a voluntary exit on the Holesky testnet. ``` $ lighthouse --network holesky account validator exit --keystore /path/to/keystore --beacon-node http://localhost:5052 -Running account manager for Prater network +Running account manager for Holesky network validator-dir path: ~/.lighthouse/holesky/validators Enter the keystore password for validator in 0xabcd @@ -82,7 +82,7 @@ There are two types of withdrawal credentials, `0x00` and `0x01`. To check which If your withdrawal credentials is of type `0x01`, it means you have set your withdrawal address previously, and you will not be able to change the withdrawal address. ### 3. When will my BTEC request (update withdrawal credentials to type `0x01`) be processed ? - + Your BTEC request will be included very quickly as soon as a new block is proposed. This should be the case most (if not all) of the time, given that the peak BTEC request time has now past (right after the [Capella](https://ethereum.org/en/history/#capella) upgrade on 12th April 2023 and lasted for ~ 2 days) . ### 4. When will I get my staked fund after voluntary exit if my validator is of type `0x01`? diff --git a/boot_node/Cargo.toml b/boot_node/Cargo.toml index 6cf62e04308..d5c5fe0d646 100644 --- a/boot_node/Cargo.toml +++ b/boot_node/Cargo.toml @@ -18,9 +18,6 @@ slog-term = { workspace = true } logging = { workspace = true } slog-async = { workspace = true } slog-scope = "4.3.0" -slog-stdlog = "4.0.0" hex = { workspace = true } serde = { workspace = true } -serde_json = { workspace = true } -serde_yaml = { workspace = true } eth2_network_config = { workspace = true } diff --git a/common/eth2/Cargo.toml b/common/eth2/Cargo.toml index 0f27bb66721..10b4755ba26 100644 --- a/common/eth2/Cargo.toml +++ b/common/eth2/Cargo.toml @@ -10,7 +10,6 @@ edition = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } ssz_types = { workspace = true } -tree_hash = { workspace = true } types = { workspace = true } reqwest = { workspace = true } lighthouse_network = { workspace = true } @@ -29,7 +28,6 @@ futures = { workspace = true } store = { workspace = true } slashing_protection = { workspace = true } mediatype = "0.19.13" -mime = "0.3.16" pretty_reqwest_error = { workspace = true } [dev-dependencies] diff --git a/common/eth2_config/src/lib.rs b/common/eth2_config/src/lib.rs index bf707c4d17b..cda9d59a503 100644 --- a/common/eth2_config/src/lib.rs +++ b/common/eth2_config/src/lib.rs @@ -284,26 +284,6 @@ define_hardcoded_nets!( // Describes how the genesis state can be obtained. GenesisStateSource::IncludedBytes ), - ( - // Network name (must be unique among all networks). - prater, - // The name of the directory in the `eth2_network_config/built_in_network_configs` - // directory where the configuration files are located for this network. - "prater", - // Describes how the genesis state can be obtained. - GenesisStateSource::IncludedBytes - ), - ( - // Network name (must be unique among all networks). - goerli, - // The name of the directory in the `eth2_network_config/built_in_network_configs` - // directory where the configuration files are located for this network. - // - // The Goerli network is effectively an alias to Prater. - "prater", - // Describes how the genesis state can be obtained. - GenesisStateSource::IncludedBytes - ), ( // Network name (must be unique among all networks). gnosis, diff --git a/common/eth2_network_config/Cargo.toml b/common/eth2_network_config/Cargo.toml index 3807c2e9930..4b34405e5b3 100644 --- a/common/eth2_network_config/Cargo.toml +++ b/common/eth2_network_config/Cargo.toml @@ -13,12 +13,11 @@ eth2_config = { workspace = true } [dev-dependencies] tempfile = { workspace = true } tokio = { workspace = true } +ethereum_ssz = { workspace = true } [dependencies] serde_yaml = { workspace = true } -serde_json = { workspace = true } types = { workspace = true } -ethereum_ssz = { workspace = true } eth2_config = { workspace = true } discv5 = { workspace = true } reqwest = { workspace = true } diff --git a/common/eth2_network_config/built_in_network_configs/chiado/config.yaml b/common/eth2_network_config/built_in_network_configs/chiado/config.yaml index c869d9cfc83..07d100b011c 100644 --- a/common/eth2_network_config/built_in_network_configs/chiado/config.yaml +++ b/common/eth2_network_config/built_in_network_configs/chiado/config.yaml @@ -3,7 +3,7 @@ PRESET_BASE: 'gnosis' # Free-form short name of the network that this configuration applies to - known # canonical network names include: # * 'mainnet' - there can be only one -# * 'prater' - testnet +# * 'holesky' - testnet # Must match the regex: [a-z0-9\-] CONFIG_NAME: 'chiado' diff --git a/common/eth2_network_config/built_in_network_configs/mainnet/config.yaml b/common/eth2_network_config/built_in_network_configs/mainnet/config.yaml index c8695123ab0..fc9c002daba 100644 --- a/common/eth2_network_config/built_in_network_configs/mainnet/config.yaml +++ b/common/eth2_network_config/built_in_network_configs/mainnet/config.yaml @@ -6,7 +6,7 @@ PRESET_BASE: 'mainnet' # Free-form short name of the network that this configuration applies to - known # canonical network names include: # * 'mainnet' - there can be only one -# * 'prater' - testnet +# * 'holesky' - testnet # Must match the regex: [a-z0-9\-] CONFIG_NAME: 'mainnet' diff --git a/common/eth2_network_config/built_in_network_configs/prater/boot_enr.yaml b/common/eth2_network_config/built_in_network_configs/prater/boot_enr.yaml deleted file mode 100644 index 7000ff0bbc4..00000000000 --- a/common/eth2_network_config/built_in_network_configs/prater/boot_enr.yaml +++ /dev/null @@ -1,17 +0,0 @@ -# q9f bootnode errai (lighthouse) -# /ip4/135.181.181.239/tcp/9000/p2p/16Uiu2HAmPitcpwsGZf1vGiu6hdwZHsVLyFzVZeNqaSmUaSyM7Xvj -- enr:-LK4QH1xnjotgXwg25IDPjrqRGFnH1ScgNHA3dv1Z8xHCp4uP3N3Jjl_aYv_WIxQRdwZvSukzbwspXZ7JjpldyeVDzMCh2F0dG5ldHOIAAAAAAAAAACEZXRoMpB53wQoAAAQIP__________gmlkgnY0gmlwhIe1te-Jc2VjcDI1NmsxoQOkcGXqbCJYbcClZ3z5f6NWhX_1YPFRYRRWQpJjwSHpVIN0Y3CCIyiDdWRwgiMo -# q9f bootnode gudja (teku) -# /ip4/135.181.182.51/tcp/9000/p2p/16Uiu2HAmTttt9ZTmCmwmKiV3QR7iTAfnAckwzhswrNmWkthi6meB -- enr:-KG4QCIzJZTY_fs_2vqWEatJL9RrtnPwDCv-jRBuO5FQ2qBrfJubWOWazri6s9HsyZdu-fRUfEzkebhf1nvO42_FVzwDhGV0aDKQed8EKAAAECD__________4JpZIJ2NIJpcISHtbYziXNlY3AyNTZrMaED4m9AqVs6F32rSCGsjtYcsyfQE2K8nDiGmocUY_iq-TSDdGNwgiMog3VkcIIjKA -# Prysm bootnode #1 -- enr:-Ku4QFmUkNp0g9bsLX2PfVeIyT-9WO-PZlrqZBNtEyofOOfLMScDjaTzGxIb1Ns9Wo5Pm_8nlq-SZwcQfTH2cgO-s88Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDkvpOTAAAQIP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQLV_jMOIxKbjHFKgrkFvwDvpexo6Nd58TK5k7ss4Vt0IoN1ZHCCG1g -# Lighthouse bootnode #1 -- enr:-Ly4QFPk-cTMxZ3jWTafiNblEZkQIXGF2aVzCIGW0uHp6KaEAvBMoctE8S7YU0qZtuS7By0AA4YMfKoN9ls_GJRccVpFh2F0dG5ldHOI__________-EZXRoMpCC9KcrAgAQIIS2AQAAAAAAgmlkgnY0gmlwhKh3joWJc2VjcDI1NmsxoQKrxz8M1IHwJqRIpDqdVW_U1PeixMW5SfnBD-8idYIQrIhzeW5jbmV0cw-DdGNwgiMog3VkcIIjKA -# Lighthouse bootnode #2 -- enr:-L64QJmwSDtaHVgGiqIxJWUtxWg6uLCipsms6j-8BdsOJfTWAs7CLF9HJnVqFE728O-JYUDCxzKvRdeMqBSauHVCMdaCAVWHYXR0bmV0c4j__________4RldGgykIL0pysCABAghLYBAAAAAACCaWSCdjSCaXCEQWxOdolzZWNwMjU2azGhA7Qmod9fK86WidPOzLsn5_8QyzL7ZcJ1Reca7RnD54vuiHN5bmNuZXRzD4N0Y3CCIyiDdWRwgiMo -# Nimbus bootstrap nodes -- enr:-LK4QMzPq4Q7w5R-rnGQDcI8BYky6oPVBGQTbS1JJLVtNi_8PzBLV7Bdzsoame9nJK5bcJYpGHn4SkaDN2CM6tR5G_4Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpB53wQoAAAQIP__________gmlkgnY0gmlwhAN4yvyJc2VjcDI1NmsxoQKa8Qnp_P2clLIP6VqLKOp_INvEjLszalEnW0LoBZo4YYN0Y3CCI4yDdWRwgiOM -- enr:-LK4QLM_pPHa78R8xlcU_s40Y3XhFjlb3kPddW9lRlY67N5qeFE2Wo7RgzDgRs2KLCXODnacVHMFw1SfpsW3R474RZEBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpB53wQoAAAQIP__________gmlkgnY0gmlwhANBY-yJc2VjcDI1NmsxoQNsZkFXgKbTzuxF7uwxlGauTGJelE6HD269CcFlZ_R7A4N0Y3CCI4yDdWRwgiOM -# Teku bootnode -- enr:-KK4QH0RsNJmIG0EX9LSnVxMvg-CAOr3ZFF92hunU63uE7wcYBjG1cFbUTvEa5G_4nDJkRhUq9q2ck9xY-VX1RtBsruBtIRldGgykIL0pysBABAg__________-CaWSCdjSCaXCEEnXQ0YlzZWNwMjU2azGhA1grTzOdMgBvjNrk-vqWtTZsYQIi0QawrhoZrsn5Hd56g3RjcIIjKIN1ZHCCIyg diff --git a/common/eth2_network_config/built_in_network_configs/prater/config.yaml b/common/eth2_network_config/built_in_network_configs/prater/config.yaml deleted file mode 100644 index f474b172c51..00000000000 --- a/common/eth2_network_config/built_in_network_configs/prater/config.yaml +++ /dev/null @@ -1,134 +0,0 @@ -# Prater config - -# Extends the mainnet preset -PRESET_BASE: 'mainnet' - -CONFIG_NAME: 'prater' - -# Transition -# --------------------------------------------------------------- -# Expected August 10, 2022 -TERMINAL_TOTAL_DIFFICULTY: 10790000 -# By default, don't use these params -TERMINAL_BLOCK_HASH: 0x0000000000000000000000000000000000000000000000000000000000000000 -TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: 18446744073709551615 - - -# Genesis -# --------------------------------------------------------------- -# `2**14` (= 16,384) -MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 16384 -# Mar-01-2021 08:53:32 AM +UTC -MIN_GENESIS_TIME: 1614588812 -# Prater area code (Vienna) -GENESIS_FORK_VERSION: 0x00001020 -# Customized for Prater: 1919188 seconds (Mar-23-2021 02:00:00 PM +UTC) -GENESIS_DELAY: 1919188 - - -# Forking -# --------------------------------------------------------------- -# Some forks are disabled for now: -# - These may be re-assigned to another fork-version later -# - Temporarily set to max uint64 value: 2**64 - 1 - -# Altair -ALTAIR_FORK_VERSION: 0x01001020 -ALTAIR_FORK_EPOCH: 36660 -# Bellatrix -BELLATRIX_FORK_VERSION: 0x02001020 -BELLATRIX_FORK_EPOCH: 112260 -# Capella -CAPELLA_FORK_VERSION: 0x03001020 -CAPELLA_FORK_EPOCH: 162304 -# DENEB -DENEB_FORK_VERSION: 0x04001020 -DENEB_FORK_EPOCH: 231680 - -# Time parameters -# --------------------------------------------------------------- -# 12 seconds -SECONDS_PER_SLOT: 12 -# 14 (estimate from Eth1 mainnet) -SECONDS_PER_ETH1_BLOCK: 14 -# 2**8 (= 256) epochs ~27 hours -MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256 -# 2**8 (= 256) epochs ~27 hours -SHARD_COMMITTEE_PERIOD: 256 -# 2**11 (= 2,048) Eth1 blocks ~8 hours -ETH1_FOLLOW_DISTANCE: 2048 - - -# Validator cycle -# --------------------------------------------------------------- -# 2**2 (= 4) -INACTIVITY_SCORE_BIAS: 4 -# 2**4 (= 16) -INACTIVITY_SCORE_RECOVERY_RATE: 16 -# 2**4 * 10**9 (= 16,000,000,000) Gwei -EJECTION_BALANCE: 16000000000 -# 2**2 (= 4) -MIN_PER_EPOCH_CHURN_LIMIT: 4 -# 2**16 (= 65,536) -CHURN_LIMIT_QUOTIENT: 65536 -# [New in Deneb:EIP7514] 2**3 (= 8) -MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT: 8 - -# Fork choice -# --------------------------------------------------------------- -# 40% -PROPOSER_SCORE_BOOST: 40 -# 20% -REORG_HEAD_WEIGHT_THRESHOLD: 20 -# 160% -REORG_PARENT_WEIGHT_THRESHOLD: 160 -# `2` epochs -REORG_MAX_EPOCHS_SINCE_FINALIZATION: 2 - -# Deposit contract -# --------------------------------------------------------------- -# Ethereum Goerli testnet -DEPOSIT_CHAIN_ID: 5 -DEPOSIT_NETWORK_ID: 5 -# Prater test deposit contract on Goerli Testnet -DEPOSIT_CONTRACT_ADDRESS: 0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b - -# Networking -# --------------------------------------------------------------- -# `10 * 2**20` (= 10485760, 10 MiB) -GOSSIP_MAX_SIZE: 10485760 -# `2**10` (= 1024) -MAX_REQUEST_BLOCKS: 1024 -# `2**8` (= 256) -EPOCHS_PER_SUBNET_SUBSCRIPTION: 256 -# `MIN_VALIDATOR_WITHDRAWABILITY_DELAY + CHURN_LIMIT_QUOTIENT // 2` (= 33024, ~5 months) -MIN_EPOCHS_FOR_BLOCK_REQUESTS: 33024 -# `10 * 2**20` (=10485760, 10 MiB) -MAX_CHUNK_SIZE: 10485760 -# 5s -TTFB_TIMEOUT: 5 -# 10s -RESP_TIMEOUT: 10 -ATTESTATION_PROPAGATION_SLOT_RANGE: 32 -# 500ms -MAXIMUM_GOSSIP_CLOCK_DISPARITY: 500 -MESSAGE_DOMAIN_INVALID_SNAPPY: 0x00000000 -MESSAGE_DOMAIN_VALID_SNAPPY: 0x01000000 -# 2 subnets per node -SUBNETS_PER_NODE: 2 -# 2**8 (= 64) -ATTESTATION_SUBNET_COUNT: 64 -ATTESTATION_SUBNET_EXTRA_BITS: 0 -# ceillog2(ATTESTATION_SUBNET_COUNT) + ATTESTATION_SUBNET_EXTRA_BITS -ATTESTATION_SUBNET_PREFIX_BITS: 6 -ATTESTATION_SUBNET_SHUFFLING_PREFIX_BITS: 3 - -# Deneb -# `2**7` (=128) -MAX_REQUEST_BLOCKS_DENEB: 128 -# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK -MAX_REQUEST_BLOB_SIDECARS: 768 -# `2**12` (= 4096 epochs, ~18 days) -MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096 -# `6` -BLOB_SIDECAR_SUBNET_COUNT: 6 diff --git a/common/eth2_network_config/built_in_network_configs/prater/deploy_block.txt b/common/eth2_network_config/built_in_network_configs/prater/deploy_block.txt deleted file mode 100644 index e8c50058b69..00000000000 --- a/common/eth2_network_config/built_in_network_configs/prater/deploy_block.txt +++ /dev/null @@ -1 +0,0 @@ -4367322 \ No newline at end of file diff --git a/common/eth2_network_config/built_in_network_configs/prater/genesis.ssz.zip b/common/eth2_network_config/built_in_network_configs/prater/genesis.ssz.zip deleted file mode 100644 index 36bad7fae67..00000000000 Binary files a/common/eth2_network_config/built_in_network_configs/prater/genesis.ssz.zip and /dev/null differ diff --git a/common/eth2_network_config/src/lib.rs b/common/eth2_network_config/src/lib.rs index 1ead9a6bde8..9fd0682f54b 100644 --- a/common/eth2_network_config/src/lib.rs +++ b/common/eth2_network_config/src/lib.rs @@ -36,7 +36,7 @@ pub const BASE_CONFIG_FILE: &str = "config.yaml"; // Creates definitions for: // -// - Each of the `HardcodedNet` values (e.g., `MAINNET`, `PRATER`, etc). +// - Each of the `HardcodedNet` values (e.g., `MAINNET`, `HOLESKY`, etc). // - `HARDCODED_NETS: &[HardcodedNet]` // - `HARDCODED_NET_NAMES: &[&'static str]` instantiate_hardcoded_nets!(eth2_config); @@ -502,13 +502,6 @@ mod tests { .expect("beacon state can decode"); } - #[test] - fn prater_and_goerli_are_equal() { - let goerli = Eth2NetworkConfig::from_hardcoded_net(&GOERLI).unwrap(); - let prater = Eth2NetworkConfig::from_hardcoded_net(&PRATER).unwrap(); - assert_eq!(goerli, prater); - } - #[test] fn hard_coded_nets_work() { for net in HARDCODED_NETS { diff --git a/common/lighthouse_metrics/Cargo.toml b/common/lighthouse_metrics/Cargo.toml index 6d905344011..fe966f4a9c6 100644 --- a/common/lighthouse_metrics/Cargo.toml +++ b/common/lighthouse_metrics/Cargo.toml @@ -7,5 +7,4 @@ edition = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -lazy_static = { workspace = true } prometheus = "0.13.0" diff --git a/common/logging/Cargo.toml b/common/logging/Cargo.toml index 1fad56d475c..3a03d22f3cb 100644 --- a/common/logging/Cargo.toml +++ b/common/logging/Cargo.toml @@ -15,7 +15,6 @@ parking_lot = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } slog = { workspace = true } -slog-async = { workspace = true } slog-term = { workspace = true } sloggers = { workspace = true } take_mut = "0.2.2" diff --git a/common/system_health/Cargo.toml b/common/system_health/Cargo.toml index 5f0de80d90e..be339f27792 100644 --- a/common/system_health/Cargo.toml +++ b/common/system_health/Cargo.toml @@ -8,5 +8,4 @@ lighthouse_network = { workspace = true } types = { workspace = true } sysinfo = { workspace = true } serde = { workspace = true } -serde_json = { workspace = true } parking_lot = { workspace = true } diff --git a/consensus/types/Cargo.toml b/consensus/types/Cargo.toml index 4b7d9f2b98d..fd1f862a922 100644 --- a/consensus/types/Cargo.toml +++ b/consensus/types/Cargo.toml @@ -51,7 +51,6 @@ metastruct = "0.1.0" serde_json = { workspace = true } smallvec = { workspace = true } maplit = { workspace = true } -strum = { workspace = true } milhouse = { workspace = true } rpds = { workspace = true } diff --git a/database_manager/Cargo.toml b/database_manager/Cargo.toml index 07045dd95c2..250188e2db8 100644 --- a/database_manager/Cargo.toml +++ b/database_manager/Cargo.toml @@ -10,10 +10,7 @@ clap = { workspace = true } clap_utils = { workspace = true } environment = { workspace = true } hex = { workspace = true } -logging = { workspace = true } -sloggers = { workspace = true } store = { workspace = true } -tempfile = { workspace = true } types = { workspace = true } slog = { workspace = true } strum = { workspace = true } diff --git a/lcli/Cargo.toml b/lcli/Cargo.toml index 2aba106e506..5d948a25c36 100644 --- a/lcli/Cargo.toml +++ b/lcli/Cargo.toml @@ -20,7 +20,6 @@ serde_json = { workspace = true } env_logger = { workspace = true } types = { workspace = true } state_processing = { workspace = true } -int_to_bytes = { workspace = true } ethereum_hashing = { workspace = true } ethereum_ssz = { workspace = true } environment = { workspace = true } @@ -32,7 +31,6 @@ clap_utils = { workspace = true } lighthouse_network = { workspace = true } validator_dir = { workspace = true, features = ["insecure_keys"] } lighthouse_version = { workspace = true } -directory = { workspace = true } account_utils = { workspace = true } eth2_wallet = { workspace = true } eth1_test_rig = { workspace = true } diff --git a/lighthouse/Cargo.toml b/lighthouse/Cargo.toml index 54faa03a31f..b6d4166b6a2 100644 --- a/lighthouse/Cargo.toml +++ b/lighthouse/Cargo.toml @@ -28,7 +28,6 @@ jemalloc = ["malloc_utils/jemalloc"] [dependencies] beacon_node = { workspace = true } slog = { workspace = true } -sloggers = { workspace = true } types = { workspace = true } bls = { workspace = true } ethereum_hashing = { workspace = true } @@ -54,7 +53,6 @@ unused_port = { workspace = true } database_manager = { path = "../database_manager" } slasher = { workspace = true } validator_manager = { path = "../validator_manager" } -tracing-subscriber = { workspace = true } logging = { workspace = true } [dev-dependencies] diff --git a/slasher/Cargo.toml b/slasher/Cargo.toml index 90fb54cd1ab..ef5cb8249ec 100644 --- a/slasher/Cargo.toml +++ b/slasher/Cargo.toml @@ -25,7 +25,6 @@ rand = { workspace = true } safe_arith = { workspace = true } serde = { workspace = true } slog = { workspace = true } -sloggers = { workspace = true } tree_hash = { workspace = true } tree_hash_derive = { workspace = true } types = { workspace = true } diff --git a/testing/ef_tests/Cargo.toml b/testing/ef_tests/Cargo.toml index f3d00fa035c..fc4614f5d45 100644 --- a/testing/ef_tests/Cargo.toml +++ b/testing/ef_tests/Cargo.toml @@ -24,19 +24,16 @@ serde_json = { workspace = true } serde_repr = { workspace = true } serde_yaml = { workspace = true } eth2_network_config = { workspace = true } -ethereum_serde_utils = { workspace = true } ethereum_ssz = { workspace = true } ethereum_ssz_derive = { workspace = true } tree_hash = { workspace = true } tree_hash_derive = { workspace = true } -cached_tree_hash = { workspace = true } state_processing = { workspace = true } swap_or_not_shuffle = { workspace = true } types = { workspace = true } snap = { workspace = true } fs2 = { workspace = true } beacon_chain = { workspace = true } -store = { workspace = true } fork_choice = { workspace = true } execution_layer = { workspace = true } logging = { workspace = true } diff --git a/testing/execution_engine_integration/Cargo.toml b/testing/execution_engine_integration/Cargo.toml index 7f66658f0fa..43d24cd1237 100644 --- a/testing/execution_engine_integration/Cargo.toml +++ b/testing/execution_engine_integration/Cargo.toml @@ -10,7 +10,6 @@ serde_json = { workspace = true } task_executor = { workspace = true } tokio = { workspace = true } futures = { workspace = true } -environment = { workspace = true } execution_layer = { workspace = true } sensitive_url = { workspace = true } types = { workspace = true } diff --git a/testing/network_testing/README.md b/testing/network_testing/README.md index f97c3cff289..1dcf372dbdc 100644 --- a/testing/network_testing/README.md +++ b/testing/network_testing/README.md @@ -50,11 +50,11 @@ $ cargo build --release --bin lighthouse --features network/disable-backfill Once built, it can run via checkpoint sync on any network, making sure we point to our mock-el -Prater testnet: +Holesky testnet: ``` -$ lighthouse --network prater bn --execution-jwt /tmp/mockel.jwt --checkpoint-sync-url -https://prater.checkpoint.sigp.io --execution-endpoint http://localhost:8551 +$ lighthouse --network holesky bn --execution-jwt /tmp/mockel.jwt --checkpoint-sync-url +https://holesky.checkpoint.sigp.io --execution-endpoint http://localhost:8551 ``` Mainnet: diff --git a/testing/simulator/Cargo.toml b/testing/simulator/Cargo.toml index d7ff7b3dd85..f8769b10e21 100644 --- a/testing/simulator/Cargo.toml +++ b/testing/simulator/Cargo.toml @@ -8,7 +8,6 @@ edition = { workspace = true } [dependencies] node_test_rig = { path = "../node_test_rig" } -eth1 = { workspace = true } execution_layer = { workspace = true } types = { workspace = true } parking_lot = { workspace = true } @@ -18,7 +17,5 @@ env_logger = { workspace = true } clap = { workspace = true } rayon = { workspace = true } sensitive_url = { path = "../../common/sensitive_url" } -ssz_types = { workspace = true } -ethereum-types = { workspace = true } eth2_network_config = { workspace = true } serde_json = { workspace = true } diff --git a/testing/web3signer_tests/src/lib.rs b/testing/web3signer_tests/src/lib.rs index 292e10d0542..911704e7518 100644 --- a/testing/web3signer_tests/src/lib.rs +++ b/testing/web3signer_tests/src/lib.rs @@ -901,13 +901,14 @@ mod tests { } #[tokio::test] - async fn prater_base_types() { - test_base_types("prater", 4246).await + async fn mainnet_bellatrix_types() { + test_bellatrix_types("mainnet", 4244).await } #[tokio::test] - async fn prater_altair_types() { - test_altair_types("prater", 4247).await + async fn holesky_bellatrix_types() { + // web3signer does not support forks prior to Bellatrix on Holesky + test_bellatrix_types("holesky", 4247).await } #[tokio::test] diff --git a/validator_manager/Cargo.toml b/validator_manager/Cargo.toml index 35af2b1ce73..ebcde6a8288 100644 --- a/validator_manager/Cargo.toml +++ b/validator_manager/Cargo.toml @@ -6,14 +6,12 @@ edition = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bls = { workspace = true } clap = { workspace = true } types = { workspace = true } environment = { workspace = true } eth2_network_config = { workspace = true } clap_utils = { workspace = true } eth2_wallet = { workspace = true } -eth2_keystore = { workspace = true } account_utils = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } diff --git a/validator_manager/src/create_validators.rs b/validator_manager/src/create_validators.rs index cd19bd0ae3b..00adb906365 100644 --- a/validator_manager/src/create_validators.rs +++ b/validator_manager/src/create_validators.rs @@ -581,7 +581,7 @@ pub mod tests { type E = MainnetEthSpec; - const TEST_VECTOR_DEPOSIT_CLI_VERSION: &str = "2.3.0"; + const TEST_VECTOR_DEPOSIT_CLI_VERSION: &str = "2.7.0"; fn junk_execution_address() -> Option
{ Some(Address::from_str("0x0f51bb10119727a7e5ea3538074fb341f56b09ad").unwrap()) @@ -933,12 +933,6 @@ pub mod tests { for deposit in &mut deposits { // Ensures we can match test vectors. deposit.deposit_cli_version = TEST_VECTOR_DEPOSIT_CLI_VERSION.to_string(); - - // We use "prater" and the vectors use "goerli" now. The two names refer to the same - // network so there should be no issue here. - if deposit.network_name == "prater" { - deposit.network_name = "goerli".to_string(); - } } deposits }; diff --git a/validator_manager/test_vectors/generate.py b/validator_manager/test_vectors/generate.py index 722414de733..8bf7f5f52d3 100644 --- a/validator_manager/test_vectors/generate.py +++ b/validator_manager/test_vectors/generate.py @@ -1,10 +1,13 @@ # This script uses the `ethereum/staking-deposit-cli` tool to generate # deposit data files which are then used for testing by Lighthouse. # -# To generate vectors, simply run this Python script: +# To generate vectors, run this Python script: # # `python generate.py` # +# This script was last run on Linux using Python v3.10.4. Python v3.11.0 was not working at time +# of writing due to dependency issues in `staking-deposit-cli`. You should probably use `pyenv` and +# `virtualenv`. import os import sys import shutil @@ -89,8 +92,7 @@ def sdc_generate(network, first_index, count, eth1_withdrawal_address=None): os.mkdir(output_dir) command = [ - '/bin/sh', - 'deposit.sh', + './deposit.sh', '--language', 'english', '--non_interactive', 'existing-mnemonic', @@ -114,10 +116,10 @@ def test_network(network): sdc_generate(network, first_index=99, count=2) sdc_generate(network, first_index=1024, count=3) sdc_generate(network, first_index=0, count=2, - eth1_withdrawal_address="0x0f51bb10119727a7e5ea3538074fb341f56b09ad") + eth1_withdrawal_address="0x0f51bb10119727a7e5eA3538074fb341F56B09Ad") setup() test_network("mainnet") -test_network("prater") +test_network("holesky") cleanup() diff --git a/validator_manager/test_vectors/vectors/holesky_first_0_count_1_eth1_false/validator_keys/deposit_data-1715584111.json b/validator_manager/test_vectors/vectors/holesky_first_0_count_1_eth1_false/validator_keys/deposit_data-1715584111.json new file mode 100644 index 00000000000..6b343d087a3 --- /dev/null +++ b/validator_manager/test_vectors/vectors/holesky_first_0_count_1_eth1_false/validator_keys/deposit_data-1715584111.json @@ -0,0 +1 @@ +[{"pubkey": "88b6b3a9b391fa5593e8bce8d06102df1a56248368086929709fbb4a8570dc6a560febeef8159b19789e9c1fd13572f0", "withdrawal_credentials": "0049b6188ed20314309f617dd4030b8ddfac3c6e65759a03c226a13b2fe4cc72", "amount": 32000000000, "signature": "846c83b1ec80038974ded0ef5b89d86c862a7bd4559c10528cd4bb6a48e71987f17a963bc6165a6f51c8b87474e64b450b549ce2d14a25bea3c86c241f3740f3d3edc3dc36fddbeadb1ec8969d7193da602270fea8dd31d3e64674aa2090b73d", "deposit_message_root": "a9bc1d21cc009d9b10782a07213e37592c0d235463ed0117dec755758da90d51", "deposit_data_root": "cdfe14518026e99b9dfa8a029054349e37d4632ee2bbed7c2f5af19a01912368", "fork_version": "01017000", "network_name": "holesky", "deposit_cli_version": "2.7.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/holesky_first_0_count_2_eth1_false/validator_keys/deposit_data-1715584114.json b/validator_manager/test_vectors/vectors/holesky_first_0_count_2_eth1_false/validator_keys/deposit_data-1715584114.json new file mode 100644 index 00000000000..f70410746bd --- /dev/null +++ b/validator_manager/test_vectors/vectors/holesky_first_0_count_2_eth1_false/validator_keys/deposit_data-1715584114.json @@ -0,0 +1 @@ +[{"pubkey": "88b6b3a9b391fa5593e8bce8d06102df1a56248368086929709fbb4a8570dc6a560febeef8159b19789e9c1fd13572f0", "withdrawal_credentials": "0049b6188ed20314309f617dd4030b8ddfac3c6e65759a03c226a13b2fe4cc72", "amount": 32000000000, "signature": "846c83b1ec80038974ded0ef5b89d86c862a7bd4559c10528cd4bb6a48e71987f17a963bc6165a6f51c8b87474e64b450b549ce2d14a25bea3c86c241f3740f3d3edc3dc36fddbeadb1ec8969d7193da602270fea8dd31d3e64674aa2090b73d", "deposit_message_root": "a9bc1d21cc009d9b10782a07213e37592c0d235463ed0117dec755758da90d51", "deposit_data_root": "cdfe14518026e99b9dfa8a029054349e37d4632ee2bbed7c2f5af19a01912368", "fork_version": "01017000", "network_name": "holesky", "deposit_cli_version": "2.7.0"}, {"pubkey": "a33ab9d93fb53c4f027944aaa11a13be0c150b7cc2e379d85d1ed4db38d178b4e4ebeae05832158b8c746c1961da00ce", "withdrawal_credentials": "00ad3748cbd1adc855c2bdab431f7e755a21663f4f6447ac888e5855c588af5a", "amount": 32000000000, "signature": "997cff67c1675ecd2467ac050850ddec8b0488995abf363cee40cbe1461043acf4e68422e9731340437d566542e010cd186031dc0de30b2f56d19f3bb866e0fa9be31dd49ea27777f25ad786cc8587fb745598e5870647b6deeaab77fba4a9e4", "deposit_message_root": "c5271aba974c802ff5b02b11fa33b545d7f430ff3b85c0f9eeef4cd59d83abf3", "deposit_data_root": "8787f86d699426783983d03945a8ebe45b349118d28e8af528b9695887f98fac", "fork_version": "01017000", "network_name": "holesky", "deposit_cli_version": "2.7.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/holesky_first_0_count_2_eth1_true/validator_keys/deposit_data-1715584129.json b/validator_manager/test_vectors/vectors/holesky_first_0_count_2_eth1_true/validator_keys/deposit_data-1715584129.json new file mode 100644 index 00000000000..9b2678651f7 --- /dev/null +++ b/validator_manager/test_vectors/vectors/holesky_first_0_count_2_eth1_true/validator_keys/deposit_data-1715584129.json @@ -0,0 +1 @@ +[{"pubkey": "88b6b3a9b391fa5593e8bce8d06102df1a56248368086929709fbb4a8570dc6a560febeef8159b19789e9c1fd13572f0", "withdrawal_credentials": "0100000000000000000000000f51bb10119727a7e5ea3538074fb341f56b09ad", "amount": 32000000000, "signature": "a8eed5bb34dec5fdee4a3e68a774143072af0ebdae26a9b24ea0601d516a5eeb18aa2ec804be3f05f8475f2e472ce91809d93b7586c3a90fc8a7bbb63ad1f762eee3df0dc0ea3d33dd8ba782e48de495b3bc76e280658c1406e11d07db659e69", "deposit_message_root": "62967565d11471da4af7769911926cd1826124048036b25616216f99bc320f13", "deposit_data_root": "74ead0279baa86ed7106268e4806484eaae26a8f1c42f693e4b3cb626c724b63", "fork_version": "01017000", "network_name": "holesky", "deposit_cli_version": "2.7.0"}, {"pubkey": "a33ab9d93fb53c4f027944aaa11a13be0c150b7cc2e379d85d1ed4db38d178b4e4ebeae05832158b8c746c1961da00ce", "withdrawal_credentials": "0100000000000000000000000f51bb10119727a7e5ea3538074fb341f56b09ad", "amount": 32000000000, "signature": "8d87cdd627ed169114c00653fd3167e2afc917010071bbbbddd60e331ed0d0d7273cb4a887efe63e7b840bac713420d907e9dac20df56e50e7346b59e3acfe56753234a34c7ab3d8c40ea00b447db005b4b780701a0a2416c4fdadbdb18bf174", "deposit_message_root": "ce110433298ffb78d827d67dcc13655344a139cb7e3ce10b341937c0a76b25b7", "deposit_data_root": "978b04b76d0a56ff28beb8eb1859792e0967d0b51e4a31485d2078b8390954d2", "fork_version": "01017000", "network_name": "holesky", "deposit_cli_version": "2.7.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/holesky_first_1024_count_3_eth1_false/validator_keys/deposit_data-1715584124.json b/validator_manager/test_vectors/vectors/holesky_first_1024_count_3_eth1_false/validator_keys/deposit_data-1715584124.json new file mode 100644 index 00000000000..997260bb872 --- /dev/null +++ b/validator_manager/test_vectors/vectors/holesky_first_1024_count_3_eth1_false/validator_keys/deposit_data-1715584124.json @@ -0,0 +1 @@ +[{"pubkey": "92ca8dddba4ae7ada6584c377fc53fb978ad9d5ee8db585b18e226c27682b326b3c68e10f5d99a453e233268c144e0ef", "withdrawal_credentials": "00dd4f8bfd1a48be288c2af8bb7315f6198900b5b3f56df010420d5328e682cb", "amount": 32000000000, "signature": "818141f1f2fdba651f6a3de4ed43c774974b6cec82b3e6c3fa00569b6b67a88c37742d0033275dc98b4bbaac875e48b416b89cebfd1fe9996e2a29c0a2c512d1cedff558420a1a2b50cf5c743a622d85d941b896b00520b3e9a3eaf1f5eff12c", "deposit_message_root": "5421d9177b4d035e6525506509ab702c5f458c53458dad437097b37cb8209b43", "deposit_data_root": "9c9f6ed171b93a08f4e1bc46c0a7feace6466e3e213c6c2d567428c73e22e242", "fork_version": "01017000", "network_name": "holesky", "deposit_cli_version": "2.7.0"}, {"pubkey": "86474cd2874663445ef0ee02aca81b2b942a383fd4c7085fa675388e26c67afc0fef44a8666d46f571723e349ae4a0cb", "withdrawal_credentials": "001c31aa161ed1d3c481c1ee8f3ad1853217296a15877917fe3c2f680580ac01", "amount": 32000000000, "signature": "b62103a32290ec8c710d48f3147895a2dddb25231c9ae38b8ca12bcaf30770a9fc632f4da6b3c5b7a43cfa6a9f096f5e13d26b2c68a42c1c86385aea268dcd2ad3cf766b3f01ee2ba19379ddae9c15830aac8acbef20accc82c734f4c40e5ffd", "deposit_message_root": "279271f7065c83868c37021c32c014516b21e6188fb2cee4e8543c5d38427698", "deposit_data_root": "37b75d75086f4b980c85c021ca22343008d445061714cff41d63aea4dca49a5f", "fork_version": "01017000", "network_name": "holesky", "deposit_cli_version": "2.7.0"}, {"pubkey": "997e27aa262238beb01464434694a466321b5270297bdfdb944b65a3b6617b6ce2613628ac35a8f4cf2e9b4b55c46ef8", "withdrawal_credentials": "0097fffee9cf9fd91a6fa89af90e73f1cb8b8a043e742afaeb2e57b83b0845fe", "amount": 32000000000, "signature": "af2dc295084b4a3eff01a52fe5d42aa931509c24328d5304e59026d0957b55bc35e64802a8d64fdb4a9700bf12e1d6bb184eba01682d8413d86b737e63d3d79a16243d9c8e00115a202efc889ef7129861d8aa32bf8ec9ef5305eecce87b2eda", "deposit_message_root": "187e177721bfdd8ea13cb52c8de2dead29164a0e093efb640457a0e6ac918191", "deposit_data_root": "fd0c081818d2ce1bc54b7979e9b348bbbdb8fe5904694143bf4b355dcbbde692", "fork_version": "01017000", "network_name": "holesky", "deposit_cli_version": "2.7.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/holesky_first_12_count_1_eth1_false/validator_keys/deposit_data-1715584117.json b/validator_manager/test_vectors/vectors/holesky_first_12_count_1_eth1_false/validator_keys/deposit_data-1715584117.json new file mode 100644 index 00000000000..4fa3724c597 --- /dev/null +++ b/validator_manager/test_vectors/vectors/holesky_first_12_count_1_eth1_false/validator_keys/deposit_data-1715584117.json @@ -0,0 +1 @@ +[{"pubkey": "8b181759a027c09a409ef24f6b35db213982c2474e2017f3851d76b1c4e560a4238072f67a0c22cb667f940da4ea9ec9", "withdrawal_credentials": "00cbec90e8570679f565bd4645f73a078981067a705564283e61c93c81707842", "amount": 32000000000, "signature": "b687aa7d55752f00a060c21fa9287485bab94c841d96b3516263fb384a812c92e60ef9fa2e09add9f55db71961fc051e0bb83d214b6f31d04ee59eaba3b43e27eadd2a64884c5d4125a1f5bd6e1d930e5a1e420c278c697d4af6ed3fcdac16cf", "deposit_message_root": "fcdf3d94740766299a95b3e477e64abadff6ab8978400578f241c93eb367b938", "deposit_data_root": "54dc56d2838ca70bac89ca92ae1f8d04945d3305ce8507b390756b646163387a", "fork_version": "01017000", "network_name": "holesky", "deposit_cli_version": "2.7.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/holesky_first_99_count_2_eth1_false/validator_keys/deposit_data-1715584120.json b/validator_manager/test_vectors/vectors/holesky_first_99_count_2_eth1_false/validator_keys/deposit_data-1715584120.json new file mode 100644 index 00000000000..7436b53f24b --- /dev/null +++ b/validator_manager/test_vectors/vectors/holesky_first_99_count_2_eth1_false/validator_keys/deposit_data-1715584120.json @@ -0,0 +1 @@ +[{"pubkey": "a57a4ed429e415b862cc758e75c93936e3f6339640d0763b969ba133a82c03717827fbdd8ec42fc862ed50e3b5b528dc", "withdrawal_credentials": "00864081ef2f5aec1aa667872615e25027f1fdc256a4948b6318cf75a8d635a3", "amount": 32000000000, "signature": "a59a2c510c5ce378b514f62550a7115cd6cfebaf73a5ba20c2cf21456a2d2c11d6e117b91d23743fc0361794cf7e5405030eb296926b526e8a2d68aa87569358e69d3884563a23770714730b6fab6ba639977d725a5ed4f29abe3ccc34575610", "deposit_message_root": "c08d0ecd085bc0f50c35f1b34d8b8937b2b9c8a172a9808de70f8d448c526f07", "deposit_data_root": "149a5dfbba87109dac65142cc067aed97c9579730488cfe16625be3ce4f753a6", "fork_version": "01017000", "network_name": "holesky", "deposit_cli_version": "2.7.0"}, {"pubkey": "a2801622bc391724989004b5de78cb85746f85a303572691ecc945d9f5c61ec512127e58482e0dfcb4de77be3294ab01", "withdrawal_credentials": "00edff674c66a7f58285554e700183aeee5e740691de8087f7ce4d81f3597108", "amount": 32000000000, "signature": "966ae45b81402f1155ff313e48ca3a5346264dcc4bc9ee9e69994ee74368852d9d27c1684752735feba6c21042ad366b13f12c6e772c453518900435d87e2d743e1818e7471cf3574598e3b085c4527f643efe679841ddf8a480cac12b2c6e08", "deposit_message_root": "f5a530bee9698c2447961ecd210184fbb130bbb8e8916988d802d47e3b147842", "deposit_data_root": "f44dac412ae36929a84f64d5f7f91cada908a8f9e837fc70628f58804591798d", "fork_version": "01017000", "network_name": "holesky", "deposit_cli_version": "2.7.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/mainnet_first_0_count_1_eth1_false/validator_keys/deposit_data-1660803666.json b/validator_manager/test_vectors/vectors/mainnet_first_0_count_1_eth1_false/validator_keys/deposit_data-1715584089.json similarity index 90% rename from validator_manager/test_vectors/vectors/mainnet_first_0_count_1_eth1_false/validator_keys/deposit_data-1660803666.json rename to validator_manager/test_vectors/vectors/mainnet_first_0_count_1_eth1_false/validator_keys/deposit_data-1715584089.json index 31c00c57f24..d9ba926d1c3 100644 --- a/validator_manager/test_vectors/vectors/mainnet_first_0_count_1_eth1_false/validator_keys/deposit_data-1660803666.json +++ b/validator_manager/test_vectors/vectors/mainnet_first_0_count_1_eth1_false/validator_keys/deposit_data-1715584089.json @@ -1 +1 @@ -[{"pubkey": "88b6b3a9b391fa5593e8bce8d06102df1a56248368086929709fbb4a8570dc6a560febeef8159b19789e9c1fd13572f0", "withdrawal_credentials": "0049b6188ed20314309f617dd4030b8ddfac3c6e65759a03c226a13b2fe4cc72", "amount": 32000000000, "signature": "8ac88247c1b431a2d1eb2c5f00e7b8467bc21d6dc267f1af9ef727a12e32b4299e3b289ae5734a328b3202478dd746a80bf9e15a2217240dca1fc1b91a6b7ff7a0f5830d9a2610c1c30f19912346271357c21bd9af35a74097ebbdda2ddaf491", "deposit_message_root": "a9bc1d21cc009d9b10782a07213e37592c0d235463ed0117dec755758da90d51", "deposit_data_root": "807a20b2801eabfd9065c1b74ed6ae3e991a1ab770e4eaf268f30b37cfd2cbd7", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.3.0"}] \ No newline at end of file +[{"pubkey": "88b6b3a9b391fa5593e8bce8d06102df1a56248368086929709fbb4a8570dc6a560febeef8159b19789e9c1fd13572f0", "withdrawal_credentials": "0049b6188ed20314309f617dd4030b8ddfac3c6e65759a03c226a13b2fe4cc72", "amount": 32000000000, "signature": "8ac88247c1b431a2d1eb2c5f00e7b8467bc21d6dc267f1af9ef727a12e32b4299e3b289ae5734a328b3202478dd746a80bf9e15a2217240dca1fc1b91a6b7ff7a0f5830d9a2610c1c30f19912346271357c21bd9af35a74097ebbdda2ddaf491", "deposit_message_root": "a9bc1d21cc009d9b10782a07213e37592c0d235463ed0117dec755758da90d51", "deposit_data_root": "807a20b2801eabfd9065c1b74ed6ae3e991a1ab770e4eaf268f30b37cfd2cbd7", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.7.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/mainnet_first_0_count_2_eth1_false/validator_keys/deposit_data-1660803669.json b/validator_manager/test_vectors/vectors/mainnet_first_0_count_2_eth1_false/validator_keys/deposit_data-1715584092.json similarity index 90% rename from validator_manager/test_vectors/vectors/mainnet_first_0_count_2_eth1_false/validator_keys/deposit_data-1660803669.json rename to validator_manager/test_vectors/vectors/mainnet_first_0_count_2_eth1_false/validator_keys/deposit_data-1715584092.json index 2880b7724cf..f1ea4c6ad32 100644 --- a/validator_manager/test_vectors/vectors/mainnet_first_0_count_2_eth1_false/validator_keys/deposit_data-1660803669.json +++ b/validator_manager/test_vectors/vectors/mainnet_first_0_count_2_eth1_false/validator_keys/deposit_data-1715584092.json @@ -1 +1 @@ -[{"pubkey": "88b6b3a9b391fa5593e8bce8d06102df1a56248368086929709fbb4a8570dc6a560febeef8159b19789e9c1fd13572f0", "withdrawal_credentials": "0049b6188ed20314309f617dd4030b8ddfac3c6e65759a03c226a13b2fe4cc72", "amount": 32000000000, "signature": "8ac88247c1b431a2d1eb2c5f00e7b8467bc21d6dc267f1af9ef727a12e32b4299e3b289ae5734a328b3202478dd746a80bf9e15a2217240dca1fc1b91a6b7ff7a0f5830d9a2610c1c30f19912346271357c21bd9af35a74097ebbdda2ddaf491", "deposit_message_root": "a9bc1d21cc009d9b10782a07213e37592c0d235463ed0117dec755758da90d51", "deposit_data_root": "807a20b2801eabfd9065c1b74ed6ae3e991a1ab770e4eaf268f30b37cfd2cbd7", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.3.0"}, {"pubkey": "a33ab9d93fb53c4f027944aaa11a13be0c150b7cc2e379d85d1ed4db38d178b4e4ebeae05832158b8c746c1961da00ce", "withdrawal_credentials": "00ad3748cbd1adc855c2bdab431f7e755a21663f4f6447ac888e5855c588af5a", "amount": 32000000000, "signature": "84b9fc8f260a1488c4c9a438f875edfa2bac964d651b2bc886d8442829b13f89752e807c8ca9bae9d50b1b506d3a64730015dd7f91e271ff9c1757d1996dcf6082fe5205cf6329fa2b6be303c21b66d75be608757a123da6ee4a4f14c01716d7", "deposit_message_root": "c5271aba974c802ff5b02b11fa33b545d7f430ff3b85c0f9eeef4cd59d83abf3", "deposit_data_root": "cd991ea8ff32e6b3940aed43b476c720fc1abd3040893b77a8a3efb306320d4c", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.3.0"}] \ No newline at end of file +[{"pubkey": "88b6b3a9b391fa5593e8bce8d06102df1a56248368086929709fbb4a8570dc6a560febeef8159b19789e9c1fd13572f0", "withdrawal_credentials": "0049b6188ed20314309f617dd4030b8ddfac3c6e65759a03c226a13b2fe4cc72", "amount": 32000000000, "signature": "8ac88247c1b431a2d1eb2c5f00e7b8467bc21d6dc267f1af9ef727a12e32b4299e3b289ae5734a328b3202478dd746a80bf9e15a2217240dca1fc1b91a6b7ff7a0f5830d9a2610c1c30f19912346271357c21bd9af35a74097ebbdda2ddaf491", "deposit_message_root": "a9bc1d21cc009d9b10782a07213e37592c0d235463ed0117dec755758da90d51", "deposit_data_root": "807a20b2801eabfd9065c1b74ed6ae3e991a1ab770e4eaf268f30b37cfd2cbd7", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.7.0"}, {"pubkey": "a33ab9d93fb53c4f027944aaa11a13be0c150b7cc2e379d85d1ed4db38d178b4e4ebeae05832158b8c746c1961da00ce", "withdrawal_credentials": "00ad3748cbd1adc855c2bdab431f7e755a21663f4f6447ac888e5855c588af5a", "amount": 32000000000, "signature": "84b9fc8f260a1488c4c9a438f875edfa2bac964d651b2bc886d8442829b13f89752e807c8ca9bae9d50b1b506d3a64730015dd7f91e271ff9c1757d1996dcf6082fe5205cf6329fa2b6be303c21b66d75be608757a123da6ee4a4f14c01716d7", "deposit_message_root": "c5271aba974c802ff5b02b11fa33b545d7f430ff3b85c0f9eeef4cd59d83abf3", "deposit_data_root": "cd991ea8ff32e6b3940aed43b476c720fc1abd3040893b77a8a3efb306320d4c", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.7.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/mainnet_first_0_count_2_eth1_true/validator_keys/deposit_data-1660803684.json b/validator_manager/test_vectors/vectors/mainnet_first_0_count_2_eth1_true/validator_keys/deposit_data-1715584107.json similarity index 90% rename from validator_manager/test_vectors/vectors/mainnet_first_0_count_2_eth1_true/validator_keys/deposit_data-1660803684.json rename to validator_manager/test_vectors/vectors/mainnet_first_0_count_2_eth1_true/validator_keys/deposit_data-1715584107.json index da92a1d0d94..5741f23d8fd 100644 --- a/validator_manager/test_vectors/vectors/mainnet_first_0_count_2_eth1_true/validator_keys/deposit_data-1660803684.json +++ b/validator_manager/test_vectors/vectors/mainnet_first_0_count_2_eth1_true/validator_keys/deposit_data-1715584107.json @@ -1 +1 @@ -[{"pubkey": "88b6b3a9b391fa5593e8bce8d06102df1a56248368086929709fbb4a8570dc6a560febeef8159b19789e9c1fd13572f0", "withdrawal_credentials": "0100000000000000000000000f51bb10119727a7e5ea3538074fb341f56b09ad", "amount": 32000000000, "signature": "a8461b58a5a5a0573c4af37da6ee4ba63e35894cffad6797d4a2c80f8f2c79d2c30c0de0299d8edde76e0c3f3e6d4f1e03cc377969f56d8760717d6e86f9316da9375573ce7bb87a8520daedb13c49284377f7a4f64a70aa2ca44b1581d47e20", "deposit_message_root": "62967565d11471da4af7769911926cd1826124048036b25616216f99bc320f13", "deposit_data_root": "d26d642a880ff8a109260fe69681840f6e1868c8c1cd2163a1db5a094e8db03a", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.3.0"}, {"pubkey": "a33ab9d93fb53c4f027944aaa11a13be0c150b7cc2e379d85d1ed4db38d178b4e4ebeae05832158b8c746c1961da00ce", "withdrawal_credentials": "0100000000000000000000000f51bb10119727a7e5ea3538074fb341f56b09ad", "amount": 32000000000, "signature": "93a398c09143203beb94c9223c7e18f36e5ea36090875284b222c2fcb16982e6f2e26f27ca9d30e3c6f6b5ad44857fc50f531925f4736810712f68a9d7a9c0eb664a851180f3b7d2e44a35717d43b3d3e4fd555354fa1dfa92f451870f36084d", "deposit_message_root": "ce110433298ffb78d827d67dcc13655344a139cb7e3ce10b341937c0a76b25b7", "deposit_data_root": "7c7617a2c11870ec49e975b3691b9f822d63938df38555161e23aa245b150c66", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.3.0"}] \ No newline at end of file +[{"pubkey": "88b6b3a9b391fa5593e8bce8d06102df1a56248368086929709fbb4a8570dc6a560febeef8159b19789e9c1fd13572f0", "withdrawal_credentials": "0100000000000000000000000f51bb10119727a7e5ea3538074fb341f56b09ad", "amount": 32000000000, "signature": "a8461b58a5a5a0573c4af37da6ee4ba63e35894cffad6797d4a2c80f8f2c79d2c30c0de0299d8edde76e0c3f3e6d4f1e03cc377969f56d8760717d6e86f9316da9375573ce7bb87a8520daedb13c49284377f7a4f64a70aa2ca44b1581d47e20", "deposit_message_root": "62967565d11471da4af7769911926cd1826124048036b25616216f99bc320f13", "deposit_data_root": "d26d642a880ff8a109260fe69681840f6e1868c8c1cd2163a1db5a094e8db03a", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.7.0"}, {"pubkey": "a33ab9d93fb53c4f027944aaa11a13be0c150b7cc2e379d85d1ed4db38d178b4e4ebeae05832158b8c746c1961da00ce", "withdrawal_credentials": "0100000000000000000000000f51bb10119727a7e5ea3538074fb341f56b09ad", "amount": 32000000000, "signature": "93a398c09143203beb94c9223c7e18f36e5ea36090875284b222c2fcb16982e6f2e26f27ca9d30e3c6f6b5ad44857fc50f531925f4736810712f68a9d7a9c0eb664a851180f3b7d2e44a35717d43b3d3e4fd555354fa1dfa92f451870f36084d", "deposit_message_root": "ce110433298ffb78d827d67dcc13655344a139cb7e3ce10b341937c0a76b25b7", "deposit_data_root": "7c7617a2c11870ec49e975b3691b9f822d63938df38555161e23aa245b150c66", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.7.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/mainnet_first_1024_count_3_eth1_false/validator_keys/deposit_data-1660803679.json b/validator_manager/test_vectors/vectors/mainnet_first_1024_count_3_eth1_false/validator_keys/deposit_data-1715584103.json similarity index 93% rename from validator_manager/test_vectors/vectors/mainnet_first_1024_count_3_eth1_false/validator_keys/deposit_data-1660803679.json rename to validator_manager/test_vectors/vectors/mainnet_first_1024_count_3_eth1_false/validator_keys/deposit_data-1715584103.json index 9cc01dc0df7..9b9556cf9da 100644 --- a/validator_manager/test_vectors/vectors/mainnet_first_1024_count_3_eth1_false/validator_keys/deposit_data-1660803679.json +++ b/validator_manager/test_vectors/vectors/mainnet_first_1024_count_3_eth1_false/validator_keys/deposit_data-1715584103.json @@ -1 +1 @@ -[{"pubkey": "92ca8dddba4ae7ada6584c377fc53fb978ad9d5ee8db585b18e226c27682b326b3c68e10f5d99a453e233268c144e0ef", "withdrawal_credentials": "00dd4f8bfd1a48be288c2af8bb7315f6198900b5b3f56df010420d5328e682cb", "amount": 32000000000, "signature": "a0a96851892b257c032284928641021e58e0bcd277c3da5a2c41bcce6633d144781e4761261138277b5a8cf0ead59cce073e5a3bbc4704a37abf8cd1e290dc52e56cb0c334303945ebbb79be453c8177937e44e08f980679f1a2997fe58d2d86", "deposit_message_root": "5421d9177b4d035e6525506509ab702c5f458c53458dad437097b37cb8209b43", "deposit_data_root": "2bedaf48f8315d8631defc97c1c4c05a8152e2dc3fe779fc8e800dd67bd839a2", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.3.0"}, {"pubkey": "86474cd2874663445ef0ee02aca81b2b942a383fd4c7085fa675388e26c67afc0fef44a8666d46f571723e349ae4a0cb", "withdrawal_credentials": "001c31aa161ed1d3c481c1ee8f3ad1853217296a15877917fe3c2f680580ac01", "amount": 32000000000, "signature": "b469179ad8ba9d6ad71b99a3c7ae662d9b77cca3ee53b20ab2eb20beee31874ad47224e94e75578fa6ecd30c1d40a0b300053817f934169d84425691edf13216445fbc6dd9b0953ad3af20c834fba63c1f50c0b0f92dd8bf383cd2cc8e0431f1", "deposit_message_root": "279271f7065c83868c37021c32c014516b21e6188fb2cee4e8543c5d38427698", "deposit_data_root": "69862477671957ab0b3f1167c5cd550c107132a0079eb70eaa4bc5c5fe06b5a0", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.3.0"}, {"pubkey": "997e27aa262238beb01464434694a466321b5270297bdfdb944b65a3b6617b6ce2613628ac35a8f4cf2e9b4b55c46ef8", "withdrawal_credentials": "0097fffee9cf9fd91a6fa89af90e73f1cb8b8a043e742afaeb2e57b83b0845fe", "amount": 32000000000, "signature": "a8b05626657ce5b1801e0824aaeb21de2e1a11bc16cad6100ac911bcb873aaf7e7282f1f8465df4aaea998a1a4e1645f075e7e65f8c6b8688b0162f86be2128541f91fc9feb628bcab3b4afec1f7aeccaba04aaa54dc17c738233d360f94b97e", "deposit_message_root": "187e177721bfdd8ea13cb52c8de2dead29164a0e093efb640457a0e6ac918191", "deposit_data_root": "34ef32901d793cd9a0a3d93e7ee40e7be9abe6fb26f0b49a86b8ff29dc649930", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.3.0"}] \ No newline at end of file +[{"pubkey": "92ca8dddba4ae7ada6584c377fc53fb978ad9d5ee8db585b18e226c27682b326b3c68e10f5d99a453e233268c144e0ef", "withdrawal_credentials": "00dd4f8bfd1a48be288c2af8bb7315f6198900b5b3f56df010420d5328e682cb", "amount": 32000000000, "signature": "a0a96851892b257c032284928641021e58e0bcd277c3da5a2c41bcce6633d144781e4761261138277b5a8cf0ead59cce073e5a3bbc4704a37abf8cd1e290dc52e56cb0c334303945ebbb79be453c8177937e44e08f980679f1a2997fe58d2d86", "deposit_message_root": "5421d9177b4d035e6525506509ab702c5f458c53458dad437097b37cb8209b43", "deposit_data_root": "2bedaf48f8315d8631defc97c1c4c05a8152e2dc3fe779fc8e800dd67bd839a2", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.7.0"}, {"pubkey": "86474cd2874663445ef0ee02aca81b2b942a383fd4c7085fa675388e26c67afc0fef44a8666d46f571723e349ae4a0cb", "withdrawal_credentials": "001c31aa161ed1d3c481c1ee8f3ad1853217296a15877917fe3c2f680580ac01", "amount": 32000000000, "signature": "b469179ad8ba9d6ad71b99a3c7ae662d9b77cca3ee53b20ab2eb20beee31874ad47224e94e75578fa6ecd30c1d40a0b300053817f934169d84425691edf13216445fbc6dd9b0953ad3af20c834fba63c1f50c0b0f92dd8bf383cd2cc8e0431f1", "deposit_message_root": "279271f7065c83868c37021c32c014516b21e6188fb2cee4e8543c5d38427698", "deposit_data_root": "69862477671957ab0b3f1167c5cd550c107132a0079eb70eaa4bc5c5fe06b5a0", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.7.0"}, {"pubkey": "997e27aa262238beb01464434694a466321b5270297bdfdb944b65a3b6617b6ce2613628ac35a8f4cf2e9b4b55c46ef8", "withdrawal_credentials": "0097fffee9cf9fd91a6fa89af90e73f1cb8b8a043e742afaeb2e57b83b0845fe", "amount": 32000000000, "signature": "a8b05626657ce5b1801e0824aaeb21de2e1a11bc16cad6100ac911bcb873aaf7e7282f1f8465df4aaea998a1a4e1645f075e7e65f8c6b8688b0162f86be2128541f91fc9feb628bcab3b4afec1f7aeccaba04aaa54dc17c738233d360f94b97e", "deposit_message_root": "187e177721bfdd8ea13cb52c8de2dead29164a0e093efb640457a0e6ac918191", "deposit_data_root": "34ef32901d793cd9a0a3d93e7ee40e7be9abe6fb26f0b49a86b8ff29dc649930", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.7.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/mainnet_first_12_count_1_eth1_false/validator_keys/deposit_data-1660803672.json b/validator_manager/test_vectors/vectors/mainnet_first_12_count_1_eth1_false/validator_keys/deposit_data-1715584095.json similarity index 90% rename from validator_manager/test_vectors/vectors/mainnet_first_12_count_1_eth1_false/validator_keys/deposit_data-1660803672.json rename to validator_manager/test_vectors/vectors/mainnet_first_12_count_1_eth1_false/validator_keys/deposit_data-1715584095.json index 3a971d0959a..84140f53feb 100644 --- a/validator_manager/test_vectors/vectors/mainnet_first_12_count_1_eth1_false/validator_keys/deposit_data-1660803672.json +++ b/validator_manager/test_vectors/vectors/mainnet_first_12_count_1_eth1_false/validator_keys/deposit_data-1715584095.json @@ -1 +1 @@ -[{"pubkey": "8b181759a027c09a409ef24f6b35db213982c2474e2017f3851d76b1c4e560a4238072f67a0c22cb667f940da4ea9ec9", "withdrawal_credentials": "00cbec90e8570679f565bd4645f73a078981067a705564283e61c93c81707842", "amount": 32000000000, "signature": "a57299cde3c2ea8dc17ad3ce5a38a5f6de69d198599150dc4df02624ba1d8672440d02c0d27c3dc3b8c9f86c679571ab14c798426acd9b059895f1f5887bdee805fb4e31bd8f93ec9e78403c23d7924f23eae6af056154f35fee03bf9ffe0e98", "deposit_message_root": "fcdf3d94740766299a95b3e477e64abadff6ab8978400578f241c93eb367b938", "deposit_data_root": "246619823b45d80f53a30404542ec4be447d4e268cc0afcdf480e6a846d58411", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.3.0"}] \ No newline at end of file +[{"pubkey": "8b181759a027c09a409ef24f6b35db213982c2474e2017f3851d76b1c4e560a4238072f67a0c22cb667f940da4ea9ec9", "withdrawal_credentials": "00cbec90e8570679f565bd4645f73a078981067a705564283e61c93c81707842", "amount": 32000000000, "signature": "a57299cde3c2ea8dc17ad3ce5a38a5f6de69d198599150dc4df02624ba1d8672440d02c0d27c3dc3b8c9f86c679571ab14c798426acd9b059895f1f5887bdee805fb4e31bd8f93ec9e78403c23d7924f23eae6af056154f35fee03bf9ffe0e98", "deposit_message_root": "fcdf3d94740766299a95b3e477e64abadff6ab8978400578f241c93eb367b938", "deposit_data_root": "246619823b45d80f53a30404542ec4be447d4e268cc0afcdf480e6a846d58411", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.7.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/mainnet_first_99_count_2_eth1_false/validator_keys/deposit_data-1660803675.json b/validator_manager/test_vectors/vectors/mainnet_first_99_count_2_eth1_false/validator_keys/deposit_data-1715584098.json similarity index 90% rename from validator_manager/test_vectors/vectors/mainnet_first_99_count_2_eth1_false/validator_keys/deposit_data-1660803675.json rename to validator_manager/test_vectors/vectors/mainnet_first_99_count_2_eth1_false/validator_keys/deposit_data-1715584098.json index 2efa5c4ec8c..3205390a434 100644 --- a/validator_manager/test_vectors/vectors/mainnet_first_99_count_2_eth1_false/validator_keys/deposit_data-1660803675.json +++ b/validator_manager/test_vectors/vectors/mainnet_first_99_count_2_eth1_false/validator_keys/deposit_data-1715584098.json @@ -1 +1 @@ -[{"pubkey": "a57a4ed429e415b862cc758e75c93936e3f6339640d0763b969ba133a82c03717827fbdd8ec42fc862ed50e3b5b528dc", "withdrawal_credentials": "00864081ef2f5aec1aa667872615e25027f1fdc256a4948b6318cf75a8d635a3", "amount": 32000000000, "signature": "8ca8a6f30b4346d7b9912e3dcd820652bc472511f89d91fd102acfb0c8df1cfc7a2629f44170727e126e88f2847fe5c9081b13fb0838a2b2343a95cabf16f57708fc0cf846bc5307209ae976c34500cc826ff48ab64169d8bebec99dded5dd1d", "deposit_message_root": "c08d0ecd085bc0f50c35f1b34d8b8937b2b9c8a172a9808de70f8d448c526f07", "deposit_data_root": "c0c6cd40b43ea0fe7fcc284de9acd9c1bd001bb88c059c155393af22a6c85d46", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.3.0"}, {"pubkey": "a2801622bc391724989004b5de78cb85746f85a303572691ecc945d9f5c61ec512127e58482e0dfcb4de77be3294ab01", "withdrawal_credentials": "00edff674c66a7f58285554e700183aeee5e740691de8087f7ce4d81f3597108", "amount": 32000000000, "signature": "8c0784645c611b4f514a6519b737f2d02df3eba0e04cd30efebffcca769af8cc599ce28e4421cefe665ec31d3c34e44c174e0cca4891d8196796085e712459b45e411efecd07cf3258f1d6309a07a6dd52a0ae186e6184d37bf11cee36ec84e8", "deposit_message_root": "f5a530bee9698c2447961ecd210184fbb130bbb8e8916988d802d47e3b147842", "deposit_data_root": "c57790b77ef97318d4ec7b97ea07ea458d08209ba372bfe76171e2ece22d6130", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.3.0"}] \ No newline at end of file +[{"pubkey": "a57a4ed429e415b862cc758e75c93936e3f6339640d0763b969ba133a82c03717827fbdd8ec42fc862ed50e3b5b528dc", "withdrawal_credentials": "00864081ef2f5aec1aa667872615e25027f1fdc256a4948b6318cf75a8d635a3", "amount": 32000000000, "signature": "8ca8a6f30b4346d7b9912e3dcd820652bc472511f89d91fd102acfb0c8df1cfc7a2629f44170727e126e88f2847fe5c9081b13fb0838a2b2343a95cabf16f57708fc0cf846bc5307209ae976c34500cc826ff48ab64169d8bebec99dded5dd1d", "deposit_message_root": "c08d0ecd085bc0f50c35f1b34d8b8937b2b9c8a172a9808de70f8d448c526f07", "deposit_data_root": "c0c6cd40b43ea0fe7fcc284de9acd9c1bd001bb88c059c155393af22a6c85d46", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.7.0"}, {"pubkey": "a2801622bc391724989004b5de78cb85746f85a303572691ecc945d9f5c61ec512127e58482e0dfcb4de77be3294ab01", "withdrawal_credentials": "00edff674c66a7f58285554e700183aeee5e740691de8087f7ce4d81f3597108", "amount": 32000000000, "signature": "8c0784645c611b4f514a6519b737f2d02df3eba0e04cd30efebffcca769af8cc599ce28e4421cefe665ec31d3c34e44c174e0cca4891d8196796085e712459b45e411efecd07cf3258f1d6309a07a6dd52a0ae186e6184d37bf11cee36ec84e8", "deposit_message_root": "f5a530bee9698c2447961ecd210184fbb130bbb8e8916988d802d47e3b147842", "deposit_data_root": "c57790b77ef97318d4ec7b97ea07ea458d08209ba372bfe76171e2ece22d6130", "fork_version": "00000000", "network_name": "mainnet", "deposit_cli_version": "2.7.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/prater_first_0_count_1_eth1_false/validator_keys/deposit_data-1660803687.json b/validator_manager/test_vectors/vectors/prater_first_0_count_1_eth1_false/validator_keys/deposit_data-1660803687.json deleted file mode 100644 index c736d75b7e9..00000000000 --- a/validator_manager/test_vectors/vectors/prater_first_0_count_1_eth1_false/validator_keys/deposit_data-1660803687.json +++ /dev/null @@ -1 +0,0 @@ -[{"pubkey": "88b6b3a9b391fa5593e8bce8d06102df1a56248368086929709fbb4a8570dc6a560febeef8159b19789e9c1fd13572f0", "withdrawal_credentials": "0049b6188ed20314309f617dd4030b8ddfac3c6e65759a03c226a13b2fe4cc72", "amount": 32000000000, "signature": "a940e0142ad9b56a1310326137347d1ada275b31b3748af4accc63bd189573376615be8e8ae047766c6d10864e54b2e7098177598edf3a043eb560bbdf1a1c12588375a054d1323a0900e2286d0993cde9675e5b74523e6e8e03715cc96b3ce5", "deposit_message_root": "a9bc1d21cc009d9b10782a07213e37592c0d235463ed0117dec755758da90d51", "deposit_data_root": "28484efb20c961a1354689a556d4c352fe9deb24684efdb32d22e1af17e2a45d", "fork_version": "00001020", "network_name": "goerli", "deposit_cli_version": "2.3.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/prater_first_0_count_2_eth1_false/validator_keys/deposit_data-1660803690.json b/validator_manager/test_vectors/vectors/prater_first_0_count_2_eth1_false/validator_keys/deposit_data-1660803690.json deleted file mode 100644 index e86500d14f2..00000000000 --- a/validator_manager/test_vectors/vectors/prater_first_0_count_2_eth1_false/validator_keys/deposit_data-1660803690.json +++ /dev/null @@ -1 +0,0 @@ -[{"pubkey": "88b6b3a9b391fa5593e8bce8d06102df1a56248368086929709fbb4a8570dc6a560febeef8159b19789e9c1fd13572f0", "withdrawal_credentials": "0049b6188ed20314309f617dd4030b8ddfac3c6e65759a03c226a13b2fe4cc72", "amount": 32000000000, "signature": "a940e0142ad9b56a1310326137347d1ada275b31b3748af4accc63bd189573376615be8e8ae047766c6d10864e54b2e7098177598edf3a043eb560bbdf1a1c12588375a054d1323a0900e2286d0993cde9675e5b74523e6e8e03715cc96b3ce5", "deposit_message_root": "a9bc1d21cc009d9b10782a07213e37592c0d235463ed0117dec755758da90d51", "deposit_data_root": "28484efb20c961a1354689a556d4c352fe9deb24684efdb32d22e1af17e2a45d", "fork_version": "00001020", "network_name": "goerli", "deposit_cli_version": "2.3.0"}, {"pubkey": "a33ab9d93fb53c4f027944aaa11a13be0c150b7cc2e379d85d1ed4db38d178b4e4ebeae05832158b8c746c1961da00ce", "withdrawal_credentials": "00ad3748cbd1adc855c2bdab431f7e755a21663f4f6447ac888e5855c588af5a", "amount": 32000000000, "signature": "87b4b4e9c923aa9e1687219e9df0e838956ee6e15b7ab18142467430d00940dc7aa243c9996e85125dfe72d9dbdb00a30a36e16a2003ee0c86f29c9f5d74f12bfe5b7f62693dbf5187a093555ae8d6b48acd075788549c4b6a249b397af24cd0", "deposit_message_root": "c5271aba974c802ff5b02b11fa33b545d7f430ff3b85c0f9eeef4cd59d83abf3", "deposit_data_root": "ea80b639356a03f6f58e4acbe881fabefc9d8b93375a6aa7e530c77d7e45d3e4", "fork_version": "00001020", "network_name": "goerli", "deposit_cli_version": "2.3.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/prater_first_0_count_2_eth1_true/validator_keys/deposit_data-1660803705.json b/validator_manager/test_vectors/vectors/prater_first_0_count_2_eth1_true/validator_keys/deposit_data-1660803705.json deleted file mode 100644 index c79ae5a4fc0..00000000000 --- a/validator_manager/test_vectors/vectors/prater_first_0_count_2_eth1_true/validator_keys/deposit_data-1660803705.json +++ /dev/null @@ -1 +0,0 @@ -[{"pubkey": "88b6b3a9b391fa5593e8bce8d06102df1a56248368086929709fbb4a8570dc6a560febeef8159b19789e9c1fd13572f0", "withdrawal_credentials": "0100000000000000000000000f51bb10119727a7e5ea3538074fb341f56b09ad", "amount": 32000000000, "signature": "ab32595d8201c2b4e8173aece9151fdc15f4d2ad36008462d0416598ddbf0f37ed0877f06d284a9669e73dbc0885bd2207fe64385e95a4488dc2bcb2c324d5c20da3248a6244463583dfbba8db20805765421e59cb56b0bc3ee6d24a9218216d", "deposit_message_root": "62967565d11471da4af7769911926cd1826124048036b25616216f99bc320f13", "deposit_data_root": "b4df3a3a26dd5f6eb32999d8a7051a7d1a8573a16553d4b45ee706a0d59c1066", "fork_version": "00001020", "network_name": "goerli", "deposit_cli_version": "2.3.0"}, {"pubkey": "a33ab9d93fb53c4f027944aaa11a13be0c150b7cc2e379d85d1ed4db38d178b4e4ebeae05832158b8c746c1961da00ce", "withdrawal_credentials": "0100000000000000000000000f51bb10119727a7e5ea3538074fb341f56b09ad", "amount": 32000000000, "signature": "9655e195eda5517efe6f36bcebd45250c889a4177d7bf5fcd59598d2d03f37f038b5ee2ec079a30a8382ea42f351943f08a6f006bab9c2130db2742bd7315c8ad5aa1f03a0801c26d4c9efdef71c4c59c449c7f9b21fa62600ab8f5f1e2b938a", "deposit_message_root": "ce110433298ffb78d827d67dcc13655344a139cb7e3ce10b341937c0a76b25b7", "deposit_data_root": "7661474fba11bfb453274f62df022cab3c0b6f4a58af4400f6bce83c9cb5fcb8", "fork_version": "00001020", "network_name": "goerli", "deposit_cli_version": "2.3.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/prater_first_1024_count_3_eth1_false/validator_keys/deposit_data-1660803701.json b/validator_manager/test_vectors/vectors/prater_first_1024_count_3_eth1_false/validator_keys/deposit_data-1660803701.json deleted file mode 100644 index 136dc38554c..00000000000 --- a/validator_manager/test_vectors/vectors/prater_first_1024_count_3_eth1_false/validator_keys/deposit_data-1660803701.json +++ /dev/null @@ -1 +0,0 @@ -[{"pubkey": "92ca8dddba4ae7ada6584c377fc53fb978ad9d5ee8db585b18e226c27682b326b3c68e10f5d99a453e233268c144e0ef", "withdrawal_credentials": "00dd4f8bfd1a48be288c2af8bb7315f6198900b5b3f56df010420d5328e682cb", "amount": 32000000000, "signature": "b5dae79ce8f3d7326b46f93182981c5f3d64257a457f038caa78ec8e5cc25a9fdac52c7beb221ab2a3205404131366ad18e1e13801393b3d486819e8cca96128bf1244884a91d05dced092c74bc1e7259788f30dd3432df15f3d2f629645f345", "deposit_message_root": "5421d9177b4d035e6525506509ab702c5f458c53458dad437097b37cb8209b43", "deposit_data_root": "94213d76aba9e6a434589d4939dd3764e0832df78f66d30db22a760c14ba1b89", "fork_version": "00001020", "network_name": "goerli", "deposit_cli_version": "2.3.0"}, {"pubkey": "86474cd2874663445ef0ee02aca81b2b942a383fd4c7085fa675388e26c67afc0fef44a8666d46f571723e349ae4a0cb", "withdrawal_credentials": "001c31aa161ed1d3c481c1ee8f3ad1853217296a15877917fe3c2f680580ac01", "amount": 32000000000, "signature": "816f38a321c4f84ad5187eda58f6d9c1fd1e81c860ed1722bdb76b920fdd430a1e814b9bb893837ae3b38ad738684fbf1795fa687f617c52121472b1ac8d2e34e5c1127186233a8833ffb54c509d9e52cb7242c6c6a65b5e496296b3caa90d89", "deposit_message_root": "279271f7065c83868c37021c32c014516b21e6188fb2cee4e8543c5d38427698", "deposit_data_root": "7ad1d059d69794680a1deef5e72c33827f0c449a5f0917095821c0343572789d", "fork_version": "00001020", "network_name": "goerli", "deposit_cli_version": "2.3.0"}, {"pubkey": "997e27aa262238beb01464434694a466321b5270297bdfdb944b65a3b6617b6ce2613628ac35a8f4cf2e9b4b55c46ef8", "withdrawal_credentials": "0097fffee9cf9fd91a6fa89af90e73f1cb8b8a043e742afaeb2e57b83b0845fe", "amount": 32000000000, "signature": "95d20c35484dea6b2a0bd7c2da2d2e810d7829e14c03657b2524adfc2111aa5ed95908ecb975ff75ff742c68ce8df417016c048959b0f807675430f6d981478e26d48e594e0830a0406da9817f8a1ecb94bd8be1f9281eeb5e952a82173c72bb", "deposit_message_root": "187e177721bfdd8ea13cb52c8de2dead29164a0e093efb640457a0e6ac918191", "deposit_data_root": "83abfb2a166f7af708526a9bdd2767c4be3cd231c9bc4e2f047a80df88a2860c", "fork_version": "00001020", "network_name": "goerli", "deposit_cli_version": "2.3.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/prater_first_12_count_1_eth1_false/validator_keys/deposit_data-1660803693.json b/validator_manager/test_vectors/vectors/prater_first_12_count_1_eth1_false/validator_keys/deposit_data-1660803693.json deleted file mode 100644 index ccd2ece0699..00000000000 --- a/validator_manager/test_vectors/vectors/prater_first_12_count_1_eth1_false/validator_keys/deposit_data-1660803693.json +++ /dev/null @@ -1 +0,0 @@ -[{"pubkey": "8b181759a027c09a409ef24f6b35db213982c2474e2017f3851d76b1c4e560a4238072f67a0c22cb667f940da4ea9ec9", "withdrawal_credentials": "00cbec90e8570679f565bd4645f73a078981067a705564283e61c93c81707842", "amount": 32000000000, "signature": "8f75836ceb390dd4fc8c16bc4be52ca09b9c5aa0ab5bc16dcfdb344787b29ddfd76d877b0a2330bc8e904b233397c6bd124845d1b868e4951cb6daacea023c986bdf0c6ac28d73f65681d941ea96623bc23acc7c84dcfc1304686240d9171cfc", "deposit_message_root": "fcdf3d94740766299a95b3e477e64abadff6ab8978400578f241c93eb367b938", "deposit_data_root": "3011f5cac32f13e86ecc061e89ed6675c27a46ab6ecb1ec6f6e5f133ae1d0287", "fork_version": "00001020", "network_name": "goerli", "deposit_cli_version": "2.3.0"}] \ No newline at end of file diff --git a/validator_manager/test_vectors/vectors/prater_first_99_count_2_eth1_false/validator_keys/deposit_data-1660803696.json b/validator_manager/test_vectors/vectors/prater_first_99_count_2_eth1_false/validator_keys/deposit_data-1660803696.json deleted file mode 100644 index 2ab5908307b..00000000000 --- a/validator_manager/test_vectors/vectors/prater_first_99_count_2_eth1_false/validator_keys/deposit_data-1660803696.json +++ /dev/null @@ -1 +0,0 @@ -[{"pubkey": "a57a4ed429e415b862cc758e75c93936e3f6339640d0763b969ba133a82c03717827fbdd8ec42fc862ed50e3b5b528dc", "withdrawal_credentials": "00864081ef2f5aec1aa667872615e25027f1fdc256a4948b6318cf75a8d635a3", "amount": 32000000000, "signature": "a7706e102bfb0b986a5c8050044f7e221919463149771a92c3ca46ff7d4564867db48eaf89b5237fed8db2cdb9c9c057099d0982bbdb3fbfcbe0ab7259ad3f31f7713692b78ee25e6251982e7081d049804632b70b8a24d8c3e59b624a0bd221", "deposit_message_root": "c08d0ecd085bc0f50c35f1b34d8b8937b2b9c8a172a9808de70f8d448c526f07", "deposit_data_root": "8a26fbee0c3a99fe090af1fce68afc525b4e7efa70df72abaa91f29148b2f672", "fork_version": "00001020", "network_name": "goerli", "deposit_cli_version": "2.3.0"}, {"pubkey": "a2801622bc391724989004b5de78cb85746f85a303572691ecc945d9f5c61ec512127e58482e0dfcb4de77be3294ab01", "withdrawal_credentials": "00edff674c66a7f58285554e700183aeee5e740691de8087f7ce4d81f3597108", "amount": 32000000000, "signature": "8b7aa5b0e97d15ec8c2281b919fde9e064f6ac064b163445ea99441ab063f9d10534bfde861b5606021ae46614ff075e0c2305ce5a6cbcc9f0bc8e7df1a177c4d969a5ed4ac062b0ea959bdac963fe206b73565a1a3937adcca736c6117c15f0", "deposit_message_root": "f5a530bee9698c2447961ecd210184fbb130bbb8e8916988d802d47e3b147842", "deposit_data_root": "d38575167a94b516455c5b7e36d24310a612fa0f4580446c5f9d45e4e94f0642", "fork_version": "00001020", "network_name": "goerli", "deposit_cli_version": "2.3.0"}] \ No newline at end of file diff --git a/watch/Cargo.toml b/watch/Cargo.toml index aaaf50aa40a..3c1634a5b99 100644 --- a/watch/Cargo.toml +++ b/watch/Cargo.toml @@ -30,9 +30,7 @@ url = { workspace = true } rand = { workspace = true } diesel = { version = "2.0.2", features = ["postgres", "r2d2"] } diesel_migrations = { version = "2.0.0", features = ["postgres"] } -byteorder = { workspace = true } bls = { workspace = true } -hex = { workspace = true } r2d2 = { workspace = true } serde_yaml = { workspace = true }