Skip to content

Commit 9bc1b25

Browse files
committed
fix(core): fix heavy archives tests
1 parent fd50eae commit 9bc1b25

4 files changed

Lines changed: 36 additions & 25 deletions

File tree

core/tests/archives.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ use tycho_core::block_strider::{
1616
StateSubscriber, StateSubscriberContext,
1717
};
1818
use tycho_core::blockchain_rpc::{BlockchainRpcClient, DataRequirement};
19-
use tycho_core::overlay_client::PublicOverlayClient;
2019
use tycho_network::PeerId;
2120
use tycho_storage::{ArchiveId, ArchivesGcConfig, NewBlockMeta, Storage, StorageConfig};
2221
use tycho_util::compression::{zstd_decompress, ZstdDecompressStream};
@@ -322,7 +321,7 @@ async fn archives() -> Result<()> {
322321
#[tokio::test]
323322
#[ignore]
324323
async fn heavy_archives() -> Result<()> {
325-
tycho_util::test::init_logger("heavy_archives", "debug");
324+
tycho_util::test::init_logger("heavy_archives", "info");
326325

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

428427
let client = BlockchainRpcClient::builder()
429-
.with_public_overlay_client(PublicOverlayClient::new(
430-
node.network().clone(),
431-
node.public_overlay().clone(),
432-
Default::default(),
433-
))
428+
.with_public_overlay_client(node.overlay_client().clone())
434429
.build();
435430

436431
// Get archive

core/tests/block_strider.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,12 @@ async fn overlay_block_strider() -> anyhow::Result<()> {
7777
let left_id = left.network().peer_id();
7878
let right_id = right.network().peer_id();
7979

80-
if left.public_overlay().read_entries().contains(right_id) {
80+
if left
81+
.overlay_client()
82+
.overlay()
83+
.read_entries()
84+
.contains(right_id)
85+
{
8186
peer_states.entry(left_id).or_default().knows_about += 1;
8287
peer_states.entry(right_id).or_default().known_by += 1;
8388
}
@@ -104,7 +109,7 @@ async fn overlay_block_strider() -> anyhow::Result<()> {
104109
tracing::info!("resolving entries...");
105110
for node in &nodes {
106111
let resolved = FuturesUnordered::new();
107-
for entry in node.public_overlay().read_entries().iter() {
112+
for entry in node.overlay_client().overlay().read_entries().iter() {
108113
let handle = entry.resolver_handle.clone();
109114
resolved.push(async move { handle.wait_resolved().await });
110115
}
@@ -123,7 +128,7 @@ async fn overlay_block_strider() -> anyhow::Result<()> {
123128
let client = BlockchainRpcClient::builder()
124129
.with_public_overlay_client(PublicOverlayClient::new(
125130
node.network().clone(),
126-
node.public_overlay().clone(),
131+
node.overlay_client().overlay().clone(),
127132
PublicOverlayClientConfig::default(),
128133
))
129134
.build();

core/tests/network/mod.rs

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use everscale_crypto::ed25519;
77
use futures_util::stream::FuturesUnordered;
88
use futures_util::StreamExt;
99
use tycho_core::blockchain_rpc::BlockchainRpcService;
10+
use tycho_core::overlay_client::PublicOverlayClient;
1011
use tycho_network::{
1112
DhtClient, DhtConfig, DhtService, Network, OverlayConfig, OverlayId, OverlayService, PeerId,
1213
PeerResolver, PublicOverlay, Router,
@@ -82,17 +83,17 @@ fn make_fast_overlay_config() -> OverlayConfig {
8283

8384
pub struct Node {
8485
network: Network,
85-
public_overlay: PublicOverlay,
8686
dht_client: DhtClient,
87+
overlay_client: PublicOverlayClient,
8788
}
8889

8990
impl Node {
9091
pub fn network(&self) -> &Network {
9192
&self.network
9293
}
9394

94-
pub fn public_overlay(&self) -> &PublicOverlay {
95-
&self.public_overlay
95+
pub fn overlay_client(&self) -> &PublicOverlayClient {
96+
&self.overlay_client
9697
}
9798

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

116+
let overlay_client =
117+
PublicOverlayClient::new(network.clone(), public_overlay, Default::default());
118+
115119
let dht_client = dht_service.make_client(&network);
116120

117121
Self {
118122
network,
119-
public_overlay,
120123
dht_client,
124+
overlay_client,
121125
}
122126
}
123127
}
@@ -141,7 +145,7 @@ pub fn make_network(storage: Storage, node_count: usize) -> Vec<Node> {
141145
#[allow(dead_code)]
142146
pub trait TestNode {
143147
fn network(&self) -> &Network;
144-
fn public_overlay(&self) -> &PublicOverlay;
148+
fn overlay_client(&self) -> &PublicOverlayClient;
145149
fn force_update_validators(&self, peers: Vec<PeerId>);
146150
}
147151

@@ -150,11 +154,13 @@ impl TestNode for Node {
150154
self.network()
151155
}
152156

153-
fn public_overlay(&self) -> &PublicOverlay {
154-
self.public_overlay()
157+
fn overlay_client(&self) -> &PublicOverlayClient {
158+
&self.overlay_client
155159
}
156160

157-
fn force_update_validators(&self, _: Vec<PeerId>) {}
161+
fn force_update_validators(&self, peers: Vec<PeerId>) {
162+
self.overlay_client.update_validator_set(&peers);
163+
}
158164
}
159165

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

177-
if left.public_overlay().read_entries().contains(right_id) {
183+
if left
184+
.overlay_client()
185+
.overlay()
186+
.read_entries()
187+
.contains(right_id)
188+
{
178189
peer_states.entry(left_id).or_default().knows_about += 1;
179190
peer_states.entry(right_id).or_default().known_by += 1;
180191
}
@@ -201,7 +212,7 @@ pub async fn discover<N: TestNode>(nodes: &[N]) -> anyhow::Result<()> {
201212
tracing::info!("resolving entries...");
202213
for node in nodes {
203214
let resolved = FuturesUnordered::new();
204-
for entry in node.public_overlay().read_entries().iter() {
215+
for entry in node.overlay_client().overlay().read_entries().iter() {
205216
let handle = entry.resolver_handle.clone();
206217
resolved.push(async move { handle.wait_resolved().await });
207218
}

core/tests/overlay_server.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ async fn overlay_server_msg_broadcast() -> Result<()> {
9292
&self.base.network
9393
}
9494

95-
fn public_overlay(&self) -> &PublicOverlay {
96-
self.blockchain_client.overlay()
95+
fn overlay_client(&self) -> &PublicOverlayClient {
96+
self.blockchain_client.overlay_client()
9797
}
9898

9999
fn force_update_validators(&self, peers: Vec<PeerId>) {
@@ -164,7 +164,7 @@ async fn overlay_server_with_empty_storage() -> Result<()> {
164164
let client = BlockchainRpcClient::builder()
165165
.with_public_overlay_client(PublicOverlayClient::new(
166166
node.network().clone(),
167-
node.public_overlay().clone(),
167+
node.overlay_client().overlay().clone(),
168168
Default::default(),
169169
))
170170
.build();
@@ -226,7 +226,7 @@ async fn overlay_server_blocks() -> Result<()> {
226226
let client = BlockchainRpcClient::builder()
227227
.with_public_overlay_client(PublicOverlayClient::new(
228228
node.network().clone(),
229-
node.public_overlay().clone(),
229+
node.overlay_client().overlay().clone(),
230230
Default::default(),
231231
))
232232
.build();
@@ -325,7 +325,7 @@ async fn overlay_server_persistent_state() -> Result<()> {
325325
let client = BlockchainRpcClient::builder()
326326
.with_public_overlay_client(PublicOverlayClient::new(
327327
node.network().clone(),
328-
node.public_overlay().clone(),
328+
node.overlay_client().overlay().clone(),
329329
Default::default(),
330330
))
331331
.build();

0 commit comments

Comments
 (0)