Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 4 additions & 13 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,8 @@ repository = "https://github.com/base/node-reth"

[workspace]
resolver = "2"
members = [
"crates/flashblocks-rpc",
"crates/metering",
"crates/node",
"crates/test-utils",
"crates/transaction-status",
"crates/transaction-tracing",
]

default-members = ["crates/node"]
members = ["bin/*", "crates/*"]
default-members = ["bin/node"]

[workspace.lints]

Expand All @@ -40,12 +32,11 @@ codegen-units = 1

[workspace.dependencies]
# internal
base-reth-flashblocks-rpc = { path = "crates/flashblocks-rpc" }
base-reth-metering = { path = "crates/metering" }
base-reth-node = { path = "crates/node" }
base-reth-test-utils = { path = "crates/test-utils" }
base-reth-transaction-tracing = { path = "crates/transaction-tracing" }
base-reth-flashblocks-rpc = { path = "crates/flashblocks-rpc" }
base-reth-transaction-status = { path = "crates/transaction-status" }
base-reth-transaction-tracing = { path = "crates/transaction-tracing" }

# base/tips
# Note: default-features = false avoids version conflicts with reth's alloy/op-alloy dependencies
Expand Down
7 changes: 4 additions & 3 deletions crates/node/Cargo.toml → bin/node/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
[package]
name = "base-reth-node"
description = "Base Reth Binary"

version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Base Reth Binary"

[lints]
workspace = true

[dependencies]
# internal
base-reth-flashblocks-rpc.workspace = true
base-reth-metering.workspace = true
base-reth-transaction-tracing.workspace = true
base-reth-flashblocks-rpc.workspace = true
base-reth-transaction-status.workspace = true
base-reth-transaction-tracing.workspace = true

# reth
reth.workspace = true
Expand Down
47 changes: 47 additions & 0 deletions bin/node/src/cli.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
//! Contains the CLI arguments

use reth_optimism_node::args::RollupArgs;

/// CLI Arguments
#[derive(Debug, Clone, PartialEq, Eq, clap::Args)]
#[command(next_help_heading = "Rollup")]
pub struct Args {
/// Rollup arguments
#[command(flatten)]
pub rollup_args: RollupArgs,

/// The websocket url used for flashblocks.
#[arg(long = "websocket-url", value_name = "WEBSOCKET_URL")]
pub websocket_url: Option<String>,

/// The mac pending blocks depth.
#[arg(
long = "max-pending-blocks-depth",
value_name = "MAX_PENDING_BLOCKS_DEPTH",
default_value = "3"
)]
pub max_pending_blocks_depth: u64,

/// Enable transaction tracing ExEx for mempool-to-block timing analysis
#[arg(long = "enable-transaction-tracing", value_name = "ENABLE_TRANSACTION_TRACING")]
pub enable_transaction_tracing: bool,

/// Enable `info` logs for transaction tracing
#[arg(
long = "enable-transaction-tracing-logs",
value_name = "ENABLE_TRANSACTION_TRACING_LOGS"
)]
pub enable_transaction_tracing_logs: bool,

/// Enable metering RPC for transaction bundle simulation
#[arg(long = "enable-metering", value_name = "ENABLE_METERING")]
pub enable_metering: bool,
}

impl Args {
/// Returns if flashblocks is enabled.
/// If the websocket url is specified through the CLI.
pub fn flashblocks_enabled(&self) -> bool {
self.websocket_url.is_some()
}
}
43 changes: 4 additions & 39 deletions crates/node/src/main.rs → bin/node/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,53 +18,18 @@ use reth::{
};
use reth_exex::ExExEvent;
use reth_optimism_cli::{Cli, chainspec::OpChainSpecParser};
use reth_optimism_node::{OpNode, args::RollupArgs};
use reth_optimism_node::OpNode;
use tracing::info;
use url::Url;

pub mod cli;
pub use cli::Args;

pub const NODE_RETH_CLIENT_VERSION: &str = concat!("base/v", env!("CARGO_PKG_VERSION"));

#[global_allocator]
static ALLOC: reth_cli_util::allocator::Allocator = reth_cli_util::allocator::new_allocator();

#[derive(Debug, Clone, PartialEq, Eq, clap::Args)]
#[command(next_help_heading = "Rollup")]
struct Args {
#[command(flatten)]
pub rollup_args: RollupArgs,

#[arg(long = "websocket-url", value_name = "WEBSOCKET_URL")]
pub websocket_url: Option<String>,

#[arg(
long = "max-pending-blocks-depth",
value_name = "MAX_PENDING_BLOCKS_DEPTH",
default_value = "3"
)]
pub max_pending_blocks_depth: u64,

/// Enable transaction tracing ExEx for mempool-to-block timing analysis
#[arg(long = "enable-transaction-tracing", value_name = "ENABLE_TRANSACTION_TRACING")]
pub enable_transaction_tracing: bool,

/// Enable `info` logs for transaction tracing
#[arg(
long = "enable-transaction-tracing-logs",
value_name = "ENABLE_TRANSACTION_TRACING_LOGS"
)]
pub enable_transaction_tracing_logs: bool,

/// Enable metering RPC for transaction bundle simulation
#[arg(long = "enable-metering", value_name = "ENABLE_METERING")]
pub enable_metering: bool,
}

impl Args {
fn flashblocks_enabled(&self) -> bool {
self.websocket_url.is_some()
}
}

fn main() {
let default_version_metadata = default_reth_version_metadata();
try_init_version_metadata(RethCliVersionConsts {
Expand Down
3 changes: 1 addition & 2 deletions crates/test-utils/src/harness.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ impl TestHarness {

pub async fn build_block_from_transactions(&self, mut transactions: Vec<Bytes>) -> Result<()> {
// Ensure the block always starts with the required L1 block info deposit.
if !transactions.first().is_some_and(|tx| tx == &L1_BLOCK_INFO_DEPOSIT_TX) {
if transactions.first().is_none_or(|tx| tx != &L1_BLOCK_INFO_DEPOSIT_TX) {
transactions.insert(0, L1_BLOCK_INFO_DEPOSIT_TX.clone());
}

Expand Down Expand Up @@ -118,7 +118,6 @@ impl TestHarness {
no_tx_pool: Some(true),
min_base_fee: Some(min_base_fee),
eip_1559_params: Some(B64::from(eip_1559_params)),
..Default::default()
};

let forkchoice_result = self
Expand Down
1 change: 1 addition & 0 deletions crates/test-utils/src/node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ struct FlashblocksNodeExtensions {

struct FlashblocksNodeExtensionsInner {
sender: mpsc::Sender<(Flashblock, oneshot::Sender<()>)>,
#[allow(clippy::type_complexity)]
receiver: Arc<Mutex<Option<mpsc::Receiver<(Flashblock, oneshot::Sender<()>)>>>>,
fb_cell: Arc<OnceCell<Arc<LocalFlashblocksState>>>,
process_canonical: bool,
Expand Down