mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-21 13:54:44 +00:00
Allow discovery to be more lenient in enr eth2 fields (#1201)
* Allow discovery to be more lenient in enr eth2 fields * Correct web3 dep * Discovery bug fixes
This commit is contained in:
@@ -36,6 +36,8 @@ use types::{EnrForkId, EthSpec, SubnetId};
|
||||
const MAX_TIME_BETWEEN_PEER_SEARCHES: u64 = 120;
|
||||
/// Initial delay between peer searches.
|
||||
const INITIAL_SEARCH_DELAY: u64 = 5;
|
||||
/// The number of peers we must be connected to before increasing the discovery delay.
|
||||
const MINIMUM_PEERS_BEFORE_DELAY_INCREASE: usize = 5;
|
||||
/// Local ENR storage filename.
|
||||
pub const ENR_FILENAME: &str = "enr.dat";
|
||||
/// Number of peers we'd like to have connected to a given long-lived subnet.
|
||||
@@ -361,7 +363,9 @@ impl<TSpec: EthSpec> Discovery<TSpec> {
|
||||
}
|
||||
};
|
||||
// predicate for finding nodes with a matching fork
|
||||
let eth2_fork_predicate = move |enr: &Enr| enr.eth2() == Ok(enr_fork_id.clone());
|
||||
let eth2_fork_predicate = move |enr: &Enr| {
|
||||
enr.eth2().map(|enr| enr.fork_digest) == Ok(enr_fork_id.fork_digest.clone())
|
||||
};
|
||||
let predicate = move |enr: &Enr| eth2_fork_predicate(enr) && enr_predicate(enr);
|
||||
|
||||
// general predicate
|
||||
@@ -476,10 +480,13 @@ impl<TSpec: EthSpec> NetworkBehaviour for Discovery<TSpec> {
|
||||
Discv5Event::FindNodeResult { closer_peers, .. } => {
|
||||
debug!(self.log, "Discovery query completed"; "peers_found" => closer_peers.len());
|
||||
// update the time to the next query
|
||||
if self.past_discovery_delay < MAX_TIME_BETWEEN_PEER_SEARCHES {
|
||||
if self.past_discovery_delay < MAX_TIME_BETWEEN_PEER_SEARCHES
|
||||
&& self.network_globals.connected_or_dialing_peers()
|
||||
> MINIMUM_PEERS_BEFORE_DELAY_INCREASE
|
||||
{
|
||||
self.past_discovery_delay *= 2;
|
||||
}
|
||||
let delay = std::cmp::max(
|
||||
let delay = std::cmp::min(
|
||||
self.past_discovery_delay,
|
||||
MAX_TIME_BETWEEN_PEER_SEARCHES,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user