From a4753c8c70acc61c051e7d223da2dcb792eae1be Mon Sep 17 00:00:00 2001 From: Alex Stokes Date: Wed, 18 Oct 2023 16:16:27 -0600 Subject: [PATCH 1/4] handle errors from update to reth alpha 10 --- mev-build-rs/src/reth_builder/error.rs | 2 +- mev-build-rs/src/reth_builder/payload_builder.rs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mev-build-rs/src/reth_builder/error.rs b/mev-build-rs/src/reth_builder/error.rs index 0cc4bfca..164618fe 100644 --- a/mev-build-rs/src/reth_builder/error.rs +++ b/mev-build-rs/src/reth_builder/error.rs @@ -20,7 +20,7 @@ pub enum Error { #[error(transparent)] Reth(#[from] RethError), #[error("evm execution error: {0:?}")] - Execution(EVMError), + Execution(#[from] EVMError), #[error("{0}")] Internal(&'static str), } diff --git a/mev-build-rs/src/reth_builder/payload_builder.rs b/mev-build-rs/src/reth_builder/payload_builder.rs index 15e08a37..d566ae54 100644 --- a/mev-build-rs/src/reth_builder/payload_builder.rs +++ b/mev-build-rs/src/reth_builder/payload_builder.rs @@ -110,7 +110,7 @@ fn assemble_payload_with_payments( let bundle_state = context.bundle_state; let transactions_root = proofs::calculate_transaction_root(&context.executed_txs); - let state_root = client.latest().unwrap().state_root(&bundle_state.clone()).unwrap(); + let state_root = client.latest()?.state_root(&bundle_state.clone())?; let receipts = bundle_state.receipts_by_block(block_number); let bundle = BundleStateWithReceipts::new( context.db.take_bundle(), @@ -163,7 +163,7 @@ fn construct_payment_tx( ) -> Result { let sender = context.build.builder_wallet.address(); let signer_account = context.db.load_cache_account(sender.into())?; - let nonce = signer_account.account_info().unwrap().nonce; + let nonce = signer_account.account_info().expect("account exists").nonce; let chain_id = context.build.chain_spec.genesis().config.chain_id; let fee_recipient = ethers_H160::from_slice(context.build.proposer_fee_recipient.as_ref()); @@ -263,7 +263,7 @@ impl<'a> ExecutionContext<'a> { let mut evm = revm::EVM::with_env(env); evm.database(&mut self.db); - let ResultAndState { result, state } = evm.transact().unwrap(); + let ResultAndState { result, state } = evm.transact()?; let block_number = self.build.number(); self.db.commit(state); From a1dbecb61e1ad57a2127a7dc9dae6dd893073eba Mon Sep 17 00:00:00 2001 From: Alex Stokes Date: Wed, 18 Oct 2023 16:18:03 -0600 Subject: [PATCH 2/4] move reth integration into `mev-build-rs` --- Cargo.lock | 7 +- bin/mev/Cargo.toml | 5 -- bin/mev/src/cmd/build.rs | 27 ++++++ mev-build-rs/Cargo.toml | 3 + mev-build-rs/src/reth_builder/mod.rs | 4 +- mev-build-rs/src/reth_builder/service.rs | 3 + .../src/reth_builder/service_ext.rs | 88 ++++++++----------- 7 files changed, 76 insertions(+), 61 deletions(-) create mode 100644 bin/mev/src/cmd/build.rs rename bin/mev/src/cmd/build/reth_ext.rs => mev-build-rs/src/reth_builder/service_ext.rs (59%) diff --git a/Cargo.lock b/Cargo.lock index b7f8f8e0..a87f38c8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4179,14 +4179,10 @@ dependencies = [ "anyhow", "clap", "ethereum-consensus", - "eyre", "mev-boost-rs", "mev-build-rs", "mev-relay-rs", "mev-rs", - "reth", - "reth-payload-builder", - "reth-primitives", "serde", "tokio", "toml 0.8.2", @@ -4223,12 +4219,15 @@ version = "0.3.0" dependencies = [ "async-trait", "beacon-api-client", + "clap", "ethereum-consensus", "ethers", + "eyre", "futures", "mev-rs", "parking_lot 0.12.1", "pin-project", + "reth", "reth-interfaces", "reth-payload-builder", "reth-primitives", diff --git a/bin/mev/Cargo.toml b/bin/mev/Cargo.toml index ab356024..656382a8 100644 --- a/bin/mev/Cargo.toml +++ b/bin/mev/Cargo.toml @@ -22,9 +22,4 @@ toml = "0.8.2" clap = { version = "4.1.4", features = ["derive", "env"] } anyhow = "1.0.57" -reth-payload-builder = { workspace = true } -reth-primitives = { workspace = true } -reth = { workspace = true } -eyre = "0.6.8" - ethereum-consensus = { workspace = true } diff --git a/bin/mev/src/cmd/build.rs b/bin/mev/src/cmd/build.rs new file mode 100644 index 00000000..7d3fb9ae --- /dev/null +++ b/bin/mev/src/cmd/build.rs @@ -0,0 +1,27 @@ +use crate::cmd::config::Config; +use anyhow::{anyhow, Result}; +use clap::Args; +use ethereum_consensus::networks::Network; +use mev_build_rs::reth_builder::Service; + +#[derive(Debug, Args)] +#[clap(about = "🛠️ building blocks since 2023")] +pub struct Command { + #[clap(env, default_value = "config.toml")] + config_file: String, +} + +impl Command { + pub async fn execute(&self, network: Network) -> Result<()> { + let config_file = &self.config_file; + + let config = Config::from_toml_file(config_file)?; + + if let Some(mut config) = config.build { + config.network = network; + Ok(Service::from(config).spawn().await) + } else { + Err(anyhow!("missing boost config from file provided")) + } + } +} diff --git a/mev-build-rs/Cargo.toml b/mev-build-rs/Cargo.toml index 19e4860b..d0894f0b 100644 --- a/mev-build-rs/Cargo.toml +++ b/mev-build-rs/Cargo.toml @@ -31,5 +31,8 @@ reth-transaction-pool = { workspace = true } reth-provider = { workspace = true } reth-interfaces = { workspace = true } reth-revm = { workspace = true } +reth = { workspace = true } ethers = "2.0" +eyre = "0.6.8" +clap = { version = "4.1.4", features = ["derive", "env"] } diff --git a/mev-build-rs/src/reth_builder/mod.rs b/mev-build-rs/src/reth_builder/mod.rs index 3451f352..f1610ec5 100644 --- a/mev-build-rs/src/reth_builder/mod.rs +++ b/mev-build-rs/src/reth_builder/mod.rs @@ -9,7 +9,9 @@ mod payload_builder; mod reth_compat; mod reth_ext; mod service; +mod service_ext; mod types; pub use bidder::DeadlineBidder; -pub use service::{Config, Service}; +pub use service::Config; +pub use service_ext::ServiceExt as Service; diff --git a/mev-build-rs/src/reth_builder/service.rs b/mev-build-rs/src/reth_builder/service.rs index c2624003..85b91339 100644 --- a/mev-build-rs/src/reth_builder/service.rs +++ b/mev-build-rs/src/reth_builder/service.rs @@ -6,6 +6,7 @@ use crate::reth_builder::{ use ethereum_consensus::{ clock::{Clock, SystemTimeProvider}, crypto::SecretKey, + networks::Network, state_transition::Context, }; use ethers::signers::{coins_bip39::English, MnemonicBuilder, Signer}; @@ -21,6 +22,8 @@ const DEFAULT_BID_PERCENT: f64 = 0.9; #[derive(Deserialize, Debug, Default, Clone)] pub struct Config { + #[serde(default)] + pub network: Network, pub secret_key: SecretKey, pub relays: Vec, pub extra_data: String, diff --git a/bin/mev/src/cmd/build/reth_ext.rs b/mev-build-rs/src/reth_builder/service_ext.rs similarity index 59% rename from bin/mev/src/cmd/build/reth_ext.rs rename to mev-build-rs/src/reth_builder/service_ext.rs index 6ec6caa9..08f22354 100644 --- a/bin/mev/src/cmd/build/reth_ext.rs +++ b/mev-build-rs/src/reth_builder/service_ext.rs @@ -1,10 +1,9 @@ -use crate::cmd::config::Config; +use crate::reth_builder::{service::Service, Config, DeadlineBidder}; use clap::{Args, Parser}; use ethereum_consensus::{ - networks::{self, Network}, + networks::{self}, state_transition::Context, }; -use mev_build_rs::reth_builder::{Config as BuildConfig, DeadlineBidder, Service}; use reth::{ cli::ext::{RethCliExt, RethNodeCommandConfig}, node::NodeCommand, @@ -15,35 +14,46 @@ use reth_payload_builder::PayloadBuilderService; use std::{sync::Arc, time::Duration}; use tracing::warn; -struct RethExt; - -impl RethCliExt for RethExt { - type Node = RethNodeExt; -} - #[derive(Debug, Args)] -pub struct RethNodeExt { - #[clap(skip)] - pub config_file: String, - #[clap(skip)] - pub network: Option, +pub struct ServiceExt { #[clap(skip)] - pub config: Option, + config: Config, } -impl RethNodeExt { - pub fn get_build_config(&mut self) -> BuildConfig { - self.config.take().unwrap_or_else(|| { - let config = Config::from_toml_file(&self.config_file).unwrap(); - self.network = Some(config.network); - let config = config.build.unwrap(); - self.config = Some(config.clone()); - config - }) +impl ServiceExt { + pub fn from(config: Config) -> Self { + Self { config } + } + + pub async fn spawn(self) { + let task_manager = TaskManager::new(tokio::runtime::Handle::current()); + let task_executor = task_manager.executor(); + let ctx = CliContext { task_executor }; + + let network = &self.config.network; + let network_name = format!("{0}", network); + + let mut params = + vec!["".into(), "--chain".into(), network_name.to_string(), "--http".into()]; + if let Some(path) = self.config.jwt_secret_path.as_ref() { + params.push("--authrpc.jwtsecret".into()); + params.push(path.clone()); + } + + let mut node = NodeCommand::::parse_from(params); + // NOTE: shim to pass in config + node.ext = self; + if let Err(err) = node.execute(ctx).await { + warn!("{err:?}"); + } } } -impl RethNodeCommandConfig for RethNodeExt { +impl RethCliExt for ServiceExt { + type Node = ServiceExt; +} + +impl RethNodeCommandConfig for ServiceExt { fn spawn_payload_builder_service( &mut self, _conf: &Conf, @@ -62,8 +72,8 @@ impl RethNodeCommandConfig for RethNodeExt { Pool: reth::transaction_pool::TransactionPool + Unpin + 'static, Tasks: reth::tasks::TaskSpawner + Clone + Unpin + 'static, { - let build_config = self.get_build_config(); - let network = self.network.as_ref().unwrap(); + let build_config = self.config.clone(); + let network = &build_config.network; let context = Arc::new(Context::try_from(network)?); let clock = context.clock().unwrap_or_else(|| { let genesis_time = networks::typical_genesis_time(&context); @@ -104,27 +114,3 @@ impl RethNodeCommandConfig for RethNodeExt { Ok(payload_builder) } } - -pub(crate) async fn launch_reth_with(mut ext: RethNodeExt) { - let task_manager = TaskManager::new(tokio::runtime::Handle::current()); - let task_executor = task_manager.executor(); - let ctx = CliContext { task_executor }; - - let config = ext.get_build_config(); - - let network = ext.network.as_ref().unwrap(); - let network_name = format!("{network}"); - - let mut params = vec!["".into(), "--chain".into(), network_name.to_string(), "--http".into()]; - if let Some(path) = config.jwt_secret_path { - params.push("--authrpc.jwtsecret".into()); - params.push(path); - } - - let mut node = NodeCommand::::parse_from(params); - // NOTE: shim to pass in config - node.ext = ext; - if let Err(err) = node.execute(ctx).await { - warn!("{err:?}"); - } -} From 3e4ff1d1bb5627f6e333a401e7d98175b28bef59 Mon Sep 17 00:00:00 2001 From: Alex Stokes Date: Wed, 18 Oct 2023 16:18:29 -0600 Subject: [PATCH 3/4] update `Cargo.lock` --- Cargo.lock | 251 +++++++++++++++++++++++++++++------------------------ 1 file changed, 138 insertions(+), 113 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a87f38c8..a9017cdc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -386,9 +386,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb42b2197bf15ccb092b62c74515dbd8b86d0effd934795f6687c93b6e679a2c" +checksum = "f658e2baef915ba0f26f1f7c42bfb8e12f532a01f449a090ded75ae7a07e9ba2" dependencies = [ "brotli", "flate2", @@ -396,8 +396,8 @@ dependencies = [ "memchr", "pin-project-lite", "tokio", - "zstd 0.12.4", - "zstd-safe 6.0.6", + "zstd 0.13.0", + "zstd-safe 7.0.0", ] [[package]] @@ -433,9 +433,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.73" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", @@ -667,7 +667,7 @@ version = "0.66.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "cexpr", "clang-sys", "lazy_static", @@ -690,7 +690,7 @@ version = "0.68.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "cexpr", "clang-sys", "lazy_static", @@ -727,9 +727,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" dependencies = [ "arbitrary", "serde", @@ -793,7 +793,7 @@ version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73498e9b2f0aa7db74977afa4d594657611e90587abf0dd564c0b55b4a130163" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "boa_interner", "boa_macros", "indexmap 2.0.2", @@ -807,7 +807,7 @@ version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16377479d5d6d33896e7acdd1cc698d04a8f72004025bbbddf47558cd29146a6" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "boa_ast", "boa_gc", "boa_icu_provider", @@ -900,7 +900,7 @@ version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e09afb035377a9044443b598187a7d34cd13164617182a4d7c348522ee3f052" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "boa_ast", "boa_icu_provider", "boa_interner", @@ -1036,7 +1036,7 @@ dependencies = [ [[package]] name = "c-kzg" version = "0.1.0" -source = "git+https://github.com/ethereum/c-kzg-4844#f3fffecd1ce7e8b6620cd5bac50c660efc20e48c" +source = "git+https://github.com/ethereum/c-kzg-4844#d637761a2ece4f13dbcffcae09253408e430a6e1" dependencies = [ "bindgen 0.66.1", "blst", @@ -1500,7 +1500,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "crossterm_winapi", "libc", "mio", @@ -1685,7 +1685,7 @@ dependencies = [ "hashbrown 0.14.1", "lock_api", "once_cell", - "parking_lot_core 0.9.8", + "parking_lot_core 0.9.9", ] [[package]] @@ -1732,10 +1732,11 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" +checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" dependencies = [ + "powerfmt", "serde", ] @@ -1981,9 +1982,9 @@ dependencies = [ [[package]] name = "ed25519" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ "pkcs8 0.10.2", "signature 2.1.0", @@ -2659,9 +2660,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" dependencies = [ "crc32fast", "miniz_oxide", @@ -3258,16 +3259,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows 0.48.0", + "windows-core", ] [[package]] @@ -3598,7 +3599,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "rustix 0.38.18", + "rustix 0.38.19", "windows-sys 0.48.0", ] @@ -3677,9 +3678,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.20.1" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ad9b31183a8bcbe843e32ca8554ad2936633548d95a7bb6a8e14c767dea6b05" +checksum = "de902baa44bf34a58b1a4906f8b840d7d60dcec5f41fe08b4dbc14cf9efa821c" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -3695,9 +3696,9 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.20.1" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97f2743cad51cc86b0dbfe316309eeb87a9d96a3d7f4dd7a99767c4b5f065335" +checksum = "58d9851f8f5653e0433a898e9032bde4910b35d625bd9dcf33ef6e36e7c3d456" dependencies = [ "futures-channel", "futures-util", @@ -3718,9 +3719,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.20.1" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35dc957af59ce98373bcdde0c1698060ca6c2d2e9ae357b459c7158b6df33330" +checksum = "51f45d37af23707750136379f6799e76ebfcf2d425ec4e36d0deb7921da5e65c" dependencies = [ "anyhow", "async-lock", @@ -3744,9 +3745,9 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.20.1" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd865d0072764cb937b0110a92b5f53e995f7101cb346beca03d93a2dea79de" +checksum = "02308562f2e8162a32f8d6c3dc19c29c858d5d478047c886a5c3c25b5f7fa868" dependencies = [ "async-trait", "hyper", @@ -3764,9 +3765,9 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.20.1" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef91b1017a4edb63f65239381c18de39f88d0e0760ab626d806e196f7f51477" +checksum = "f26b3675a943d083d0bf6e367ec755dccec56c41888afa13b191c1c4ff87c652" dependencies = [ "heck", "proc-macro-crate", @@ -3777,9 +3778,9 @@ dependencies = [ [[package]] name = "jsonrpsee-server" -version = "0.20.1" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f4e2f3d223d810e363fb8b5616ec4c6254243ee7f452d05ac281cdc9cf76b2" +checksum = "2ed2bec9c76cee118c27138cc1c877938bcaa01207a5d902b80dbfc60466bc9c" dependencies = [ "futures-util", "http", @@ -3800,9 +3801,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.20.1" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9e25aec855b2a7d3ed90fded6c41e8c3fb72b63f071e1be3f0004eba19b625" +checksum = "05eaff23af19f10ba6fbb76519bed6da4d3b9bbaef13d39b7c2b6c14e532d27e" dependencies = [ "anyhow", "beef", @@ -3814,9 +3815,9 @@ dependencies = [ [[package]] name = "jsonrpsee-wasm-client" -version = "0.20.1" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "010306151579898dc1000bab239ef7a73a73f04cb8ef267ee28b9a000267e813" +checksum = "d7ae1c71afe02a21713e197438f1bcfaa171c3dfe533b9505a0990cb8297779e" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -3825,9 +3826,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.20.1" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d88e35e9dfa89248ae3e92f689c1f0a190ce12d377eba7d2d08e5a7f6cc5694a" +checksum = "cd34d3ab8c09f02fd4c432f256bc8b143b616b222b03050f941ee53f0e8d7b24" dependencies = [ "http", "jsonrpsee-client-transport", @@ -3996,9 +3997,9 @@ checksum = "77a1a2647d5b7134127971a6de0d533c49de2159167e7f259c427195f87168a1" [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg", "scopeguard", @@ -4150,7 +4151,7 @@ dependencies = [ "once_cell", "procfs", "rlimit", - "windows 0.51.1", + "windows", ] [[package]] @@ -4645,7 +4646,7 @@ version = "0.10.57" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "cfg-if", "foreign-types", "libc", @@ -4773,7 +4774,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.8", + "parking_lot_core 0.9.9", ] [[package]] @@ -4792,13 +4793,13 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", + "redox_syscall 0.4.1", "smallvec", "windows-targets 0.48.5", ] @@ -5051,6 +5052,12 @@ dependencies = [ "serde", ] +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -5150,7 +5157,7 @@ dependencies = [ "byteorder", "hex", "lazy_static", - "rustix 0.36.15", + "rustix 0.36.16", ] [[package]] @@ -5161,7 +5168,7 @@ checksum = "7c003ac8c77cb07bb74f5f198bce836a689bcd5a42574612bf14d17bfd08c20e" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.4.0", + "bitflags 2.4.1", "lazy_static", "num-traits", "rand 0.8.5", @@ -5379,6 +5386,15 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "redox_users" version = "0.4.3" @@ -5392,14 +5408,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.0" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d119d7c7ca818f8a53c300863d4f87566aac09943aef5b355bb83969dae75d87" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick 1.1.2", "memchr", - "regex-automata 0.4.1", - "regex-syntax 0.8.1", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", ] [[package]] @@ -5413,13 +5429,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465c6fc0621e4abc4187a2bda0937bfd4f722c2730b29562e19689ea796c9a4b" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick 1.1.2", "memchr", - "regex-syntax 0.8.1", + "regex-syntax 0.8.2", ] [[package]] @@ -5436,9 +5452,9 @@ checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "regex-syntax" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56d84fdd47036b038fc80dd333d10b6aab10d5d31f4a366e20014def75328d33" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "regress" @@ -5916,7 +5932,7 @@ name = "reth-libmdbx" version = "0.1.0-alpha.10" source = "git+https://github.com/paradigmxyz/reth?rev=1b16d804ef01f4ec3c25e7986381c22739c105b9#1b16d804ef01f4ec3c25e7986381c22739c105b9" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "byteorder", "derive_more", "indexmap 2.0.2", @@ -6416,7 +6432,7 @@ dependencies = [ "aquamarine", "async-trait", "auto_impl", - "bitflags 2.4.0", + "bitflags 2.4.1", "fnv", "futures-util", "metrics", @@ -6498,7 +6514,7 @@ source = "git+https://github.com/bluealloy/revm/?rev=516f62cc#516f62ccc1c5f2a62e dependencies = [ "arbitrary", "auto_impl", - "bitflags 2.4.0", + "bitflags 2.4.1", "bitvec", "bytes", "c-kzg 0.1.0 (git+https://github.com/ethereum/c-kzg-4844)", @@ -6677,9 +6693,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.15" +version = "0.36.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c37f1bd5ef1b5422177b7646cba67430579cfe2ace80f284fee876bca52ad941" +checksum = "6da3636faa25820d8648e0e31c5d519bbb01f72fdf57131f0f5f7da5fed36eab" dependencies = [ "bitflags 1.3.2", "errno 0.3.5", @@ -6691,11 +6707,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.18" +version = "0.38.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a74ee2d7c2581cd139b42447d7d9389b889bdaad3a73f1ebb16f2a3237bb19c" +checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "errno 0.3.5", "libc", "linux-raw-sys 0.4.10", @@ -6977,18 +6993,18 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.188" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" +checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.188" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" +checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" dependencies = [ "proc-macro2", "quote", @@ -7039,9 +7055,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "base64 0.21.4", "chrono", @@ -7056,9 +7072,9 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e6be15c453eb305019bfa438b1593c731f36a289a7853f7707ee29e870b3b3c" +checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788" dependencies = [ "darling 0.20.3", "proc-macro2", @@ -7427,7 +7443,7 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" dependencies = [ - "strum_macros 0.25.2", + "strum_macros 0.25.3", ] [[package]] @@ -7445,9 +7461,9 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.25.2" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ "heck", "proc-macro2", @@ -7592,7 +7608,7 @@ dependencies = [ "cfg-if", "fastrand 2.0.1", "redox_syscall 0.3.5", - "rustix 0.38.18", + "rustix 0.38.19", "windows-sys 0.48.0", ] @@ -7654,14 +7670,15 @@ dependencies = [ [[package]] name = "time" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" dependencies = [ "deranged", "itoa", "libc", "num_threads", + "powerfmt", "serde", "time-core", "time-macros", @@ -7907,7 +7924,7 @@ checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ "async-compression", "base64 0.21.4", - "bitflags 2.4.0", + "bitflags 2.4.1", "bytes", "futures-core", "futures-util", @@ -7926,7 +7943,7 @@ dependencies = [ "tower-layer", "tower-service", "tracing", - "uuid 1.4.1", + "uuid 1.5.0", ] [[package]] @@ -7943,11 +7960,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9" dependencies = [ - "cfg-if", "log", "pin-project-lite", "tracing-attributes", @@ -7967,9 +7983,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", @@ -7978,9 +7994,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", @@ -8085,9 +8101,9 @@ dependencies = [ [[package]] name = "trust-dns-proto" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc775440033cb114085f6f2437682b194fa7546466024b1037e82a48a052a69" +checksum = "559ac980345f7f5020883dd3bcacf176355225e01916f8c2efecad7534f682c6" dependencies = [ "async-trait", "cfg-if", @@ -8110,9 +8126,9 @@ dependencies = [ [[package]] name = "trust-dns-resolver" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff7aed33ef3e8bf2c9966fccdfed93f93d46f432282ea875cd66faabc6ef2f" +checksum = "c723b0e608b24ad04c73b2607e0241b2c98fd79795a95e98b068b6966138a29d" dependencies = [ "cfg-if", "futures-util", @@ -8126,7 +8142,7 @@ dependencies = [ "thiserror", "tokio", "tracing", - "trust-dns-proto 0.23.0", + "trust-dns-proto 0.23.1", ] [[package]] @@ -8315,9 +8331,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" +checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" dependencies = [ "getrandom 0.2.10", ] @@ -8482,7 +8498,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.18", + "rustix 0.38.19", ] [[package]] @@ -8528,15 +8544,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows" version = "0.51.1" @@ -8690,9 +8697,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.5.16" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711d82167854aff2018dfd193aa0fef5370f456732f0d5a0c59b0f1b4b907" +checksum = "a3b801d0e0a6726477cc207f60162da452f3a95adb368399bef20a946e06f65c" dependencies = [ "memchr", ] @@ -8903,6 +8910,15 @@ dependencies = [ "zstd-safe 6.0.6", ] +[[package]] +name = "zstd" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110" +dependencies = [ + "zstd-safe 7.0.0", +] + [[package]] name = "zstd-safe" version = "5.0.2+zstd.1.5.2" @@ -8923,6 +8939,15 @@ dependencies = [ "zstd-sys", ] +[[package]] +name = "zstd-safe" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e" +dependencies = [ + "zstd-sys", +] + [[package]] name = "zstd-sys" version = "2.0.9+zstd.1.5.5" From cbc2f9dd5e4cc6ff1bcc17de78f2a8c0d7ae269d Mon Sep 17 00:00:00 2001 From: Alex Stokes Date: Wed, 18 Oct 2023 20:05:28 -0600 Subject: [PATCH 4/4] patch up `mev-build-rs` to reflect Network type upgrade --- bin/mev/src/cmd/build.rs | 13 +++++++----- bin/mev/src/cmd/build/mod.rs | 21 -------------------- mev-build-rs/src/reth_builder/service.rs | 3 --- mev-build-rs/src/reth_builder/service_ext.rs | 12 ++++++----- 4 files changed, 15 insertions(+), 34 deletions(-) delete mode 100644 bin/mev/src/cmd/build/mod.rs diff --git a/bin/mev/src/cmd/build.rs b/bin/mev/src/cmd/build.rs index 7d3fb9ae..bfb1daed 100644 --- a/bin/mev/src/cmd/build.rs +++ b/bin/mev/src/cmd/build.rs @@ -1,8 +1,8 @@ use crate::cmd::config::Config; use anyhow::{anyhow, Result}; use clap::Args; -use ethereum_consensus::networks::Network; use mev_build_rs::reth_builder::Service; +use tracing::info; #[derive(Debug, Args)] #[clap(about = "🛠️ building blocks since 2023")] @@ -12,14 +12,17 @@ pub struct Command { } impl Command { - pub async fn execute(&self, network: Network) -> Result<()> { + pub async fn execute(&self) -> Result<()> { let config_file = &self.config_file; let config = Config::from_toml_file(config_file)?; - if let Some(mut config) = config.build { - config.network = network; - Ok(Service::from(config).spawn().await) + let network = config.network; + info!("configured for {network}"); + + if let Some(config) = config.build { + Service::from(network, config).spawn().await; + Ok(()) } else { Err(anyhow!("missing boost config from file provided")) } diff --git a/bin/mev/src/cmd/build/mod.rs b/bin/mev/src/cmd/build/mod.rs deleted file mode 100644 index 43518faf..00000000 --- a/bin/mev/src/cmd/build/mod.rs +++ /dev/null @@ -1,21 +0,0 @@ -mod reth_ext; - -use anyhow::Result; -use clap::Args; -use reth_ext::{launch_reth_with, RethNodeExt}; - -#[derive(Debug, Args)] -#[clap(about = "🛠️ building blocks since 2023")] -pub struct Command { - #[clap(env, default_value = "config.toml")] - config_file: String, -} - -impl Command { - pub async fn execute(self) -> Result<()> { - let ext = - RethNodeExt { config_file: self.config_file.clone(), network: None, config: None }; - launch_reth_with(ext).await; - Ok(()) - } -} diff --git a/mev-build-rs/src/reth_builder/service.rs b/mev-build-rs/src/reth_builder/service.rs index 85b91339..c2624003 100644 --- a/mev-build-rs/src/reth_builder/service.rs +++ b/mev-build-rs/src/reth_builder/service.rs @@ -6,7 +6,6 @@ use crate::reth_builder::{ use ethereum_consensus::{ clock::{Clock, SystemTimeProvider}, crypto::SecretKey, - networks::Network, state_transition::Context, }; use ethers::signers::{coins_bip39::English, MnemonicBuilder, Signer}; @@ -22,8 +21,6 @@ const DEFAULT_BID_PERCENT: f64 = 0.9; #[derive(Deserialize, Debug, Default, Clone)] pub struct Config { - #[serde(default)] - pub network: Network, pub secret_key: SecretKey, pub relays: Vec, pub extra_data: String, diff --git a/mev-build-rs/src/reth_builder/service_ext.rs b/mev-build-rs/src/reth_builder/service_ext.rs index 08f22354..dcadc0b8 100644 --- a/mev-build-rs/src/reth_builder/service_ext.rs +++ b/mev-build-rs/src/reth_builder/service_ext.rs @@ -1,7 +1,7 @@ use crate::reth_builder::{service::Service, Config, DeadlineBidder}; use clap::{Args, Parser}; use ethereum_consensus::{ - networks::{self}, + networks::{self, Network}, state_transition::Context, }; use reth::{ @@ -16,13 +16,15 @@ use tracing::warn; #[derive(Debug, Args)] pub struct ServiceExt { + #[clap(skip)] + network: Network, #[clap(skip)] config: Config, } impl ServiceExt { - pub fn from(config: Config) -> Self { - Self { config } + pub fn from(network: Network, config: Config) -> Self { + Self { network, config } } pub async fn spawn(self) { @@ -30,7 +32,7 @@ impl ServiceExt { let task_executor = task_manager.executor(); let ctx = CliContext { task_executor }; - let network = &self.config.network; + let network = &self.network; let network_name = format!("{0}", network); let mut params = @@ -73,7 +75,7 @@ impl RethNodeCommandConfig for ServiceExt { Tasks: reth::tasks::TaskSpawner + Clone + Unpin + 'static, { let build_config = self.config.clone(); - let network = &build_config.network; + let network = &self.network; let context = Arc::new(Context::try_from(network)?); let clock = context.clock().unwrap_or_else(|| { let genesis_time = networks::typical_genesis_time(&context);