mirror of
https://github.com/mimblewimble/grin.git
synced 2025-01-21 03:21:08 +03:00
ask for peers with PEER_LIST capability when asking for more peers (#1969)
do not simply look for peers with the same capabilities we have
This commit is contained in:
parent
c631b45ab6
commit
236fe56f60
2 changed files with 5 additions and 5 deletions
|
@ -395,7 +395,7 @@ impl Peer {
|
|||
}
|
||||
|
||||
pub fn send_peer_request(&self, capab: Capabilities) -> Result<(), Error> {
|
||||
trace!("Asking {} for more peers.", self.info.addr);
|
||||
trace!("Asking {} for more peers {:?}", self.info.addr, capab);
|
||||
self.connection.as_ref().unwrap().lock().send(
|
||||
&GetPeerAddrs {
|
||||
capabilities: capab,
|
||||
|
|
|
@ -89,7 +89,6 @@ pub fn connect_and_monitor(
|
|||
monitor_peers(
|
||||
peers.clone(),
|
||||
p2p_server.config.clone(),
|
||||
capabilities,
|
||||
tx.clone(),
|
||||
preferred_peers.clone(),
|
||||
);
|
||||
|
@ -116,7 +115,6 @@ pub fn connect_and_monitor(
|
|||
fn monitor_peers(
|
||||
peers: Arc<p2p::Peers>,
|
||||
config: p2p::P2PConfig,
|
||||
capabilities: p2p::Capabilities,
|
||||
tx: mpsc::Sender<SocketAddr>,
|
||||
preferred_peers_list: Option<Vec<SocketAddr>>,
|
||||
) {
|
||||
|
@ -178,7 +176,7 @@ fn monitor_peers(
|
|||
config.port,
|
||||
p.info.addr,
|
||||
);
|
||||
let _ = p.send_peer_request(capabilities);
|
||||
let _ = p.send_peer_request(p2p::Capabilities::PEER_LIST);
|
||||
connected_peers.push(p.info.addr)
|
||||
}
|
||||
|
||||
|
@ -212,6 +210,7 @@ fn monitor_peers(
|
|||
p2p::Capabilities::UNKNOWN,
|
||||
config.peer_max_count() as usize,
|
||||
);
|
||||
|
||||
for p in new_peers.iter().filter(|p| !peers.is_known(&p.addr)) {
|
||||
trace!(
|
||||
"monitor_peers: on {}:{}, queue to soon try {}",
|
||||
|
@ -249,7 +248,8 @@ fn connect_to_seeds_and_preferred_peers(
|
|||
peers_preferred_list: Option<Vec<SocketAddr>>,
|
||||
) {
|
||||
// check if we have some peers in db
|
||||
let peers = peers.find_peers(p2p::State::Healthy, p2p::Capabilities::FULL_NODE, 100);
|
||||
// look for peers that are able to give us other peers (via PEER_LIST capability)
|
||||
let peers = peers.find_peers(p2p::State::Healthy, p2p::Capabilities::PEER_LIST, 100);
|
||||
|
||||
// if so, get their addresses, otherwise use our seeds
|
||||
let mut peer_addrs = if peers.len() > 3 {
|
||||
|
|
Loading…
Reference in a new issue