diff --git a/cli/src/node/mod.rs b/cli/src/node/mod.rs index ed71ab163..9a17fd0f5 100644 --- a/cli/src/node/mod.rs +++ b/cli/src/node/mod.rs @@ -486,6 +486,7 @@ impl Node { supported_block_version: 50, supported_capabilities: supported_capabilities(), max_collate_threads: 1, + test_validators_keypairs: vec![] }; let collation_manager = CollationManager::start( diff --git a/collator/tests/collation_tests.rs b/collator/tests/collation_tests.rs index 8ce0ad7dc..c3e51c96f 100644 --- a/collator/tests/collation_tests.rs +++ b/collator/tests/collation_tests.rs @@ -7,7 +7,7 @@ use futures_util::future::BoxFuture; use tycho_block_util::state::MinRefMcStateTracker; use tycho_collator::collator::CollatorStdImplFactory; use tycho_collator::manager::CollationManager; -use tycho_collator::mempool::MempoolAdapterStdImpl; +use tycho_collator::mempool::{MempoolAdapterStdImpl, MempoolAdapterStubImpl}; use tycho_collator::msg_queue::MessageQueueAdapterStdImpl; use tycho_collator::state_node::{StateNodeAdapter, StateNodeAdapterStdImpl}; use tycho_collator::test_utils::{prepare_test_storage, try_init_test_tracing}; @@ -98,7 +98,7 @@ async fn test_collation_process_on_stubs() { config, Arc::new(MessageQueueAdapterStdImpl::default()), |listener| StateNodeAdapterStdImpl::new(listener, storage.clone()), - |listener| MempoolAdapterStdImpl::new(listener), + |listener| MempoolAdapterStubImpl::new(listener), ValidatorStdImplFactory { network: node_network.clone().into(), config: ValidatorConfig { diff --git a/consensus/examples/consensus_node.rs b/consensus/examples/consensus_node.rs index c455ab190..a9427eda6 100644 --- a/consensus/examples/consensus_node.rs +++ b/consensus/examples/consensus_node.rs @@ -10,6 +10,7 @@ use std::sync::Arc; use anyhow::Result; use clap::{Parser, Subcommand}; use everscale_crypto::ed25519; +use everscale_crypto::ed25519::KeyPair; use serde::{Deserialize, Serialize}; use tokio::sync::mpsc; use tracing_subscriber::layer::SubscriberExt; @@ -103,6 +104,7 @@ impl CmdRun { let global_config = GlobalConfig::from_file(self.global_config)?; let secret_key = parse_key(&self.key)?; + let key_pair = Arc::new(KeyPair::from(&secret_key)); let (dht_client, overlay) = tycho_consensus::test_utils::from_validator( self.addr, @@ -125,7 +127,7 @@ impl CmdRun { let (committed_tx, committed_rx) = mpsc::unbounded_channel(); let engine = - Engine::new(&secret_key, &dht_client, &overlay, &all_peers, committed_tx).await; + Engine::new(key_pair.clone(), &dht_client, &overlay, committed_tx).await; drain_anchors(committed_rx); tracing::info!( @@ -182,8 +184,10 @@ struct CmdGenDht { impl CmdGenDht { fn run(self) -> Result<()> { + let secret_key = parse_key(&self.key)?; + let key_pair = Arc::new(KeyPair::from(&secret_key)); let entry = tycho_consensus::test_utils::make_peer_info( - &parse_key(&self.key)?, + key_pair, self.addr.into(), self.ttl, ); diff --git a/consensus/src/test_utils.rs b/consensus/src/test_utils.rs index 35a29ef50..b3b6bf959 100644 --- a/consensus/src/test_utils.rs +++ b/consensus/src/test_utils.rs @@ -35,8 +35,7 @@ pub fn genesis() -> Point { .wrap(&genesis_keys) } -pub fn make_peer_info(key: &SecretKey, address: Address, ttl: Option) -> PeerInfo { - let keypair = KeyPair::from(key); +pub fn make_peer_info(keypair: Arc, address: Address, ttl: Option) -> PeerInfo { let peer_id = PeerId::from(keypair.public_key); let now = now_sec(); @@ -116,21 +115,22 @@ mod tests { use crate::engine::Engine; async fn make_network(node_count: usize) -> Vec { + let secret_key = SecretKey::generate(&mut rand::thread_rng()); let keys = (0..node_count) - .map(|_| SecretKey::generate(&mut rand::thread_rng())) + .map(|_| Arc::new(KeyPair::from(&secret_key))) .collect::>(); let all_peers = keys .iter() - .map(|s| PeerId::from(KeyPair::from(s).public_key)) + .map(|s| PeerId::from(s.public_key)) .collect::>(); let from_validators = keys .iter() - .map(|secret| { + .map(|key_pair| { from_validator( (Ipv4Addr::LOCALHOST, 0), - secret, + &secret_key, DhtConfig { local_info_announce_period: Duration::from_secs(1), local_info_announce_period_max_jitter: Duration::from_secs(1), @@ -146,7 +146,7 @@ mod tests { let peer_info = std::iter::zip(&keys, &from_validators) .map(|(key, (dht_client, _))| { Arc::new(make_peer_info( - key, + key.clone(), dht_client.network().local_addr().into(), None, )) @@ -165,12 +165,11 @@ mod tests { } let mut engines = vec![]; let (committed_tx, committed_rx) = mpsc::unbounded_channel(); - for (secret_key, (dht_client, overlay_service)) in keys.iter().zip(from_validators.iter()) { + for (key_pair, (dht_client, overlay_service)) in keys.into_iter().zip(from_validators.iter()) { let engine = Engine::new( - secret_key, + key_pair.clone(), &dht_client, &overlay_service, - &all_peers, committed_tx.clone(), ) .await;