diff --git a/Cargo.lock b/Cargo.lock index e086f493b3..3de221b21f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4890,6 +4890,7 @@ dependencies = [ "solana-client", "solana-core", "solana-gossip", + "solana-local-cluster", "solana-logger 1.10.0", "solana-net-utils", "solana-perf", diff --git a/dos/Cargo.toml b/dos/Cargo.toml index b1f3c46fe1..b493318207 100644 --- a/dos/Cargo.toml +++ b/dos/Cargo.toml @@ -25,3 +25,6 @@ solana-client = { path = "../client", version = "=1.10.0" } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] + +[dev-dependencies] +solana-local-cluster = { path = "../local-cluster", version = "=1.10.0" } diff --git a/dos/src/main.rs b/dos/src/main.rs index 7ec6274edb..0db3ad0e12 100644 --- a/dos/src/main.rs +++ b/dos/src/main.rs @@ -136,7 +136,7 @@ fn run_dos( } } count += 1; - if last_log.elapsed().as_secs() > 5 { + if last_log.elapsed().as_millis() > 10_000 { info!("count: {} errors: {}", count, error_count); last_log = Instant::now(); count = 0; @@ -271,6 +271,7 @@ fn main() { #[cfg(test)] pub mod test { + use solana_local_cluster::{cluster::Cluster, local_cluster::LocalCluster}; use {super::*, solana_sdk::timing::timestamp}; #[test] @@ -310,4 +311,27 @@ pub mod test { None, ); } + + #[test] + #[ignore] + fn test_dos_local_cluster() { + solana_logger::setup(); + let num_nodes = 1; + let cluster = + LocalCluster::new_with_equal_stakes(num_nodes, 100, 3, SocketAddrSpace::Unspecified); + assert_eq!(cluster.validators.len(), num_nodes); + + let nodes = cluster.get_node_pubkeys(); + let node = cluster.get_contact_info(&nodes[0]).unwrap().clone(); + + run_dos( + &[node], + 10_000_000, + cluster.entry_point_info.gossip, + "transaction".to_string(), + 1000, + "tpu".to_string(), + None, + ); + } }