feat: no_std for reth-evm (#14561)

This commit is contained in:
Arsenii Kulikov
2025-02-18 16:54:56 +04:00
committed by GitHub
parent 67a98860e2
commit 29f4ca2a61
14 changed files with 20 additions and 12 deletions

View File

@ -16,6 +16,7 @@ crates_to_check=(
reth-execution-errors reth-execution-errors
reth-execution-types reth-execution-types
reth-db-models reth-db-models
reth-evm
## ethereum ## ethereum
reth-ethereum-forks reth-ethereum-forks

View File

@ -28,7 +28,6 @@ exclude_crates=(
reth-ethereum-cli reth-ethereum-cli
reth-ethereum-payload-builder reth-ethereum-payload-builder
reth-etl reth-etl
reth-evm
reth-exex reth-exex
reth-exex-test-utils reth-exex-test-utils
reth-ipc reth-ipc

View File

@ -346,7 +346,7 @@ reth-ethereum-payload-builder = { path = "crates/ethereum/payload" }
reth-ethereum-primitives = { path = "crates/ethereum/primitives", default-features = false } reth-ethereum-primitives = { path = "crates/ethereum/primitives", default-features = false }
reth-ethereum = { path = "crates/ethereum/reth" } reth-ethereum = { path = "crates/ethereum/reth" }
reth-etl = { path = "crates/etl" } reth-etl = { path = "crates/etl" }
reth-evm = { path = "crates/evm" } reth-evm = { path = "crates/evm", default-features = false }
reth-evm-ethereum = { path = "crates/ethereum/evm" } reth-evm-ethereum = { path = "crates/ethereum/evm" }
reth-optimism-evm = { path = "crates/optimism/evm", default-features = false } reth-optimism-evm = { path = "crates/optimism/evm", default-features = false }
reth-execution-errors = { path = "crates/evm/execution-errors", default-features = false } reth-execution-errors = { path = "crates/evm/execution-errors", default-features = false }
@ -559,7 +559,7 @@ async-stream = "0.3"
async-trait = "0.1.68" async-trait = "0.1.68"
futures = "0.3" futures = "0.3"
futures-core = "0.3" futures-core = "0.3"
futures-util = "0.3" futures-util = { version = "0.3", default-features = false }
hyper = "1.3" hyper = "1.3"
hyper-util = "0.1.5" hyper-util = "0.1.5"
pin-project = "1.0.12" pin-project = "1.0.12"

View File

@ -432,7 +432,7 @@ rustdocs: ## Runs `cargo docs` to generate the Rust documents in the `target/doc
cargo +nightly docs \ cargo +nightly docs \
--document-private-items --document-private-items
test: cargo-test:
cargo test \ cargo test \
--workspace \ --workspace \
--bin "op-reth" \ --bin "op-reth" \
@ -445,7 +445,7 @@ test-doc:
cargo test --doc --workspace --all-features cargo test --doc --workspace --all-features
test: test:
make test && \ make cargo-test && \
make test-doc make test-doc
pr: pr:

View File

@ -18,7 +18,7 @@ reth-consensus.workspace = true
reth-db.workspace = true reth-db.workspace = true
reth-engine-primitives.workspace = true reth-engine-primitives.workspace = true
reth-errors.workspace = true reth-errors.workspace = true
reth-evm.workspace = true reth-evm = { workspace = true, features = ["metrics"] }
reth-network-p2p.workspace = true reth-network-p2p.workspace = true
reth-payload-builder.workspace = true reth-payload-builder.workspace = true
reth-payload-primitives.workspace = true reth-payload-primitives.workspace = true

View File

@ -57,4 +57,5 @@ std = [
"reth-chainspec/std", "reth-chainspec/std",
"alloy-evm/std", "alloy-evm/std",
"reth-execution-types/std", "reth-execution-types/std",
"reth-evm/std",
] ]

View File

@ -49,6 +49,7 @@ std = [
"reth-consensus-common?/std", "reth-consensus-common?/std",
"alloy-rpc-types-eth?/std", "alloy-rpc-types-eth?/std",
"reth-storage-api?/std", "reth-storage-api?/std",
"reth-evm?/std",
] ]
arbitrary = [ arbitrary = [
"std", "std",

View File

@ -47,8 +47,6 @@ metrics-util = { workspace = true, features = ["debugging"] }
[features] [features]
default = ["std"] default = ["std"]
std = [ std = [
"dep:metrics",
"dep:reth-metrics",
"reth-consensus/std", "reth-consensus/std",
"reth-primitives/std", "reth-primitives/std",
"reth-primitives-traits/std", "reth-primitives-traits/std",
@ -66,6 +64,12 @@ std = [
"reth-execution-errors/std", "reth-execution-errors/std",
"reth-execution-types/std", "reth-execution-types/std",
"reth-storage-errors/std", "reth-storage-errors/std",
"futures-util/std",
]
metrics = [
"std",
"dep:metrics",
"dep:reth-metrics",
] ]
test-utils = [ test-utils = [
"dep:parking_lot", "dep:parking_lot",

View File

@ -36,7 +36,7 @@ pub mod execute;
mod aliases; mod aliases;
pub use aliases::*; pub use aliases::*;
#[cfg(feature = "std")] #[cfg(feature = "metrics")]
pub mod metrics; pub mod metrics;
pub mod noop; pub mod noop;
pub mod state_change; pub mod state_change;

View File

@ -8,13 +8,13 @@ use crate::{
system_calls::OnStateHook, system_calls::OnStateHook,
Database, Database,
}; };
use alloc::{sync::Arc, vec::Vec};
use alloy_eips::eip7685::Requests; use alloy_eips::eip7685::Requests;
use parking_lot::Mutex; use parking_lot::Mutex;
use reth_execution_errors::BlockExecutionError; use reth_execution_errors::BlockExecutionError;
use reth_execution_types::{BlockExecutionResult, ExecutionOutcome}; use reth_execution_types::{BlockExecutionResult, ExecutionOutcome};
use reth_primitives::{EthPrimitives, NodePrimitives, RecoveredBlock}; use reth_primitives::{EthPrimitives, NodePrimitives, RecoveredBlock};
use revm_database::State; use revm_database::State;
use std::sync::Arc;
/// A [`BlockExecutorProvider`] that returns mocked execution results. /// A [`BlockExecutorProvider`] that returns mocked execution results.
#[derive(Clone, Debug, Default)] #[derive(Clone, Debug, Default)]

View File

@ -82,4 +82,5 @@ std = [
"alloy-op-evm/std", "alloy-op-evm/std",
"revm-database/std", "revm-database/std",
"revm-optimism/std", "revm-optimism/std",
"reth-evm/std",
] ]

View File

@ -48,6 +48,7 @@ std = [
"reth-optimism-primitives/std", "reth-optimism-primitives/std",
"reth-primitives-traits/std", "reth-primitives-traits/std",
"reth-storage-api?/std", "reth-storage-api?/std",
"reth-evm?/std",
] ]
arbitrary = [ arbitrary = [
"std", "std",

View File

@ -20,7 +20,7 @@ reth-consensus.workspace = true
reth-db.workspace = true reth-db.workspace = true
reth-db-api.workspace = true reth-db-api.workspace = true
reth-etl.workspace = true reth-etl.workspace = true
reth-evm.workspace = true reth-evm = { workspace = true, features = ["metrics"] }
reth-exex.workspace = true reth-exex.workspace = true
reth-fs-util.workspace = true reth-fs-util.workspace = true
reth-network-p2p.workspace = true reth-network-p2p.workspace = true

View File

@ -15,7 +15,7 @@ workspace = true
# async # async
tokio = { workspace = true, features = ["sync", "rt"] } tokio = { workspace = true, features = ["sync", "rt"] }
tracing-futures.workspace = true tracing-futures.workspace = true
futures-util.workspace = true futures-util = { workspace = true, features = ["std"] }
# metrics # metrics
reth-metrics.workspace = true reth-metrics.workspace = true