diff --git a/Cargo.toml b/Cargo.toml index 6b34160302d..9d7407d9eef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,6 @@ [workspace] members = [ "account_manager", - "beacon_node", "beacon_node/beacon_chain", "beacon_node/beacon_processor", @@ -17,9 +16,7 @@ members = [ "beacon_node/operation_pool", "beacon_node/store", "beacon_node/timer", - "boot_node", - "common/account_utils", "common/clap_utils", "common/compare_fields", @@ -52,7 +49,6 @@ members = [ "common/validator_dir", "common/warp_utils", "common/workspace_members", - "consensus/context_deserialize", "consensus/context_deserialize_derive", "consensus/fixed_bytes", @@ -64,23 +60,17 @@ members = [ "consensus/state_processing", "consensus/swap_or_not_shuffle", "consensus/types", - "crypto/bls", "crypto/eth2_key_derivation", "crypto/eth2_keystore", "crypto/eth2_wallet", "crypto/kzg", - "database_manager", - "lcli", - "lighthouse", "lighthouse/environment", - "slasher", "slasher/service", - "testing/ef_tests", "testing/eth1_test_rig", "testing/execution_engine_integration", @@ -89,8 +79,6 @@ members = [ "testing/state_transition_vectors", "testing/validator_test_rig", "testing/web3signer_tests", - - "validator_client", "validator_client/beacon_node_fallback", "validator_client/doppelganger_service", @@ -103,7 +91,6 @@ members = [ "validator_client/slashing_protection", "validator_client/validator_metrics", "validator_client/validator_services", - "validator_manager", ] resolver = "2" @@ -112,63 +99,107 @@ resolver = "2" edition = "2021" [workspace.dependencies] +account_utils = { path = "common/account_utils" } +alloy-consensus = "0.3.0" alloy-primitives = { version = "0.8", features = ["rlp", "getrandom"] } alloy-rlp = "0.3.4" -alloy-consensus = "0.3.0" anyhow = "1" arbitrary = { version = "1", features = ["derive"] } async-channel = "1.9.0" axum = "0.7.7" +beacon_chain = { path = "beacon_node/beacon_chain" } +beacon_node = { path = "beacon_node" } +beacon_node_fallback = { path = "validator_client/beacon_node_fallback" } +beacon_processor = { path = "beacon_node/beacon_processor" } bincode = "1" bitvec = "1" +bls = { path = "crypto/bls" } byteorder = "1" bytes = "1" -cargo_metadata = "0.19" -clap = { version = "4.5.4", features = ["derive", "cargo", "wrap_help"] } # Turn off c-kzg's default features which include `blst/portable`. We can turn on blst's portable # feature ourselves when desired. c-kzg = { version = "1", default-features = false } +cargo_metadata = "0.19" +clap = { version = "4.5.4", features = ["derive", "cargo", "wrap_help"] } +clap_utils = { path = "common/clap_utils" } +compare_fields = { path = "common/compare_fields" } compare_fields_derive = { path = "common/compare_fields_derive" } context_deserialize = { path = "consensus/context_deserialize" } context_deserialize_derive = { path = "consensus/context_deserialize_derive" } criterion = "0.5" delay_map = "0.4" +deposit_contract = { path = "common/deposit_contract" } derivative = "2" +directory = { path = "common/directory" } dirs = "3" -either = "1.9" -rust_eth_kzg = "0.5.4" discv5 = { version = "0.9", features = ["libp2p"] } +doppelganger_service = { path = "validator_client/doppelganger_service" } +either = "1.9" env_logger = "0.9" +environment = { path = "lighthouse/environment" } +eth1 = { path = "beacon_node/eth1" } +eth1_test_rig = { path = "testing/eth1_test_rig" } +eth2 = { path = "common/eth2" } +eth2_config = { path = "common/eth2_config" } +eth2_key_derivation = { path = "crypto/eth2_key_derivation" } +eth2_keystore = { path = "crypto/eth2_keystore" } +eth2_network_config = { path = "common/eth2_network_config" } +eth2_wallet = { path = "crypto/eth2_wallet" } ethereum_hashing = "0.7.0" ethereum_serde_utils = "0.7" ethereum_ssz = "0.8.2" ethereum_ssz_derive = "0.8.2" ethers-core = "1" +ethers-middleware = { version = "1", default-features = false } ethers-providers = { version = "1", default-features = false } ethers-signers = { version = "1", default-features = false } -ethers-middleware = { version = "1", default-features = false } +execution_layer = { path = "beacon_node/execution_layer" } exit-future = "0.2" +filesystem = { path = "common/filesystem" } +fixed_bytes = { path = "consensus/fixed_bytes" } fnv = "1" +fork_choice = { path = "consensus/fork_choice" } fs2 = "0.4" futures = "0.3" -graffiti_file = { path = "validator_client/graffiti_file" } +genesis = { path = "beacon_node/genesis" } gossipsub = { package = "libp2p-gossipsub", git = "https://github.com/sigp/rust-libp2p.git", rev = "61b2820" } -hex = "0.4" +graffiti_file = { path = "validator_client/graffiti_file" } hashlink = "0.9.0" +health_metrics = { path = "common/health_metrics" } +hex = "0.4" +http_api = { path = "beacon_node/http_api" } hyper = "1" +initialized_validators = { path = "validator_client/initialized_validators" } +int_to_bytes = { path = "consensus/int_to_bytes" } itertools = "0.10" +kzg = { path = "crypto/kzg" } libsecp256k1 = "0.7" +lighthouse_network = { path = "beacon_node/lighthouse_network" } +lighthouse_validator_store = { path = "validator_client/lighthouse_validator_store" } +lighthouse_version = { path = "common/lighthouse_version" } +lockfile = { path = "common/lockfile" } log = "0.4" +logging = { path = "common/logging" } logroller = "0.1.8" lru = "0.12" +lru_cache = { path = "common/lru_cache" } +malloc_utils = { path = "common/malloc_utils" } maplit = "1" +merkle_proof = { path = "consensus/merkle_proof" } +metrics = { path = "common/metrics" } milhouse = "0.5" mockito = "1.5.0" +monitoring_api = { path = "common/monitoring_api" } +network = { path = "beacon_node/network" } +node_test_rig = { path = "testing/node_test_rig" } num_cpus = "1" once_cell = "1.17.1" +operation_pool = { path = "beacon_node/operation_pool" } parking_lot = "0.12" paste = "1" +pretty_reqwest_error = { path = "common/pretty_reqwest_error" } prometheus = { version = "0.13", default-features = false } +proto_array = { path = "consensus/proto_array" } quickcheck = "1" quickcheck_macros = "1" quote = "1" @@ -186,18 +217,30 @@ reqwest = { version = "0.11", default-features = false, features = [ ring = "0.17" rpds = "0.11" rusqlite = { version = "0.28", features = ["bundled"] } +rust_eth_kzg = "0.5.4" +safe_arith = { path = "consensus/safe_arith" } +sensitive_url = { path = "common/sensitive_url" } serde = { version = "1", features = ["derive"] } serde_json = "1" serde_repr = "0.1" serde_yaml = "0.9" sha2 = "0.9" +signing_method = { path = "validator_client/signing_method" } +slasher = { path = "slasher", default-features = false } +slashing_protection = { path = "validator_client/slashing_protection" } +slot_clock = { path = "common/slot_clock" } smallvec = { version = "1.11.2", features = ["arbitrary"] } snap = "1" ssz_types = "0.10" +state_processing = { path = "consensus/state_processing" } +store = { path = "beacon_node/store" } strum = { version = "0.24", features = ["derive"] } superstruct = "0.8" +swap_or_not_shuffle = { path = "consensus/swap_or_not_shuffle" } syn = "1" sysinfo = "0.26" +system_health = { path = "common/system_health" } +task_executor = { path = "common/task_executor" } tempfile = "3" tokio = { version = "1", features = [ "rt-multi-thread", @@ -214,72 +257,10 @@ tracing-log = "0.2" tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } tree_hash = "0.9" tree_hash_derive = "0.9" -url = "2" -uuid = { version = "0.8", features = ["serde", "v4"] } -warp = { version = "0.3.7", default-features = false, features = ["tls"] } -zeroize = { version = "1", features = ["zeroize_derive", "serde"] } -zip = "0.6" - -# Local crates. -account_utils = { path = "common/account_utils" } -beacon_chain = { path = "beacon_node/beacon_chain" } -beacon_node = { path = "beacon_node" } -beacon_node_fallback = { path = "validator_client/beacon_node_fallback" } -beacon_processor = { path = "beacon_node/beacon_processor" } -bls = { path = "crypto/bls" } -clap_utils = { path = "common/clap_utils" } -compare_fields = { path = "common/compare_fields" } -deposit_contract = { path = "common/deposit_contract" } -directory = { path = "common/directory" } -doppelganger_service = { path = "validator_client/doppelganger_service" } -environment = { path = "lighthouse/environment" } -eth1 = { path = "beacon_node/eth1" } -eth1_test_rig = { path = "testing/eth1_test_rig" } -eth2 = { path = "common/eth2" } -eth2_config = { path = "common/eth2_config" } -eth2_key_derivation = { path = "crypto/eth2_key_derivation" } -eth2_keystore = { path = "crypto/eth2_keystore" } -eth2_network_config = { path = "common/eth2_network_config" } -eth2_wallet = { path = "crypto/eth2_wallet" } -execution_layer = { path = "beacon_node/execution_layer" } -fixed_bytes = { path = "consensus/fixed_bytes" } -filesystem = { path = "common/filesystem" } -fork_choice = { path = "consensus/fork_choice" } -genesis = { path = "beacon_node/genesis" } -health_metrics = { path = "common/health_metrics" } -http_api = { path = "beacon_node/http_api" } -initialized_validators = { path = "validator_client/initialized_validators" } -int_to_bytes = { path = "consensus/int_to_bytes" } -kzg = { path = "crypto/kzg" } -metrics = { path = "common/metrics" } -lighthouse_network = { path = "beacon_node/lighthouse_network" } -lighthouse_validator_store = { path = "validator_client/lighthouse_validator_store" } -lighthouse_version = { path = "common/lighthouse_version" } -workspace_members = { path = "common/workspace_members" } -lockfile = { path = "common/lockfile" } -logging = { path = "common/logging" } -lru_cache = { path = "common/lru_cache" } -malloc_utils = { path = "common/malloc_utils" } -merkle_proof = { path = "consensus/merkle_proof" } -monitoring_api = { path = "common/monitoring_api" } -network = { path = "beacon_node/network" } -node_test_rig = { path = "testing/node_test_rig" } -operation_pool = { path = "beacon_node/operation_pool" } -pretty_reqwest_error = { path = "common/pretty_reqwest_error" } -proto_array = { path = "consensus/proto_array" } -safe_arith = { path = "consensus/safe_arith" } -sensitive_url = { path = "common/sensitive_url" } -signing_method = { path = "validator_client/signing_method" } -slasher = { path = "slasher", default-features = false } -slashing_protection = { path = "validator_client/slashing_protection" } -slot_clock = { path = "common/slot_clock" } -state_processing = { path = "consensus/state_processing" } -store = { path = "beacon_node/store" } -swap_or_not_shuffle = { path = "consensus/swap_or_not_shuffle" } -system_health = { path = "common/system_health" } -task_executor = { path = "common/task_executor" } types = { path = "consensus/types" } unused_port = { path = "common/unused_port" } +url = "2" +uuid = { version = "0.8", features = ["serde", "v4"] } validator_client = { path = "validator_client" } validator_dir = { path = "common/validator_dir" } validator_http_api = { path = "validator_client/http_api" } @@ -288,8 +269,12 @@ validator_metrics = { path = "validator_client/validator_metrics" } validator_services = { path = "validator_client/validator_services" } validator_store = { path = "validator_client/validator_store" } validator_test_rig = { path = "testing/validator_test_rig" } +warp = { version = "0.3.7", default-features = false, features = ["tls"] } warp_utils = { path = "common/warp_utils" } +workspace_members = { path = "common/workspace_members" } xdelta3 = { git = "http://github.com/sigp/xdelta3-rs", rev = "4db64086bb02e9febb584ba93b9d16bb2ae3825a" } +zeroize = { version = "1", features = ["zeroize_derive", "serde"] } +zip = "0.6" zstd = "0.13" [profile.maxperf] diff --git a/beacon_node/Cargo.toml b/beacon_node/Cargo.toml index 30d6846964f..596419c33e3 100644 --- a/beacon_node/Cargo.toml +++ b/beacon_node/Cargo.toml @@ -11,9 +11,6 @@ edition = { workspace = true } name = "beacon_node" path = "src/lib.rs" -[dev-dependencies] -node_test_rig = { path = "../testing/node_test_rig" } - [features] write_ssz_files = [ "beacon_chain/write_ssz_files", @@ -45,3 +42,6 @@ task_executor = { workspace = true } tracing = { workspace = true } types = { workspace = true } unused_port = { workspace = true } + +[dev-dependencies] +node_test_rig = { path = "../testing/node_test_rig" } diff --git a/beacon_node/beacon_chain/Cargo.toml b/beacon_node/beacon_chain/Cargo.toml index 18b40cab7ef..bbe7fad6aff 100644 --- a/beacon_node/beacon_chain/Cargo.toml +++ b/beacon_node/beacon_chain/Cargo.toml @@ -5,10 +5,6 @@ authors = ["Paul Hauner ", "Age Manning "] edition = { workspace = true } -[dev-dependencies] -operation_pool = { workspace = true } -serde_yaml = { workspace = true } -state_processing = { workspace = true } -tokio = { workspace = true } - [dependencies] beacon_chain = { workspace = true } beacon_processor = { workspace = true } @@ -46,3 +40,9 @@ tokio = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true } types = { workspace = true } + +[dev-dependencies] +operation_pool = { workspace = true } +serde_yaml = { workspace = true } +state_processing = { workspace = true } +tokio = { workspace = true } diff --git a/beacon_node/eth1/Cargo.toml b/beacon_node/eth1/Cargo.toml index fa08364251c..f834ad7eef5 100644 --- a/beacon_node/eth1/Cargo.toml +++ b/beacon_node/eth1/Cargo.toml @@ -4,11 +4,6 @@ version = "0.2.0" authors = ["Paul Hauner "] edition = { workspace = true } -[dev-dependencies] -environment = { workspace = true } -eth1_test_rig = { workspace = true } -serde_yaml = { workspace = true } - [dependencies] eth2 = { workspace = true } ethereum_ssz = { workspace = true } @@ -28,3 +23,8 @@ tokio = { workspace = true } tracing = { workspace = true } tree_hash = { workspace = true } types = { workspace = true } + +[dev-dependencies] +environment = { workspace = true } +eth1_test_rig = { workspace = true } +serde_yaml = { workspace = true } diff --git a/beacon_node/genesis/Cargo.toml b/beacon_node/genesis/Cargo.toml index 6ba8998a01d..f752b888a77 100644 --- a/beacon_node/genesis/Cargo.toml +++ b/beacon_node/genesis/Cargo.toml @@ -4,11 +4,6 @@ version = "0.2.0" authors = ["Paul Hauner "] edition = { workspace = true } -[dev-dependencies] -eth1_test_rig = { workspace = true } -logging = { workspace = true } -sensitive_url = { workspace = true } - [dependencies] environment = { workspace = true } eth1 = { workspace = true } @@ -23,3 +18,8 @@ tokio = { workspace = true } tracing = { workspace = true } tree_hash = { workspace = true } types = { workspace = true } + +[dev-dependencies] +eth1_test_rig = { workspace = true } +logging = { workspace = true } +sensitive_url = { workspace = true } diff --git a/beacon_node/lighthouse_network/Cargo.toml b/beacon_node/lighthouse_network/Cargo.toml index 4f1825af201..3ee967eeee2 100644 --- a/beacon_node/lighthouse_network/Cargo.toml +++ b/beacon_node/lighthouse_network/Cargo.toml @@ -4,6 +4,9 @@ version = "0.2.0" authors = ["Sigma Prime "] edition = { workspace = true } +[features] +libp2p-websocket = [] + [dependencies] alloy-primitives = { workspace = true } alloy-rlp = { workspace = true } @@ -53,7 +56,21 @@ unused_port = { workspace = true } [dependencies.libp2p] version = "0.55" default-features = false -features = ["identify", "yamux", "noise", "dns", "tcp", "tokio", "plaintext", "secp256k1", "macros", "ecdsa", "metrics", "quic", "upnp"] +features = [ + "identify", + "yamux", + "noise", + "dns", + "tcp", + "tokio", + "plaintext", + "secp256k1", + "macros", + "ecdsa", + "metrics", + "quic", + "upnp", +] [dev-dependencies] async-channel = { workspace = true } @@ -61,6 +78,3 @@ logging = { workspace = true } quickcheck = { workspace = true } quickcheck_macros = { workspace = true } tempfile = { workspace = true } - -[features] -libp2p-websocket = [] diff --git a/beacon_node/network/Cargo.toml b/beacon_node/network/Cargo.toml index e9bd850089b..cdb6ba7a83f 100644 --- a/beacon_node/network/Cargo.toml +++ b/beacon_node/network/Cargo.toml @@ -4,17 +4,12 @@ version = "0.2.0" authors = ["Sigma Prime "] edition = { workspace = true } -[dev-dependencies] -bls = { workspace = true } -eth2 = { workspace = true } -eth2_network_config = { workspace = true } -genesis = { workspace = true } -gossipsub = { workspace = true } -k256 = "0.13.4" -kzg = { workspace = true } -matches = "0.1.8" -rand_chacha = "0.3.1" -serde_json = { workspace = true } +[features] +# NOTE: This can be run via cargo build --bin lighthouse --features network/disable-backfill +disable-backfill = [] +fork_from_env = ["beacon_chain/fork_from_env"] +portable = ["beacon_chain/portable"] +test_logger = [] [dependencies] alloy-primitives = { workspace = true } @@ -51,9 +46,14 @@ tracing = { workspace = true } tracing-subscriber = { workspace = true } types = { workspace = true } -[features] -# NOTE: This can be run via cargo build --bin lighthouse --features network/disable-backfill -disable-backfill = [] -fork_from_env = ["beacon_chain/fork_from_env"] -portable = ["beacon_chain/portable"] -test_logger = [] +[dev-dependencies] +bls = { workspace = true } +eth2 = { workspace = true } +eth2_network_config = { workspace = true } +genesis = { workspace = true } +gossipsub = { workspace = true } +k256 = "0.13.4" +kzg = { workspace = true } +matches = "0.1.8" +rand_chacha = "0.3.1" +serde_json = { workspace = true } diff --git a/beacon_node/operation_pool/Cargo.toml b/beacon_node/operation_pool/Cargo.toml index 570b74226c9..beaf8188824 100644 --- a/beacon_node/operation_pool/Cargo.toml +++ b/beacon_node/operation_pool/Cargo.toml @@ -4,6 +4,9 @@ version = "0.2.0" authors = ["Michael Sproul "] edition = { workspace = true } +[features] +portable = ["beacon_chain/portable"] + [dependencies] bitvec = { workspace = true } derivative = { workspace = true } @@ -23,6 +26,3 @@ types = { workspace = true } beacon_chain = { workspace = true } maplit = { workspace = true } tokio = { workspace = true } - -[features] -portable = ["beacon_chain/portable"] diff --git a/beacon_node/store/Cargo.toml b/beacon_node/store/Cargo.toml index 908f0759a90..13df83efabb 100644 --- a/beacon_node/store/Cargo.toml +++ b/beacon_node/store/Cargo.toml @@ -9,12 +9,6 @@ default = ["leveldb"] leveldb = ["dep:leveldb"] redb = ["dep:redb"] -[dev-dependencies] -beacon_chain = { workspace = true } -criterion = { workspace = true } -rand = { workspace = true, features = ["small_rng"] } -tempfile = { workspace = true } - [dependencies] bls = { workspace = true } db-key = "0.0.5" @@ -40,6 +34,12 @@ types = { workspace = true } xdelta3 = { workspace = true } zstd = { workspace = true } +[dev-dependencies] +beacon_chain = { workspace = true } +criterion = { workspace = true } +rand = { workspace = true, features = ["small_rng"] } +tempfile = { workspace = true } + [[bench]] name = "hdiff" harness = false diff --git a/common/compare_fields/Cargo.toml b/common/compare_fields/Cargo.toml index 9972ca75ca6..50e7e5f21d2 100644 --- a/common/compare_fields/Cargo.toml +++ b/common/compare_fields/Cargo.toml @@ -4,11 +4,11 @@ version = "0.2.0" authors = ["Paul Hauner "] edition = { workspace = true } +[package.metadata.cargo-udeps.ignore] +development = ["compare_fields_derive"] # used in doc-tests + [dependencies] itertools = { workspace = true } [dev-dependencies] compare_fields_derive = { workspace = true } - -[package.metadata.cargo-udeps.ignore] -development = ["compare_fields_derive"] # used in doc-tests diff --git a/common/deposit_contract/Cargo.toml b/common/deposit_contract/Cargo.toml index 953fde1af72..767f67b853f 100644 --- a/common/deposit_contract/Cargo.toml +++ b/common/deposit_contract/Cargo.toml @@ -6,14 +6,14 @@ edition = { workspace = true } build = "build.rs" -[build-dependencies] -hex = { workspace = true } -reqwest = { workspace = true } -serde_json = { workspace = true } -sha2 = { workspace = true } - [dependencies] ethabi = "16.0.0" ethereum_ssz = { workspace = true } tree_hash = { workspace = true } types = { workspace = true } + +[build-dependencies] +hex = { workspace = true } +reqwest = { workspace = true } +serde_json = { workspace = true } +sha2 = { workspace = true } diff --git a/common/eth2/Cargo.toml b/common/eth2/Cargo.toml index 5d0ad1f45e0..81666a64216 100644 --- a/common/eth2/Cargo.toml +++ b/common/eth2/Cargo.toml @@ -4,6 +4,10 @@ version = "0.1.0" authors = ["Paul Hauner "] edition = { workspace = true } +[features] +default = ["lighthouse"] +lighthouse = [] + [dependencies] derivative = { workspace = true } either = { workspace = true } @@ -33,7 +37,3 @@ zeroize = { workspace = true } [dev-dependencies] tokio = { workspace = true } - -[features] -default = ["lighthouse"] -lighthouse = [] diff --git a/common/eth2_network_config/Cargo.toml b/common/eth2_network_config/Cargo.toml index da6c4dfd95a..ec5b0cc1d71 100644 --- a/common/eth2_network_config/Cargo.toml +++ b/common/eth2_network_config/Cargo.toml @@ -6,15 +6,6 @@ edition = { workspace = true } build = "build.rs" -[build-dependencies] -eth2_config = { workspace = true } -zip = { workspace = true } - -[dev-dependencies] -ethereum_ssz = { workspace = true } -tempfile = { workspace = true } -tokio = { workspace = true } - [dependencies] bytes = { workspace = true } discv5 = { workspace = true } @@ -28,3 +19,12 @@ sha2 = { workspace = true } tracing = { workspace = true } types = { workspace = true } url = { workspace = true } + +[build-dependencies] +eth2_config = { workspace = true } +zip = { workspace = true } + +[dev-dependencies] +ethereum_ssz = { workspace = true } +tempfile = { workspace = true } +tokio = { workspace = true } diff --git a/common/health_metrics/Cargo.toml b/common/health_metrics/Cargo.toml index 08591471b20..20a8c6e4e48 100644 --- a/common/health_metrics/Cargo.toml +++ b/common/health_metrics/Cargo.toml @@ -8,5 +8,5 @@ eth2 = { workspace = true } metrics = { workspace = true } [target.'cfg(target_os = "linux")'.dependencies] -psutil = "3.3.0" procfs = "0.15.1" +psutil = "3.3.0" diff --git a/common/malloc_utils/Cargo.toml b/common/malloc_utils/Cargo.toml index 64fb7b9aadd..89973493b4e 100644 --- a/common/malloc_utils/Cargo.toml +++ b/common/malloc_utils/Cargo.toml @@ -4,23 +4,23 @@ version = "0.1.0" authors = ["Paul Hauner "] edition = { workspace = true } +[features] +mallinfo2 = [] +jemalloc = ["tikv-jemallocator", "tikv-jemalloc-ctl"] +jemalloc-profiling = ["tikv-jemallocator/profiling"] + [dependencies] libc = "0.2.79" metrics = { workspace = true } parking_lot = { workspace = true } tikv-jemalloc-ctl = { version = "0.6.0", optional = true, features = ["stats"] } +[target.'cfg(not(target_os = "linux"))'.dependencies] +tikv-jemallocator = { version = "0.6.0", optional = true, features = ["stats"] } + # Jemalloc's background_threads feature requires Linux (pthreads). [target.'cfg(target_os = "linux")'.dependencies] tikv-jemallocator = { version = "0.6.0", optional = true, features = [ "stats", "background_threads", ] } - -[target.'cfg(not(target_os = "linux"))'.dependencies] -tikv-jemallocator = { version = "0.6.0", optional = true, features = ["stats"] } - -[features] -mallinfo2 = [] -jemalloc = ["tikv-jemallocator", "tikv-jemalloc-ctl"] -jemalloc-profiling = ["tikv-jemallocator/profiling"] diff --git a/consensus/merkle_proof/Cargo.toml b/consensus/merkle_proof/Cargo.toml index 2f721d917b5..d750c054060 100644 --- a/consensus/merkle_proof/Cargo.toml +++ b/consensus/merkle_proof/Cargo.toml @@ -4,6 +4,9 @@ version = "0.2.0" authors = ["Michael Sproul "] edition = { workspace = true } +[features] +arbitrary = ["alloy-primitives/arbitrary"] + [dependencies] alloy-primitives = { workspace = true } ethereum_hashing = { workspace = true } @@ -13,6 +16,3 @@ safe_arith = { workspace = true } [dev-dependencies] quickcheck = { workspace = true } quickcheck_macros = { workspace = true } - -[features] -arbitrary = ["alloy-primitives/arbitrary"] diff --git a/consensus/state_processing/Cargo.toml b/consensus/state_processing/Cargo.toml index 502ffe3cf65..7ada4488f29 100644 --- a/consensus/state_processing/Cargo.toml +++ b/consensus/state_processing/Cargo.toml @@ -4,10 +4,18 @@ version = "0.2.0" authors = ["Paul Hauner ", "Michael Sproul "] edition = { workspace = true } -[dev-dependencies] -beacon_chain = { workspace = true } -env_logger = { workspace = true } -tokio = { workspace = true } +[features] +default = ["legacy-arith"] +fake_crypto = ["bls/fake_crypto"] +legacy-arith = ["types/legacy-arith"] +arbitrary-fuzz = [ + "types/arbitrary-fuzz", + "merkle_proof/arbitrary", + "ethereum_ssz/arbitrary", + "ssz_types/arbitrary", + "tree_hash/arbitrary", +] +portable = ["bls/supranational-portable"] [dependencies] arbitrary = { workspace = true } @@ -30,15 +38,7 @@ test_random_derive = { path = "../../common/test_random_derive" } tree_hash = { workspace = true } types = { workspace = true } -[features] -default = ["legacy-arith"] -fake_crypto = ["bls/fake_crypto"] -legacy-arith = ["types/legacy-arith"] -arbitrary-fuzz = [ - "types/arbitrary-fuzz", - "merkle_proof/arbitrary", - "ethereum_ssz/arbitrary", - "ssz_types/arbitrary", - "tree_hash/arbitrary", -] -portable = ["bls/supranational-portable"] +[dev-dependencies] +beacon_chain = { workspace = true } +env_logger = { workspace = true } +tokio = { workspace = true } diff --git a/consensus/swap_or_not_shuffle/Cargo.toml b/consensus/swap_or_not_shuffle/Cargo.toml index dac83e7553f..b6fdc1a728f 100644 --- a/consensus/swap_or_not_shuffle/Cargo.toml +++ b/consensus/swap_or_not_shuffle/Cargo.toml @@ -4,17 +4,17 @@ version = "0.2.0" authors = ["Paul Hauner "] edition = { workspace = true } -[[bench]] -name = "benches" -harness = false - -[dev-dependencies] -criterion = { workspace = true } +[features] +arbitrary = ["alloy-primitives/arbitrary"] [dependencies] alloy-primitives = { workspace = true } ethereum_hashing = { workspace = true } fixed_bytes = { workspace = true } -[features] -arbitrary = ["alloy-primitives/arbitrary"] +[dev-dependencies] +criterion = { workspace = true } + +[[bench]] +name = "benches" +harness = false diff --git a/consensus/types/Cargo.toml b/consensus/types/Cargo.toml index b58d4ef96f3..ec6835defca 100644 --- a/consensus/types/Cargo.toml +++ b/consensus/types/Cargo.toml @@ -4,9 +4,15 @@ version = "0.2.1" authors = ["Paul Hauner ", "Age Manning "] edition = { workspace = true } -[[bench]] -name = "benches" -harness = false +[features] +default = ["sqlite", "legacy-arith"] +# Allow saturating arithmetic on slots and epochs. Enabled by default, but deprecated. +legacy-arith = [] +sqlite = ["dep:rusqlite"] +# The `arbitrary-fuzz` feature is a no-op provided for backwards compatibility. +# For simplicity `Arbitrary` is now derived regardless of the feature's presence. +arbitrary-fuzz = [] +portable = ["bls/supranational-portable"] [dependencies] alloy-primitives = { workspace = true } @@ -62,12 +68,6 @@ paste = { workspace = true } state_processing = { workspace = true } tokio = { workspace = true } -[features] -default = ["sqlite", "legacy-arith"] -# Allow saturating arithmetic on slots and epochs. Enabled by default, but deprecated. -legacy-arith = [] -sqlite = ["dep:rusqlite"] -# The `arbitrary-fuzz` feature is a no-op provided for backwards compatibility. -# For simplicity `Arbitrary` is now derived regardless of the feature's presence. -arbitrary-fuzz = [] -portable = ["bls/supranational-portable"] +[[bench]] +name = "benches" +harness = false diff --git a/crypto/bls/Cargo.toml b/crypto/bls/Cargo.toml index d02e01b80cc..46612886799 100644 --- a/crypto/bls/Cargo.toml +++ b/crypto/bls/Cargo.toml @@ -4,6 +4,14 @@ version = "0.2.0" authors = ["Paul Hauner "] edition = { workspace = true } +[features] +arbitrary = [] +default = ["supranational"] +fake_crypto = [] +supranational = ["blst"] +supranational-portable = ["supranational", "blst/portable"] +supranational-force-adx = ["supranational", "blst/force-adx"] + [dependencies] alloy-primitives = { workspace = true } arbitrary = { workspace = true } @@ -18,11 +26,3 @@ safe_arith = { workspace = true } serde = { workspace = true } tree_hash = { workspace = true } zeroize = { workspace = true } - -[features] -arbitrary = [] -default = ["supranational"] -fake_crypto = [] -supranational = ["blst"] -supranational-portable = ["supranational", "blst/portable"] -supranational-force-adx = ["supranational", "blst/force-adx"] diff --git a/lcli/Cargo.toml b/lcli/Cargo.toml index 9acbe2569c8..b39feb50111 100644 --- a/lcli/Cargo.toml +++ b/lcli/Cargo.toml @@ -5,6 +5,9 @@ version = "7.1.0-beta.0" authors = ["Paul Hauner "] edition = { workspace = true } +[package.metadata.cargo-udeps.ignore] +normal = ["malloc_utils"] + [features] portable = ["bls/supranational-portable"] fake_crypto = ['bls/fake_crypto'] @@ -42,6 +45,3 @@ tracing-subscriber = { workspace = true } tree_hash = { workspace = true } types = { workspace = true } validator_dir = { workspace = true } - -[package.metadata.cargo-udeps.ignore] -normal = ["malloc_utils"] diff --git a/lighthouse/Cargo.toml b/lighthouse/Cargo.toml index 04c8efcdba5..cc17f638fd4 100644 --- a/lighthouse/Cargo.toml +++ b/lighthouse/Cargo.toml @@ -6,6 +6,11 @@ edition = { workspace = true } autotests = false rust-version = "1.83.0" +# Prevent cargo-udeps from flagging the dummy package `target_check`, which exists only +# to assert properties of the compilation target. +[package.metadata.cargo-udeps.ignore] +normal = ["target_check"] + [features] default = ["slasher-lmdb", "beacon-node-leveldb"] # Writes debugging .ssz files to /tmp during block processing. @@ -32,12 +37,6 @@ beacon-node-redb = ["store/redb"] # Deprecated. This is now enabled by default on non windows targets. jemalloc = [] -[target.'cfg(not(target_os = "windows"))'.dependencies] -malloc_utils = { workspace = true, features = ["jemalloc"] } - -[target.'cfg(target_os = "windows")'.dependencies] -malloc_utils = { workspace = true } - [dependencies] account_manager = { "path" = "../account_manager" } account_utils = { workspace = true } @@ -69,6 +68,12 @@ unused_port = { workspace = true } validator_client = { workspace = true } validator_manager = { path = "../validator_manager" } +[target.'cfg(not(target_os = "windows"))'.dependencies] +malloc_utils = { workspace = true, features = ["jemalloc"] } + +[target.'cfg(target_os = "windows")'.dependencies] +malloc_utils = { workspace = true } + [dev-dependencies] beacon_node_fallback = { workspace = true } beacon_processor = { workspace = true } @@ -85,8 +90,3 @@ zeroize = { workspace = true } [[test]] name = "lighthouse_tests" path = "tests/main.rs" - -# Prevent cargo-udeps from flagging the dummy package `target_check`, which exists only -# to assert properties of the compilation target. -[package.metadata.cargo-udeps.ignore] -normal = ["target_check"] diff --git a/testing/execution_engine_integration/Cargo.toml b/testing/execution_engine_integration/Cargo.toml index 55c42eb9d36..07d8d98f1d5 100644 --- a/testing/execution_engine_integration/Cargo.toml +++ b/testing/execution_engine_integration/Cargo.toml @@ -3,6 +3,9 @@ name = "execution_engine_integration" version = "0.1.0" edition = { workspace = true } +[features] +portable = ["types/portable"] + [dependencies] async-channel = { workspace = true } deposit_contract = { workspace = true } @@ -23,6 +26,3 @@ tempfile = { workspace = true } tokio = { workspace = true } types = { workspace = true } unused_port = { workspace = true } - -[features] -portable = ["types/portable"] diff --git a/testing/state_transition_vectors/Cargo.toml b/testing/state_transition_vectors/Cargo.toml index 7c297153463..66376f0a51d 100644 --- a/testing/state_transition_vectors/Cargo.toml +++ b/testing/state_transition_vectors/Cargo.toml @@ -3,6 +3,9 @@ name = "state_transition_vectors" version = "0.1.0" authors = ["Paul Hauner "] edition = { workspace = true } + +[features] +portable = ["beacon_chain/portable"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] @@ -11,6 +14,3 @@ ethereum_ssz = { workspace = true } state_processing = { workspace = true } tokio = { workspace = true } types = { workspace = true } - -[features] -portable = ["beacon_chain/portable"] diff --git a/validator_client/slashing_protection/Cargo.toml b/validator_client/slashing_protection/Cargo.toml index 88e6dd794d5..3860af514db 100644 --- a/validator_client/slashing_protection/Cargo.toml +++ b/validator_client/slashing_protection/Cargo.toml @@ -5,9 +5,9 @@ authors = ["Michael Sproul ", "pscott