public InitializeNetwork(EthereumRunnerContext context) { _ctx = context; _logger = _ctx.LogManager.GetClassLogger(); _networkConfig = _ctx.Config <INetworkConfig>(); _syncConfig = _ctx.Config <ISyncConfig>(); }
public EthereumRunner(IRpcModuleProvider rpcModuleProvider, IConfigProvider configurationProvider, ILogManager logManager, IGrpcServer grpcServer, INdmConsumerChannelManager ndmConsumerChannelManager, INdmDataPublisher ndmDataPublisher, INdmInitializer ndmInitializer, IWebSocketsManager webSocketsManager, IJsonSerializer ethereumJsonSerializer) { _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager)); _grpcServer = grpcServer; _ndmConsumerChannelManager = ndmConsumerChannelManager; _ndmDataPublisher = ndmDataPublisher; _ndmInitializer = ndmInitializer; _webSocketsManager = webSocketsManager; _ethereumJsonSerializer = ethereumJsonSerializer; _logger = _logManager.GetClassLogger(); InitRlp(); _configProvider = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider)); _rpcModuleProvider = rpcModuleProvider ?? throw new ArgumentNullException(nameof(rpcModuleProvider)); _initConfig = configurationProvider.GetConfig <IInitConfig>(); _txPoolConfig = configurationProvider.GetConfig <ITxPoolConfig>(); _perfService = new PerfService(_logManager); _networkConfig = _configProvider.GetConfig <INetworkConfig>(); _ipResolver = new IpResolver(_networkConfig, _logManager); _networkConfig.ExternalIp = _ipResolver.ExternalIp.ToString(); _networkConfig.LocalIp = _ipResolver.LocalIp.ToString(); }
public InitializeNetwork(INethermindApi api) { _api = api; _logger = _api.LogManager.GetClassLogger(); _networkConfig = _api.Config <INetworkConfig>(); _syncConfig = _api.Config <ISyncConfig>(); }
public NodesLocator(INodeTable nodeTable, IDiscoveryManager discoveryManager, IConfigProvider configurationProvider, ILogManager logManager) { _logger = logManager?.GetClassLogger(); _configurationProvider = configurationProvider.GetConfig <NetworkConfig>(); _nodeTable = nodeTable; _discoveryManager = discoveryManager; }
public void Initialize() { NetworkNodeDecoder.Init(); SetupNodeIds(); var logManager = NullLogManager.Instance; //setting config to store 3 nodes in a bucket and for table to have one bucket//setting config to store 3 nodes in a bucket and for table to have one bucket _configurationProvider = new ConfigProvider(); INetworkConfig networkConfig = _configurationProvider.GetConfig <INetworkConfig>(); networkConfig.PongTimeout = 50; networkConfig.BucketSize = 3; networkConfig.BucketsCount = 1; IKeyStoreConfig keyStoreConfig = _configurationProvider.GetConfig <IKeyStoreConfig>(); IStatsConfig statsConfig = _configurationProvider.GetConfig <IStatsConfig>(); _nodeFactory = new NodeFactory(LimboLogs.Instance); var calculator = new NodeDistanceCalculator(networkConfig); _nodeTable = new NodeTable(_nodeFactory, new FileKeyStore(keyStoreConfig, new EthereumJsonSerializer(), new AesEncrypter(keyStoreConfig, logManager), new CryptoRandom(), logManager), calculator, networkConfig, logManager); _nodeTable.Initialize(); _timestamp = new Timestamp(); var evictionManager = new EvictionManager(_nodeTable, logManager); var lifecycleFactory = new NodeLifecycleManagerFactory(_nodeFactory, _nodeTable, new DiscoveryMessageFactory(networkConfig, _timestamp), evictionManager, new NodeStatsProvider(statsConfig, _nodeFactory, logManager, true), networkConfig, logManager); _udpClient = Substitute.For <IMessageSender>(); _discoveryManager = new DiscoveryManager(lifecycleFactory, _nodeFactory, _nodeTable, new NetworkStorage("test", networkConfig, logManager, new PerfService(logManager)), networkConfig, logManager); _discoveryManager.MessageSender = _udpClient; }
public PeerSessionLogger(ILogManager logManager, IConfigProvider configProvider, IPerfService perfService) { _perfService = perfService; _logger = logManager.GetClassLogger(); _statsConfig = configProvider.GetConfig <IStatsConfig>(); _networkConfig = configProvider.GetConfig <INetworkConfig>(); }
public async Task Execute(CancellationToken cancellationToken) { // why is the await Task.Run here? await Task.Run(() => { IKeyStoreConfig keyStoreConfig = _context.Config <IKeyStoreConfig>(); INetworkConfig networkConfig = _context.Config <INetworkConfig>(); AesEncrypter encrypter = new AesEncrypter( keyStoreConfig, _context.LogManager); _context.KeyStore = new FileKeyStore( keyStoreConfig, _context.EthereumJsonSerializer, encrypter, _context.CryptoRandom, _context.LogManager); _context.Wallet = _context.Config <IInitConfig>() switch { var config when config.EnableUnsecuredDevWallet&& config.KeepDevWalletInMemory => new DevWallet(_context.Config <IWalletConfig>(), _context.LogManager), var config when config.EnableUnsecuredDevWallet&& !config.KeepDevWalletInMemory => new DevKeyStoreWallet(_context.KeyStore, _context.LogManager), _ => new ProtectedKeyStoreWallet(_context.KeyStore, new ProtectedPrivateKeyFactory(_context.CryptoRandom, _context.Timestamper), _context.Timestamper, _context.LogManager), }; INodeKeyManager nodeKeyManager = new NodeKeyManager(_context.CryptoRandom, _context.KeyStore, keyStoreConfig, _context.LogManager); _context.NodeKey = nodeKeyManager.LoadNodeKey(); _context.OriginalSignerKey = nodeKeyManager.LoadSignerKey(); _context.Enode = new Enode(_context.NodeKey.PublicKey, IPAddress.Parse(networkConfig.ExternalIp), networkConfig.P2PPort); _context.LogManager.SetGlobalVariable("enode", _context.Enode.ToString()); }); }
//TODO Timer to periodically check active peers and move new to active based on max size and compatibility - stats and capabilities + update peers in synchronization manager //TODO Remove active and synch on disconnect //TODO Update Stats on disconnect, other events //TODO update runner to run discovery public PeerManager(IRlpxPeer localPeer, IDiscoveryManager discoveryManager, ISynchronizationManager synchronizationManager, INodeStatsProvider nodeStatsProvider, IPeerStorage peerStorage, INodeFactory nodeFactory, IConfigProvider configurationProvider, IPerfService perfService, ILogManager logManager) { _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); _localPeer = localPeer; _configurationProvider = configurationProvider.GetConfig <NetworkConfig>(); _synchronizationManager = synchronizationManager; _nodeStatsProvider = nodeStatsProvider; _discoveryManager = discoveryManager; _perfService = perfService; _nodeFactory = nodeFactory; _isDiscoveryEnabled = _discoveryManager != null; if (_isDiscoveryEnabled) { discoveryManager.NodeDiscovered += async(s, e) => await OnNodeDiscovered(s, e); } localPeer.ConnectionInitialized += OnRemoteConnectionInitialized; synchronizationManager.SyncFailed += async(s, e) => await OnSyncFailed(s, e); _peerStorage = peerStorage; _peerStorage.StartBatch(); }
public SessionMonitor(INetworkConfig config, ILogManager logManager) { _logger = logManager.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); _networkConfig = config ?? throw new ArgumentNullException(nameof(config)); _pingInterval = TimeSpan.FromMilliseconds(_networkConfig.P2PPingInterval); }
public EthereumRunner( IRpcModuleProvider rpcModuleProvider, IConfigProvider configurationProvider, ILogManager logManager, IGrpcServer?grpcServer, INdmConsumerChannelManager?ndmConsumerChannelManager, INdmDataPublisher?ndmDataPublisher, INdmInitializer?ndmInitializer, IWebSocketsManager webSocketsManager, IJsonSerializer ethereumJsonSerializer, IMonitoringService monitoringService) { _logger = logManager.GetClassLogger(); _context = new EthereumRunnerContextFactory(configurationProvider, ethereumJsonSerializer, logManager).Context; _context.LogManager = logManager; _context.GrpcServer = grpcServer; _context.NdmConsumerChannelManager = ndmConsumerChannelManager; _context.NdmDataPublisher = ndmDataPublisher; _context.NdmInitializer = ndmInitializer; _context.WebSocketsManager = webSocketsManager; _context.EthereumJsonSerializer = ethereumJsonSerializer; _context.MonitoringService = monitoringService; _context.ConfigProvider = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider)); _context.RpcModuleProvider = rpcModuleProvider ?? throw new ArgumentNullException(nameof(rpcModuleProvider)); INetworkConfig networkConfig = _context.Config <INetworkConfig>(); _context.IpResolver = new IPResolver(networkConfig, _context.LogManager); networkConfig.ExternalIp = _context.IpResolver.ExternalIp.ToString(); networkConfig.LocalIp = _context.IpResolver.LocalIp.ToString(); }
public PeerLoader(INetworkConfig networkConfig, INodeStatsManager stats, INetworkStorage peerStorage, ILogManager logManager) { _networkConfig = networkConfig ?? throw new ArgumentNullException(nameof(networkConfig)); _stats = stats ?? throw new ArgumentNullException(nameof(stats)); _peerStorage = peerStorage ?? throw new ArgumentNullException(nameof(peerStorage)); _logger = logManager.GetClassLogger(); }
public DiscoveryApp(INodesLocator nodesLocator, IDiscoveryManager? discoveryManager, INodeTable? nodeTable, IMessageSerializationService? msgSerializationService, ICryptoRandom? cryptoRandom, INetworkStorage? discoveryStorage, INetworkConfig? networkConfig, IDiscoveryConfig? discoveryConfig, ITimestamper? timestamper, ILogManager? logManager) { _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager)); _logger = _logManager.GetClassLogger(); _discoveryConfig = discoveryConfig ?? throw new ArgumentNullException(nameof(discoveryConfig)); _timestamper = timestamper ?? throw new ArgumentNullException(nameof(timestamper)); _nodesLocator = nodesLocator ?? throw new ArgumentNullException(nameof(nodesLocator)); _discoveryManager = discoveryManager ?? throw new ArgumentNullException(nameof(discoveryManager)); _nodeTable = nodeTable ?? throw new ArgumentNullException(nameof(nodeTable)); _messageSerializationService = msgSerializationService ?? throw new ArgumentNullException(nameof(msgSerializationService)); _cryptoRandom = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom)); _discoveryStorage = discoveryStorage ?? throw new ArgumentNullException(nameof(discoveryStorage)); _networkConfig = networkConfig ?? throw new ArgumentNullException(nameof(networkConfig)); _discoveryStorage.StartBatch(); }
public TestConnection(ISocket socket, IChannelSink sink, string id, INetworkConfig config, CancellationTokenSource source, ILogger logger, Func <ReadOnlySequence <byte> > buildAliveMessage) : base(id, config, source, logger) { _socket = socket; _sink = sink; StartPipeline(); }
public void Initialize() { _config = new NetworkConfig(); _farAddress = new IPEndPoint(IPAddress.Parse("192.168.1.2"), 1); _nearAddress = new IPEndPoint(IPAddress.Parse(_config.MasterExternalIp), _config.MasterPort); _messageSerializationService = Build.A.SerializationService().WithDiscovery(_privateKey).TestObject; }
public DiscoveryStorage(IConfigProvider configurationProvider, INodeFactory nodeFactory, ILogManager logManager, IPerfService perfService) { _logger = logManager.GetClassLogger(); _configurationProvider = configurationProvider.GetConfig <NetworkConfig>(); _nodeFactory = nodeFactory; _perfService = perfService; _db = new FullDbOnTheRocks(Path.Combine(_configurationProvider.DbBasePath, FullDbOnTheRocks.DiscoveryNodesDbPath)); }
public NodeTable(INodeDistanceCalculator nodeDistanceCalculator, IDiscoveryConfig discoveryConfig, INetworkConfig networkConfig, ILogManager logManager) { _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); _networkConfig = networkConfig ?? throw new ArgumentNullException(nameof(networkConfig)); _discoveryConfig = discoveryConfig ?? throw new ArgumentNullException(nameof(discoveryConfig)); _nodeDistanceCalculator = nodeDistanceCalculator ?? throw new ArgumentNullException(nameof(nodeDistanceCalculator)); }
public NodeTable(INodeFactory nodeFactory, IKeyStore keyStore, INodeDistanceCalculator nodeDistanceCalculator, INetworkConfig networkConfig, ILogManager logManager) { _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); _networkConfig = networkConfig; _nodeFactory = nodeFactory; _keyStore = keyStore; _nodeDistanceCalculator = nodeDistanceCalculator; }
public NodeTable(INodeFactory nodeFactory, IKeyStore keyStore, INodeDistanceCalculator nodeDistanceCalculator, IConfigProvider configurationProvider, ILogManager logManager) { _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); _configurationProvider = configurationProvider.GetConfig <INetworkConfig>(); _nodeFactory = nodeFactory; _keyStore = keyStore; _nodeDistanceCalculator = nodeDistanceCalculator; }
public IpResolver(INetworkConfig networkConfig, ILogManager logManager) { _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); _networkConfig = networkConfig ?? throw new ArgumentNullException(nameof(networkConfig)); LocalIp = InitializeLocalIp(); ExternalIp = InitializeExternalIp(); }
protected ListenerBase(string id, INetworkConfig config, CancellationTokenSource source, ILogger logger) { Id = id.Required(nameof(id)); _logger = logger.Required(nameof(logger)); _source = source.Required(nameof(source)); _config = config.Required(nameof(config)); _source.Token.Register(Dispose); }
public ApplyMemoryHint(EthereumRunnerContext context) { _context = context ?? throw new ArgumentNullException(nameof(context)); _initConfig = context.Config <IInitConfig>(); _dbConfig = context.Config <IDbConfig>(); _networkConfig = context.Config <INetworkConfig>(); _syncConfig = context.Config <ISyncConfig>(); }
public void Setup() { _dbConfig = new DbConfig(); _syncConfig = new SyncConfig(); _initConfig = new InitConfig(); _txPoolConfig = new TxPoolConfig(); _networkConfig = new NetworkConfig(); _memoryHintMan = new MemoryHintMan(LimboLogs.Instance); }
public ApplyMemoryHint(NethermindApi context) { _api = context ?? throw new ArgumentNullException(nameof(context)); _initConfig = context.Config <IInitConfig>(); _dbConfig = context.Config <IDbConfig>(); _networkConfig = context.Config <INetworkConfig>(); _syncConfig = context.Config <ISyncConfig>(); _txPoolConfig = context.Config <ITxPoolConfig>(); }
public static NetworkStream GetInstance(INetworkConfig config, string romName = null) { if (_instance == null) { _instance = new NetworkStream(); } _instance.Init(config, romName); return(_instance); }
public ApplyMemoryHint(INethermindApi api) { _api = api ?? throw new ArgumentNullException(nameof(api)); _initConfig = api.Config <IInitConfig>(); _dbConfig = api.Config <IDbConfig>(); _networkConfig = api.Config <INetworkConfig>(); _syncConfig = api.Config <ISyncConfig>(); _txPoolConfig = api.Config <ITxPoolConfig>(); }
public NodeLifecycleManagerFactory(INodeTable nodeTable, IDiscoveryMessageFactory discoveryMessageFactory, IEvictionManager evictionManager, INodeStatsManager nodeStatsManager, INetworkConfig networkConfig, ILogManager logManager) { _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); _nodeTable = nodeTable ?? throw new ArgumentNullException(nameof(nodeTable)); _networkConfig = networkConfig ?? throw new ArgumentNullException(nameof(networkConfig)); _discoveryMessageFactory = discoveryMessageFactory ?? throw new ArgumentNullException(nameof(discoveryMessageFactory)); _evictionManager = evictionManager ?? throw new ArgumentNullException(nameof(evictionManager)); _nodeStatsManager = nodeStatsManager ?? throw new ArgumentNullException(nameof(nodeStatsManager)); }
private void AssignPeersMemory(INetworkConfig networkConfig) { PeersMemory = networkConfig.MaxActivePeers.MB(); if (PeersMemory > _remainingMemory * 0.75) { throw new InvalidDataException( $"Memory hint is not enough to satisfy the {nameof(NetworkConfig)}.{nameof(INetworkConfig.MaxActivePeers)}. " + $"Assign at least MaxActivePeers * ~1MB * ~1.25 of memory."); } }
public void Network_defaults_are_correct(string configFile) { ConfigProvider configProvider = GetConfigProviderFromFile(configFile); INetworkConfig networkConfig = configProvider.GetConfig <INetworkConfig>(); Assert.AreEqual(30303, networkConfig.DiscoveryPort, nameof(networkConfig.DiscoveryPort)); Assert.AreEqual(30303, networkConfig.P2PPort, nameof(networkConfig.P2PPort)); Assert.Null(networkConfig.ExternalIp, nameof(networkConfig.ExternalIp)); Assert.Null(networkConfig.LocalIp, nameof(networkConfig.LocalIp)); Assert.AreEqual(50, networkConfig.ActivePeersMaxCount, 50); }
public virtual async Task Execute(CancellationToken _) { // this should be outside of Ethereum Runner I guess INetworkConfig networkConfig = _api.Config <INetworkConfig>(); _api.IpResolver = new IPResolver(networkConfig, _api.LogManager); await _api.IpResolver.Initialize(); networkConfig.ExternalIp = _api.IpResolver.ExternalIp.ToString(); networkConfig.LocalIp = _api.IpResolver.LocalIp.ToString(); }
public void SetUp() { _rlpxPeer = new RlpxMock(_sessions); _discoveryApp = Substitute.For <IDiscoveryApp>(); _stats = new NodeStatsManager(new StatsConfig(), LimboLogs.Instance); _storage = new InMemoryStorage(); _peerLoader = new PeerLoader(new NetworkConfig(), _stats, _storage, LimboLogs.Instance); _networkConfig = new NetworkConfig(); _networkConfig.PeersPersistenceInterval = 50; _peerManager = new PeerManager(_rlpxPeer, _discoveryApp, _stats, _storage, _peerLoader, _networkConfig, LimboLogs.Instance); }