mirror of https://github.com/oxen-io/lokinet
Add min intro set paths, slightly increase spread speed
This should ensure that we have enough shortly after startup for initial path builds. The spread speed here gets slightly increased to lifetime/5 (=4min) instead of lifetime/4 (=5min) so that our "normal" number of paths is 5 with occassional momentary drops to 4, but should always keep us >= the new minimum of 4. Because the path spread happens over time, this shouldn't result in a rebuild of several paths: we'll build 4 quickly, then another at +4m, another at +8m, etc. When the initial 4 expire, we'll be dropping from 9 to 5 established but that's still above the minimum (4) so we won't need to reconnect to several at once, and the spread builds should keep us at 5 all the time.
This commit is contained in:
parent
5b075259e6
commit
823c17206f
|
@ -24,7 +24,11 @@ namespace llarp
|
|||
default_lifetime / 2;
|
||||
/// spacing frequency at which we try to build paths for introductions
|
||||
static constexpr std::chrono::milliseconds intro_path_spread =
|
||||
default_lifetime / 4;
|
||||
default_lifetime / 5;
|
||||
/// Minimum paths to keep around for intros; mainly used at startup (the
|
||||
/// spread, above, should be able to maintain more than this number of paths
|
||||
/// normally once things are going).
|
||||
constexpr std::size_t min_intro_paths = 4;
|
||||
/// after this many ms a path build times out
|
||||
static constexpr auto build_timeout = 30s;
|
||||
|
||||
|
|
|
@ -1294,7 +1294,8 @@ namespace llarp
|
|||
if(numBuilding > 0)
|
||||
return false;
|
||||
|
||||
return ((now - lastBuild) > path::intro_path_spread);
|
||||
return ((now - lastBuild) > path::intro_path_spread)
|
||||
|| NumInStatus(path::ePathEstablished) < path::min_intro_paths;
|
||||
}
|
||||
|
||||
std::shared_ptr< Logic >
|
||||
|
|
Loading…
Reference in New Issue