mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-30 18:57:57 +00:00
Get the correct number of connected peers in SyncState (#13700)
`Protocol` is not a reliable source for the information of connected peers because it doesn't have real-time information of the actual connectivity state because it's not resposible for accepting/rejecting connections and gets that information with delay from `SyncinEngine`.
This commit is contained in:
@@ -76,7 +76,7 @@ impl<B: BlockT> InformantDisplay<B> {
|
||||
let best_number = info.chain.best_number;
|
||||
let best_hash = info.chain.best_hash;
|
||||
let finalized_number = info.chain.finalized_number;
|
||||
let num_connected_peers = net_status.num_connected_peers;
|
||||
let num_connected_peers = sync_status.num_connected_peers;
|
||||
let speed = speed::<B>(best_number, self.last_number, self.last_update);
|
||||
let total_bytes_inbound = net_status.total_bytes_inbound;
|
||||
let total_bytes_outbound = net_status.total_bytes_outbound;
|
||||
|
||||
@@ -94,6 +94,8 @@ pub struct SyncStatus<Block: BlockT> {
|
||||
pub best_seen_block: Option<NumberFor<Block>>,
|
||||
/// Number of peers participating in syncing.
|
||||
pub num_peers: u32,
|
||||
/// Number of peers known to `SyncingEngine` (both full and light).
|
||||
pub num_connected_peers: u32,
|
||||
/// Number of blocks queued for import
|
||||
pub queued_blocks: u32,
|
||||
/// State sync status in progress, if any.
|
||||
|
||||
@@ -711,7 +711,9 @@ where
|
||||
ToServiceCommand::NewBestBlockImported(hash, number) =>
|
||||
self.new_best_block_imported(hash, number),
|
||||
ToServiceCommand::Status(tx) => {
|
||||
let _ = tx.send(self.chain_sync.status());
|
||||
let mut status = self.chain_sync.status();
|
||||
status.num_connected_peers = self.peers.len() as u32;
|
||||
let _ = tx.send(status);
|
||||
},
|
||||
ToServiceCommand::NumActivePeers(tx) => {
|
||||
let _ = tx.send(self.chain_sync.num_active_peers());
|
||||
|
||||
@@ -523,6 +523,7 @@ where
|
||||
state: sync_state,
|
||||
best_seen_block,
|
||||
num_peers: self.peers.len() as u32,
|
||||
num_connected_peers: 0u32,
|
||||
queued_blocks: self.queue_blocks.len() as u32,
|
||||
state_sync: self.state_sync.as_ref().map(|s| s.progress()),
|
||||
warp_sync: warp_sync_progress,
|
||||
|
||||
Reference in New Issue
Block a user