public void Initialize() { var privateKey = new PrivateKey(TestPrivateKeyHex); _publicKey = privateKey.PublicKey; var logManager = NullLogManager.Instance; //var config = new NetworkConfigurationProvider(new NetworkHelper(logger)) { PongTimeout = 100 }; var config = new JsonConfigProvider(); var networkConfig = config.GetConfig <INetworkConfig>(); networkConfig.PongTimeout = 100; var statsConfig = config.GetConfig <IStatsConfig>(); _messageSender = Substitute.For <IMessageSender>(); _nodeFactory = new NodeFactory(); var calculator = new NodeDistanceCalculator(config); _nodeTable = new NodeTable(_nodeFactory, new FileKeyStore(config, new JsonSerializer(logManager), new AesEncrypter(config, logManager), new CryptoRandom(), logManager), calculator, config, logManager); _nodeTable.Initialize(); var evictionManager = new EvictionManager(_nodeTable, logManager); var lifecycleFactory = new NodeLifecycleManagerFactory(_nodeFactory, _nodeTable, new DiscoveryMessageFactory(config), evictionManager, new NodeStatsProvider(statsConfig, _nodeFactory, logManager), config, logManager); _nodes = new[] { _nodeFactory.CreateNode("192.168.1.18", 1), _nodeFactory.CreateNode("192.168.1.19", 2) }; _discoveryManager = new DiscoveryManager(lifecycleFactory, _nodeFactory, _nodeTable, new NetworkStorage("test", networkConfig, logManager, new PerfService(logManager)), config, logManager); _discoveryManager.MessageSender = _messageSender; }
public void SetUp() { NullLogManager logManager = NullLogManager.Instance; JsonConfigProvider configProvider = new JsonConfigProvider(); _tempDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); _networkConfig = configProvider.GetConfig <INetworkConfig>(); _networkConfig.DbBasePath = _tempDir; _statsConfig = configProvider.GetConfig <IStatsConfig>(); _nodeFactory = new NodeFactory(); _storage = new NetworkStorage("test", _networkConfig, logManager, new PerfService(logManager)); }
public void Can_load_config_from_file() { var keystoreConfig = _configProvider.GetConfig <IKeyStoreConfig>(); var networkConfig = _configProvider.GetConfig <IDiscoveryConfig>(); var jsonRpcConfig = _configProvider.GetConfig <IJsonRpcConfig>(); Assert.AreEqual(100, keystoreConfig.KdfparamsDklen); Assert.AreEqual("test", keystoreConfig.Cipher); Assert.AreEqual(2, jsonRpcConfig.EnabledModules.Count()); new[] { ModuleType.Eth, ModuleType.Debug }.ToList().ForEach(x => { Assert.IsTrue(jsonRpcConfig.EnabledModules.Contains(x.ToString())); }); Assert.AreEqual(4, networkConfig.Concurrency); }
public void TestLoadJsonConfig() { _configProvider.LoadJsonConfig("SampleJsonConfig.json"); var keystoreConfig = _configProvider.GetConfig <IKeystoreConfig>(); var networkConfig = _configProvider.GetConfig <INetworkConfig>(); var jsonRpcConfig = _configProvider.GetConfig <IJsonRpcConfig>(); var statsConfig = _configProvider.GetConfig <IStatsConfig>(); Assert.AreEqual(100, keystoreConfig.KdfparamsDklen); Assert.AreEqual("test", keystoreConfig.Cipher); Assert.AreEqual("test", jsonRpcConfig.JsonRpcVersion); Assert.AreEqual("UTF7", jsonRpcConfig.MessageEncoding); Assert.AreEqual(2, jsonRpcConfig.EnabledModules.Count()); new[] { ModuleType.Eth, ModuleType.Shh }.ToList().ForEach(x => { Assert.IsTrue(jsonRpcConfig.EnabledModules.Contains(x)); }); Assert.AreEqual(4, networkConfig.Concurrency); Assert.AreEqual(3, statsConfig.PenalizedReputationLocalDisconnectReasons.Length); new[] { DisconnectReason.UnexpectedIdentity, DisconnectReason.IncompatibleP2PVersion, DisconnectReason.BreachOfProtocol } .ToList().ForEach(x => { Assert.IsTrue(statsConfig.PenalizedReputationLocalDisconnectReasons.Contains(x)); }); Assert.AreEqual(2, networkConfig.BootNodes.Length); var node1 = networkConfig.BootNodes.FirstOrDefault(x => x.NodeId == "testNodeId"); Assert.IsNotNull(node1); Assert.AreEqual("testHist", node1.Host); Assert.AreEqual(43, node1.Port); var node2 = networkConfig.BootNodes.FirstOrDefault(x => x.NodeId == "testNodeId2"); Assert.IsNotNull(node2); Assert.AreEqual("testHist2", node2.Host); Assert.AreEqual(44, node2.Port); }
static DataLoader() { var configProvider = new JsonConfigProvider(); Config = configProvider.GetConfig(); var dataPath = Config.DataFilePath.Trim(); var dataPathWithTrailingSlash = dataPath.EndsWith("/", StringComparison.OrdinalIgnoreCase) || dataPath.EndsWith(@"\", StringComparison.OrdinalIgnoreCase) ? dataPath : $"{dataPath}/"; BasePath = dataPathWithTrailingSlash; }
public void Can_load_config_from_file() { var keystoreConfig = _configProvider.GetConfig <IKeyStoreConfig>(); var networkConfig = _configProvider.GetConfig <INetworkConfig>(); var jsonRpcConfig = _configProvider.GetConfig <IJsonRpcConfig>(); var statsConfig = _configProvider.GetConfig <IStatsConfig>(); Assert.AreEqual(100, keystoreConfig.KdfparamsDklen); Assert.AreEqual("test", keystoreConfig.Cipher); Assert.AreEqual(2, jsonRpcConfig.EnabledModules.Count()); new[] { ModuleType.Eth, ModuleType.Debug }.ToList().ForEach(x => { Assert.IsTrue(jsonRpcConfig.EnabledModules.Contains(x)); }); Assert.AreEqual(4, networkConfig.Concurrency); Assert.AreEqual(3, statsConfig.PenalizedReputationLocalDisconnectReasons.Length); new[] { DisconnectReason.UnexpectedIdentity, DisconnectReason.IncompatibleP2PVersion, DisconnectReason.BreachOfProtocol } .ToList().ForEach(x => { Assert.IsTrue(statsConfig.PenalizedReputationLocalDisconnectReasons.Contains(x)); }); NetworkNode[] nodes = NetworkNode.ParseNodes(networkConfig.Bootnodes); Assert.AreEqual(2, nodes.Length); var node1 = nodes[0]; Assert.IsNotNull(node1); Assert.AreEqual("40.70.214.166", node1.Host); Assert.AreEqual(40303, node1.Port); var node2 = nodes[1]; Assert.IsNotNull(node2); Assert.AreEqual("213.186.16.82", node2.Host); Assert.AreEqual(1345, node2.Port); }
public void Can_load_config_from_file() { var keystoreConfig = _configProvider.GetConfig <IKeyStoreConfig>(); var networkConfig = _configProvider.GetConfig <IDiscoveryConfig>(); var jsonRpcConfig = _configProvider.GetConfig <IJsonRpcConfig>(); var statsConfig = _configProvider.GetConfig <IStatsConfig>(); Assert.AreEqual(100, keystoreConfig.KdfparamsDklen); Assert.AreEqual("test", keystoreConfig.Cipher); Assert.AreEqual(2, jsonRpcConfig.EnabledModules.Count()); new[] { ModuleType.Eth, ModuleType.Debug }.ToList().ForEach(x => { Assert.IsTrue(jsonRpcConfig.EnabledModules.Contains(x.ToString())); }); Assert.AreEqual(4, networkConfig.Concurrency); Assert.AreEqual(3, statsConfig.PenalizedReputationLocalDisconnectReasons.Length); new[] { DisconnectReason.UnexpectedIdentity, DisconnectReason.IncompatibleP2PVersion, DisconnectReason.BreachOfProtocol } .ToList().ForEach(x => { Assert.IsTrue(statsConfig.PenalizedReputationLocalDisconnectReasons.Contains(x)); }); }
protected async Task StartRunners(InitParams initParams) { try { //TODO find better way to enforce assemblies with config impl are loaded IKeystoreConfig kConfig; INetworkConfig nConfig; IJsonRpcConfig jConfig; var configProvider = new JsonConfigProvider(); var logManager = new NLogManager(initParams.LogFileName); //configProvider.LoadJsonConfig(""); //discovering and setting local, remote ips for client machine var networkHelper = new NetworkHelper(Logger); var localHost = networkHelper.GetLocalIp()?.ToString() ?? "127.0.0.1"; var networkConfig = configProvider.GetConfig <NetworkConfig>(); networkConfig.MasterExternalIp = localHost; networkConfig.MasterHost = localHost; ChainSpecLoader chainSpecLoader = new ChainSpecLoader(new UnforgivingJsonSerializer()); string path = initParams.ChainSpecPath; if (!Path.IsPathRooted(path)) { path = Path.Combine(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, path)); } byte[] chainSpecData = File.ReadAllBytes(path); ChainSpec chainSpec = chainSpecLoader.Load(chainSpecData); //Setting trusted nodes var nodes = chainSpec.NetworkNodes.Select(GetNode).ToArray(); networkConfig.TrustedPeers = nodes; networkConfig.BootNodes = nodes; networkConfig.DbBasePath = initParams.BaseDbPath; _ethereumRunner = new EthereumRunner(configProvider, networkHelper, logManager); await _ethereumRunner.Start(initParams); if (initParams.JsonRpcEnabled) { Bootstrap.Instance.ConfigProvider = configProvider; Bootstrap.Instance.LogManager = logManager; Bootstrap.Instance.BlockchainBridge = _ethereumRunner.BlockchainBridge; Bootstrap.Instance.EthereumSigner = _ethereumRunner.EthereumSigner; _jsonRpcRunner = new JsonRpcRunner(configProvider, Logger); await _jsonRpcRunner.Start(initParams); } else { if (Logger.IsInfoEnabled) { Logger.Info("Json RPC is disabled"); } } } catch (Exception e) { Logger.Error("Error while starting Nethermind.Runner", e); throw; } }