Skip to content

Commit

Permalink
fix(core): fix heavy archives tests
Browse files Browse the repository at this point in the history
  • Loading branch information
pashinov committed Feb 17, 2025
1 parent fd50eae commit 9bc1b25
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 25 deletions.
9 changes: 2 additions & 7 deletions core/tests/archives.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ use tycho_core::block_strider::{
StateSubscriber, StateSubscriberContext,
};
use tycho_core::blockchain_rpc::{BlockchainRpcClient, DataRequirement};
use tycho_core::overlay_client::PublicOverlayClient;
use tycho_network::PeerId;
use tycho_storage::{ArchiveId, ArchivesGcConfig, NewBlockMeta, Storage, StorageConfig};
use tycho_util::compression::{zstd_decompress, ZstdDecompressStream};
Expand Down Expand Up @@ -322,7 +321,7 @@ async fn archives() -> Result<()> {
#[tokio::test]
#[ignore]
async fn heavy_archives() -> Result<()> {
tycho_util::test::init_logger("heavy_archives", "debug");
tycho_util::test::init_logger("heavy_archives", "info");

// Prepare directory
let project_root = project_root()?.join(".scratch");
Expand Down Expand Up @@ -426,11 +425,7 @@ async fn heavy_archives() -> Result<()> {
let node = nodes.first().unwrap();

let client = BlockchainRpcClient::builder()
.with_public_overlay_client(PublicOverlayClient::new(
node.network().clone(),
node.public_overlay().clone(),
Default::default(),
))
.with_public_overlay_client(node.overlay_client().clone())
.build();

// Get archive
Expand Down
11 changes: 8 additions & 3 deletions core/tests/block_strider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,12 @@ async fn overlay_block_strider() -> anyhow::Result<()> {
let left_id = left.network().peer_id();
let right_id = right.network().peer_id();

if left.public_overlay().read_entries().contains(right_id) {
if left
.overlay_client()
.overlay()
.read_entries()
.contains(right_id)
{
peer_states.entry(left_id).or_default().knows_about += 1;
peer_states.entry(right_id).or_default().known_by += 1;
}
Expand All @@ -104,7 +109,7 @@ async fn overlay_block_strider() -> anyhow::Result<()> {
tracing::info!("resolving entries...");
for node in &nodes {
let resolved = FuturesUnordered::new();
for entry in node.public_overlay().read_entries().iter() {
for entry in node.overlay_client().overlay().read_entries().iter() {
let handle = entry.resolver_handle.clone();
resolved.push(async move { handle.wait_resolved().await });
}
Expand All @@ -123,7 +128,7 @@ async fn overlay_block_strider() -> anyhow::Result<()> {
let client = BlockchainRpcClient::builder()
.with_public_overlay_client(PublicOverlayClient::new(
node.network().clone(),
node.public_overlay().clone(),
node.overlay_client().overlay().clone(),
PublicOverlayClientConfig::default(),
))
.build();
Expand Down
31 changes: 21 additions & 10 deletions core/tests/network/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ use everscale_crypto::ed25519;
use futures_util::stream::FuturesUnordered;
use futures_util::StreamExt;
use tycho_core::blockchain_rpc::BlockchainRpcService;
use tycho_core::overlay_client::PublicOverlayClient;
use tycho_network::{
DhtClient, DhtConfig, DhtService, Network, OverlayConfig, OverlayId, OverlayService, PeerId,
PeerResolver, PublicOverlay, Router,
Expand Down Expand Up @@ -82,17 +83,17 @@ fn make_fast_overlay_config() -> OverlayConfig {

pub struct Node {
network: Network,
public_overlay: PublicOverlay,
dht_client: DhtClient,
overlay_client: PublicOverlayClient,
}

impl Node {
pub fn network(&self) -> &Network {
&self.network
}

pub fn public_overlay(&self) -> &PublicOverlay {
&self.public_overlay
pub fn overlay_client(&self) -> &PublicOverlayClient {
&self.overlay_client
}

fn with_random_key(storage: Storage) -> Self {
Expand All @@ -112,12 +113,15 @@ impl Node {
);
overlay_service.add_public_overlay(&public_overlay);

let overlay_client =
PublicOverlayClient::new(network.clone(), public_overlay, Default::default());

let dht_client = dht_service.make_client(&network);

Self {
network,
public_overlay,
dht_client,
overlay_client,
}
}
}
Expand All @@ -141,7 +145,7 @@ pub fn make_network(storage: Storage, node_count: usize) -> Vec<Node> {
#[allow(dead_code)]
pub trait TestNode {
fn network(&self) -> &Network;
fn public_overlay(&self) -> &PublicOverlay;
fn overlay_client(&self) -> &PublicOverlayClient;
fn force_update_validators(&self, peers: Vec<PeerId>);
}

Expand All @@ -150,11 +154,13 @@ impl TestNode for Node {
self.network()
}

fn public_overlay(&self) -> &PublicOverlay {
self.public_overlay()
fn overlay_client(&self) -> &PublicOverlayClient {
&self.overlay_client
}

fn force_update_validators(&self, _: Vec<PeerId>) {}
fn force_update_validators(&self, peers: Vec<PeerId>) {
self.overlay_client.update_validator_set(&peers);
}
}

#[allow(dead_code)]
Expand All @@ -174,7 +180,12 @@ pub async fn discover<N: TestNode>(nodes: &[N]) -> anyhow::Result<()> {
let left_id = left.network().peer_id();
let right_id = right.network().peer_id();

if left.public_overlay().read_entries().contains(right_id) {
if left
.overlay_client()
.overlay()
.read_entries()
.contains(right_id)
{
peer_states.entry(left_id).or_default().knows_about += 1;
peer_states.entry(right_id).or_default().known_by += 1;
}
Expand All @@ -201,7 +212,7 @@ pub async fn discover<N: TestNode>(nodes: &[N]) -> anyhow::Result<()> {
tracing::info!("resolving entries...");
for node in nodes {
let resolved = FuturesUnordered::new();
for entry in node.public_overlay().read_entries().iter() {
for entry in node.overlay_client().overlay().read_entries().iter() {
let handle = entry.resolver_handle.clone();
resolved.push(async move { handle.wait_resolved().await });
}
Expand Down
10 changes: 5 additions & 5 deletions core/tests/overlay_server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ async fn overlay_server_msg_broadcast() -> Result<()> {
&self.base.network
}

fn public_overlay(&self) -> &PublicOverlay {
self.blockchain_client.overlay()
fn overlay_client(&self) -> &PublicOverlayClient {
self.blockchain_client.overlay_client()
}

fn force_update_validators(&self, peers: Vec<PeerId>) {
Expand Down Expand Up @@ -164,7 +164,7 @@ async fn overlay_server_with_empty_storage() -> Result<()> {
let client = BlockchainRpcClient::builder()
.with_public_overlay_client(PublicOverlayClient::new(
node.network().clone(),
node.public_overlay().clone(),
node.overlay_client().overlay().clone(),
Default::default(),
))
.build();
Expand Down Expand Up @@ -226,7 +226,7 @@ async fn overlay_server_blocks() -> Result<()> {
let client = BlockchainRpcClient::builder()
.with_public_overlay_client(PublicOverlayClient::new(
node.network().clone(),
node.public_overlay().clone(),
node.overlay_client().overlay().clone(),
Default::default(),
))
.build();
Expand Down Expand Up @@ -325,7 +325,7 @@ async fn overlay_server_persistent_state() -> Result<()> {
let client = BlockchainRpcClient::builder()
.with_public_overlay_client(PublicOverlayClient::new(
node.network().clone(),
node.public_overlay().clone(),
node.overlay_client().overlay().clone(),
Default::default(),
))
.build();
Expand Down

0 comments on commit 9bc1b25

Please sign in to comment.