Skip to content

Commit

Permalink
Fix MaxActivePeers config (#4030)
Browse files Browse the repository at this point in the history
  • Loading branch information
LukaszRozmej authored May 18, 2022
1 parent d33ba82 commit 128005c
Show file tree
Hide file tree
Showing 7 changed files with 15 additions and 10 deletions.
4 changes: 2 additions & 2 deletions src/Nethermind/Nethermind.Init/MemoryHintMan.cs
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,11 @@ private void AssignTrieCacheMemory()

private void AssignPeersMemory(INetworkConfig networkConfig)
{
PeersMemory = networkConfig.ActivePeersMaxCount.MB();
PeersMemory = networkConfig.MaxActivePeers.MB();
if (PeersMemory > _remainingMemory * 0.75)
{
throw new InvalidDataException(
$"Memory hint is not enough to satisfy the {nameof(NetworkConfig)}.{nameof(INetworkConfig.ActivePeersMaxCount)}. " +
$"Memory hint is not enough to satisfy the {nameof(NetworkConfig)}.{nameof(INetworkConfig.MaxActivePeers)}. " +
$"Assign at least MaxActivePeers * ~1MB * ~1.25 of memory.");
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/Nethermind/Nethermind.Init/Steps/InitializeNetwork.cs
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ private async Task Initialize(CancellationToken cancellationToken)

CanonicalHashTrie cht = new CanonicalHashTrie(_api.DbProvider!.ChtDb);

int maxPeersCount = _networkConfig.ActivePeersMaxCount;
int maxPeersCount = _networkConfig.MaxActivePeers;
int maxPriorityPeersCount = _networkConfig.PriorityPeersMaxCount;
_api.SyncPeerPool = new SyncPeerPool(_api.BlockTree!, _api.NodeStatsManager!, maxPeersCount, maxPriorityPeersCount, SyncPeerPool.DefaultUpgradeIntervalInMs, _api.LogManager);
_api.DisposeStack.Push(_api.SyncPeerPool);
Expand Down
4 changes: 2 additions & 2 deletions src/Nethermind/Nethermind.Network.Test/PeerManagerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ public void Will_return_exception_in_dns()
public async Task Will_accept_static_connection()
{
await using Context ctx = new();
ctx.NetworkConfig.ActivePeersMaxCount = 1;
ctx.NetworkConfig.MaxActivePeers = 1;
ctx.StaticNodesManager.IsStatic(enode2String).Returns(true);

ctx.PeerPool.Start();
Expand Down Expand Up @@ -463,7 +463,7 @@ public Context()
Storage = new InMemoryStorage();
NodesLoader = new NodesLoader(new NetworkConfig(), Stats, Storage, RlpxPeer, LimboLogs.Instance);
NetworkConfig = new NetworkConfig();
NetworkConfig.ActivePeersMaxCount = 25;
NetworkConfig.MaxActivePeers = 25;
NetworkConfig.PeersPersistenceInterval = 50;
StaticNodesManager = Substitute.For<IStaticNodesManager>();
StaticNodesManager.LoadInitialList().Returns(new List<Node>());
Expand Down
4 changes: 2 additions & 2 deletions src/Nethermind/Nethermind.Network/Config/INetworkConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ public interface INetworkConfig : IConfig
int PriorityPeersMaxCount { get; set; }

[ConfigItem(Description = "Same as ActivePeersMaxCount.", DefaultValue = "50")]
int MaxActivePeers => ActivePeersMaxCount;

int MaxActivePeers { get; set; }
[ConfigItem(DisabledForCli = true, HiddenFromDocs = true, DefaultValue = "5000")]
int PeersPersistenceInterval { get; set; }

Expand Down
7 changes: 6 additions & 1 deletion src/Nethermind/Nethermind.Network/Config/NetworkConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the Nethermind. If not, see <http://www.gnu.org/licenses/>.

using System;

namespace Nethermind.Network.Config
{
public class NetworkConfig : INetworkConfig
Expand All @@ -23,7 +25,10 @@ public class NetworkConfig : INetworkConfig
public string? StaticPeers { get; set; }
public bool OnlyStaticPeers { get; set; }
public bool IsPeersPersistenceOn { get; set; } = true;
public int ActivePeersMaxCount { get; set; } = 50;

[Obsolete]
public int ActivePeersMaxCount { get => MaxActivePeers; set => MaxActivePeers = value; }
public int MaxActivePeers { get; set; } = 50;
public int PriorityPeersMaxCount { get; set; } = 0;
public int PeersPersistenceInterval { get; set; } = 1000 * 5;
public int PeersUpdateInterval { get; set; } = 250;
Expand Down
2 changes: 1 addition & 1 deletion src/Nethermind/Nethermind.Network/PeerManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public PeerManager(
public IReadOnlyCollection<Peer> CandidatePeers => _peerPool.Peers.Values.ToList();
public IReadOnlyCollection<Peer> ConnectedPeers => _peerPool.ActivePeers.Values.Where(IsConnected).ToList();

public int MaxActivePeers => _networkConfig.ActivePeersMaxCount + _peerPool.StaticPeerCount;
public int MaxActivePeers => _networkConfig.MaxActivePeers + _peerPool.StaticPeerCount;
private int AvailableActivePeersCount => MaxActivePeers - _peerPool.ActivePeers.Count;

private void PeerPoolOnPeerAdded(object sender, PeerEventArgs nodeEventArgs)
Expand Down
2 changes: 1 addition & 1 deletion src/Nethermind/Nethermind.Runner.Test/ConfigFilesTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ public void Network_defaults_are_correct(string configWildcard, int activePeers
Test<INetworkConfig, int>(configWildcard, c => c.P2PPort, 30303);
Test<INetworkConfig, string>(configWildcard, c => c.ExternalIp, (string) null);
Test<INetworkConfig, string>(configWildcard, c => c.LocalIp, (string) null);
Test<INetworkConfig, int>(configWildcard, c => c.ActivePeersMaxCount, activePeers);
Test<INetworkConfig, int>(configWildcard, c => c.MaxActivePeers, activePeers);
}

[TestCase("*")]
Expand Down

0 comments on commit 128005c

Please sign in to comment.