Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion base_layer/p2p/src/peer_seeds.rs
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,8 @@ impl DnsSeedResolver {
/// ```
pub async fn resolve(&mut self, addr: &str) -> Result<Vec<SeedPeer>, DnsClientError> {
let records = self.client.query_txt(addr).await?;
let peers = records
trace!(target: LOG_TARGET, "DNS records: {:?}", records);
let peers: Vec<_> = records
.into_iter()
.filter_map(|txt| {
txt.parse()
Expand All @@ -89,6 +90,7 @@ impl DnsSeedResolver {
.ok()
})
.collect();
trace!(target: LOG_TARGET, "Seed peers: {:?}", peers.iter().map(|p| format!("{}", p)).collect::<Vec<_>>());
Ok(peers)
}
}
Expand Down
29 changes: 17 additions & 12 deletions comms/core/src/connectivity/manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -199,18 +199,6 @@ impl ConnectivityManagerActor {

self.publish_event(ConnectivityEvent::ConnectivityStateInitialized);

self.seeds = self
.peer_manager
.get_seed_peers()
.await
.unwrap_or({
warn!(target: LOG_TARGET, "Failed to get seed peers from PeerManager, using empty list");
vec![]
})
.iter()
.map(|s| s.node_id.clone())
.collect();

loop {
tokio::select! {
Some(req) = self.request_rx.recv() => {
Expand Down Expand Up @@ -1217,6 +1205,23 @@ impl ConnectivityManagerActor {
self.update_circuit_breaker_metrics();

// Execute proactive dialing logic
if self.seeds.is_empty() {
self.seeds = self
.peer_manager
.get_seed_peers()
.await
.inspect_err(|err| {
warn!(
target: LOG_TARGET,
"Failed to get seed peers from PeerManager, using empty list for proactive dialing, seed peers \
will not be excluded as a first pass. ({})", err
);
})
.unwrap_or(vec![])
.iter()
.map(|s| s.node_id.clone())
.collect();
}
match self
.proactive_dialer
.execute_proactive_dialing(&self.pool, &self.connection_stats, &self.seeds, task_id)
Expand Down
9 changes: 8 additions & 1 deletion comms/core/src/peer_manager/peer_storage_sql.rs
Original file line number Diff line number Diff line change
Expand Up @@ -265,8 +265,15 @@ impl PeerStorageSql {
)?)
}

/// Get all seed peers
pub fn get_seed_peers(&self) -> Result<Vec<Peer>, PeerManagerError> {
Ok(self.peer_db.get_seed_peers()?)
let seed_peers = self.peer_db.get_seed_peers()?;
trace!(
target: LOG_TARGET,
"Get seed peers: {:?}",
seed_peers.iter().map(|p| p.node_id.short_str()).collect::<Vec<_>>(),
);
Ok(seed_peers)
}

/// Compile a random list of communication node peers of size _n_ that are not banned or offline and
Expand Down
Loading