Beispiel #1
0
        //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();
        }
Beispiel #2
0
        public ProtocolsManager(
            IEthSyncPeerPool ethSyncPeerPool,
            ISyncServer syncServer,
            ITxPool txPool,
            IDiscoveryApp discoveryApp,
            IMessageSerializationService serializationService,
            IRlpxPeer localPeer,
            INodeStatsManager nodeStatsManager,
            IProtocolValidator protocolValidator,
            INetworkStorage peerStorage,
            IPerfService perfService,
            ILogManager logManager)
        {
            _syncPool          = ethSyncPeerPool ?? throw new ArgumentNullException(nameof(ethSyncPeerPool));
            _syncServer        = syncServer ?? throw new ArgumentNullException(nameof(syncServer));
            _txPool            = txPool ?? throw new ArgumentNullException(nameof(txPool));
            _discoveryApp      = discoveryApp ?? throw new ArgumentNullException(nameof(discoveryApp));
            _serializer        = serializationService ?? throw new ArgumentNullException(nameof(serializationService));
            _localPeer         = localPeer ?? throw new ArgumentNullException(nameof(localPeer));
            _stats             = nodeStatsManager ?? throw new ArgumentNullException(nameof(nodeStatsManager));
            _protocolValidator = protocolValidator ?? throw new ArgumentNullException(nameof(protocolValidator));
            _perfService       = perfService ?? throw new ArgumentNullException(nameof(perfService));
            _peerStorage       = peerStorage ?? throw new ArgumentNullException(nameof(peerStorage));
            _logManager        = logManager ?? throw new ArgumentNullException(nameof(logManager));
            _logger            = _logManager.GetClassLogger();

            _protocolFactories        = GetProtocolFactories();
            localPeer.SessionCreated += SessionCreated;
        }
Beispiel #3
0
 public DiscoveryApp(
     INodesLocator nodesLocator,
     IDiscoveryManager discoveryManager,
     INodeTable nodeTable,
     IMessageSerializationService messageSerializationService,
     ICryptoRandom cryptoRandom,
     INetworkStorage discoveryStorage,
     INetworkConfig networkConfig,
     IDiscoveryConfig discoveryConfig,
     ITimestamper timestamper,
     ILogManager logManager,
     IPerfService perfService)
 {
     _logManager                  = logManager ?? throw new ArgumentNullException(nameof(logManager));
     _logger                      = _logManager.GetClassLogger();
     _perfService                 = perfService ?? throw new ArgumentNullException(nameof(perfService));
     _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 = messageSerializationService ?? throw new ArgumentNullException(nameof(messageSerializationService));
     _cryptoRandom                = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
     _discoveryStorage            = discoveryStorage ?? throw new ArgumentNullException(nameof(discoveryStorage));
     _networkConfig               = networkConfig ?? throw new ArgumentNullException(nameof(networkConfig));
     _discoveryStorage.StartBatch();
 }
Beispiel #4
0
        public ProtocolsManager(
            ISynchronizationManager synchronizationManager,
            ITransactionPool transactionPool,
            IDiscoveryApp discoveryApp,
            IMessageSerializationService serializationService,
            IRlpxPeer localPeer,
            INodeStatsManager nodeStatsManager,
            IProtocolValidator protocolValidator,
            INetworkStorage peerStorage,
            IPerfService perfService,
            ILogManager logManager)
        {
            _syncManager       = synchronizationManager ?? throw new ArgumentNullException(nameof(synchronizationManager));
            _transactionPool   = transactionPool ?? throw new ArgumentNullException(nameof(transactionPool));
            _discoveryApp      = discoveryApp ?? throw new ArgumentNullException(nameof(discoveryApp));
            _serializer        = serializationService ?? throw new ArgumentNullException(nameof(serializationService));
            _localPeer         = localPeer ?? throw new ArgumentNullException(nameof(localPeer));
            _stats             = nodeStatsManager ?? throw new ArgumentNullException(nameof(nodeStatsManager));
            _protocolValidator = protocolValidator ?? throw new ArgumentNullException(nameof(protocolValidator));
            _perfService       = perfService ?? throw new ArgumentNullException(nameof(perfService));
            _peerStorage       = peerStorage ?? throw new ArgumentNullException(nameof(peerStorage));
            _logManager        = logManager ?? throw new ArgumentNullException(nameof(logManager));
            _logger            = _logManager.GetClassLogger();

            _syncManager.SyncEvent   += OnSyncEvent;
            localPeer.SessionCreated += SessionCreated;
        }
Beispiel #5
0
        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 SynchronizationManager(
            IBlockTree blockTree,
            IBlockValidator blockValidator,
            IHeaderValidator headerValidator,
            ITransactionStore transactionStore,
            ITransactionValidator transactionValidator,
            ILogManager logManager,
            IBlockchainConfig blockchainConfig, IPerfService perfService)
        {
            _logger           = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            _blockchainConfig = blockchainConfig ?? throw new ArgumentNullException(nameof(blockchainConfig));
            _perfService      = perfService;

            _transactionStore     = transactionStore ?? throw new ArgumentNullException(nameof(transactionStore));
            _transactionValidator = transactionValidator ?? throw new ArgumentNullException(nameof(transactionValidator));

            _blockTree       = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _blockValidator  = blockValidator ?? throw new ArgumentNullException(nameof(blockValidator));
            _headerValidator = headerValidator ?? throw new ArgumentNullException(nameof(headerValidator));

            if (_logger.IsDebug)
            {
                _logger.Debug($"Initialized SynchronizationManager with head block {Head.ToString(BlockHeader.Format.Short)}");
            }

            _entireSyncStopWatch.Start();
        }
 public Eth63ProtocolHandler(
     IP2PSession p2PSession,
     IMessageSerializationService serializer,
     ISynchronizationManager sync,
     ILogManager logManager, IPerfService perfService) : base(p2PSession, serializer, sync, logManager, perfService)
 {
 }
 public PeerSessionLogger(ILogManager logManager, IConfigProvider configProvider, IPerfService perfService)
 {
     _perfService   = perfService;
     _logger        = logManager.GetClassLogger();
     _statsConfig   = configProvider.GetConfig <IStatsConfig>();
     _networkConfig = configProvider.GetConfig <INetworkConfig>();
 }
 protected ProtocolHandlerBase(IP2PSession p2PSession, IMessageSerializationService serializer, ILogManager logManager, IPerfService perfService)
 {
     Logger               = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
     _serializer          = serializer ?? throw new ArgumentNullException(nameof(serializer));
     P2PSession           = p2PSession ?? throw new ArgumentNullException(nameof(p2PSession));
     InitCompletionSource = new TaskCompletionSource <MessageBase>();
     PerfService          = perfService;
 }
Beispiel #10
0
 public DiscoveryStorage(IDiscoveryConfigurationProvider configurationProvider, INodeFactory nodeFactory, ILogger logger, IPerfService perfService)
 {
     _configurationProvider = configurationProvider;
     _nodeFactory           = nodeFactory;
     _logger      = logger;
     _perfService = perfService;
     _db          = new FullDbOnTheRocks(Path.Combine(_configurationProvider.DbBasePath, FullDbOnTheRocks.DiscoveryNodesDbPath));
 }
 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));
 }
Beispiel #12
0
 public Eth63ProtocolHandler(
     ISession session,
     IMessageSerializationService serializer,
     INodeStatsManager nodeStatsManager,
     ISyncServer syncServer,
     ILogManager logManager, IPerfService perfService,
     ITxPool txPool) : base(session, serializer, nodeStatsManager, syncServer, logManager, perfService, txPool)
 {
 }
 public Eth63ProtocolHandler(
     IP2PSession p2PSession,
     IMessageSerializationService serializer,
     ISynchronizationManager syncManager,
     ILogManager logManager, IPerfService perfService,
     IBlockTree blockTree, ITransactionPool transactionPool, ITimestamp timestamp) : base(p2PSession, serializer,
                                                                                          syncManager, logManager, perfService, blockTree, transactionPool, timestamp)
 {
 }
 public SimpleFilePublicKeyDb(string dbDirectoryPath, ILogManager logManager, IPerfService perfService)
 {
     _perfService = perfService;
     _dbPath      = Path.Combine(dbDirectoryPath, DbName);
     _logger      = logManager.GetClassLogger();
     if (!Directory.Exists(dbDirectoryPath))
     {
         Directory.CreateDirectory(dbDirectoryPath);
     }
     _dbLastDirName = new DirectoryInfo(dbDirectoryPath).Name;
     LoadData();
 }
Beispiel #15
0
 public EthereumRunner(IRpcModuleProvider rpcModuleProvider, IConfigProvider configurationProvider, ILogManager logManager)
 {
     _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager));
     _logger = _logManager.GetClassLogger();
     
     InitRlp();
     _configProvider = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider));
     _rpcModuleProvider = rpcModuleProvider ?? throw new ArgumentNullException(nameof(rpcModuleProvider));
     _initConfig = configurationProvider.GetConfig<IInitConfig>();
     _perfService = new PerfService(_logManager) {LogOnDebug = _initConfig.LogPerfStatsOnDebug};
     _networkHelper = new NetworkHelper(_logger);
 }
Beispiel #16
0
 public P2PProtocolHandler(
     IP2PSession p2PSession,
     IMessageSerializationService serializer,
     NodeId localNodeId,
     int listenPort,
     ILogManager logManager, IPerfService perfService)
     : base(p2PSession, serializer, logManager, perfService)
 {
     LocalNodeId        = localNodeId;
     ListenPort         = listenPort;
     AgreedCapabilities = new List <Capability>();
 }
Beispiel #17
0
        public RlpxPeer(NodeId localNodeId, int localPort, ISynchronizationManager synchronizationManager, IMessageSerializationService messageSerializationService, IEncryptionHandshakeService encryptionHandshakeService, INodeStatsProvider nodeStatsProvider, ILogManager logManager, IPerfService perfService)
        {
            _encryptionHandshakeService = encryptionHandshakeService ?? throw new ArgumentNullException(nameof(encryptionHandshakeService));
            _nodeStatsProvider          = nodeStatsProvider ?? throw new ArgumentNullException(nameof(nodeStatsProvider));
            _logManager             = logManager ?? throw new ArgumentNullException(nameof(logManager));
            _perfService            = perfService;
            _logger                 = logManager.GetClassLogger();
            _serializationService   = messageSerializationService ?? throw new ArgumentNullException(nameof(messageSerializationService));
            _synchronizationManager = synchronizationManager ?? throw new ArgumentNullException(nameof(synchronizationManager));

            LocalNodeId = localNodeId ?? throw new ArgumentNullException(nameof(localNodeId));
            _localPort  = localPort;
        }
 public P2PProtocolHandler(
     IP2PSession p2PSession,
     IMessageSerializationService serializer,
     NodeId localNodeId,
     int listenPort,
     ILogManager logManager, IPerfService perfService)
     : base(p2PSession, serializer, logManager)
 {
     _perfService       = perfService ?? throw new ArgumentNullException(nameof(perfService));
     LocalNodeId        = localNodeId;
     ListenPort         = listenPort;
     AgreedCapabilities = new List <Capability>();
 }
Beispiel #19
0
 public P2PProtocolHandler(
     ISession session,
     PublicKey localNodeId,
     INodeStatsManager nodeStatsManager,
     IMessageSerializationService serializer,
     IPerfService perfService,
     ILogManager logManager)
     : base(session, nodeStatsManager, serializer, logManager)
 {
     _nodeStatsManager  = nodeStatsManager ?? throw new ArgumentNullException(nameof(nodeStatsManager));
     _perfService       = perfService ?? throw new ArgumentNullException(nameof(perfService));
     LocalNodeId        = localNodeId;
     ListenPort         = session.LocalPort;
     AgreedCapabilities = new List <Capability>();
 }
Beispiel #20
0
        private void ConfigureTools(InitParams initParams)
        {
            _runnerCancellation = new CancellationTokenSource();
            _logger             = _logManager.GetClassLogger();

            _logger.Info("Initializing Ethereum");
            _logger.Info($"Server GC           : {System.Runtime.GCSettings.IsServerGC}");
            _logger.Info($"GC latency mode     : {System.Runtime.GCSettings.LatencyMode}");
            _logger.Info($"LOH compaction mode : {System.Runtime.GCSettings.LargeObjectHeapCompactionMode}");
            _privateKey = new PrivateKey(initParams.TestNodeKey);
            _dbBasePath = initParams.BaseDbPath ?? Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "db");

            _tracer      = initParams.TransactionTracingEnabled ? new TransactionTracer(initParams.BaseTracingPath, new UnforgivingJsonSerializer()) : NullTracer.Instance;
            _perfService = new PerfService(_logManager);
        }
Beispiel #21
0
 public RlpxPeer(
     PublicKey localNodeId,
     int localPort,
     IEncryptionHandshakeService encryptionHandshakeService,
     ILogManager logManager,
     IPerfService perfService,
     ISessionMonitor sessionMonitor)
 {
     _encryptionHandshakeService = encryptionHandshakeService ??
                                   throw new ArgumentNullException(nameof(encryptionHandshakeService));
     _logManager     = logManager ?? throw new ArgumentNullException(nameof(logManager));
     _perfService    = perfService ?? throw new ArgumentNullException(nameof(perfService));
     _sessionMonitor = sessionMonitor ?? throw new ArgumentNullException(nameof(sessionMonitor));
     _logger         = logManager.GetClassLogger();
     LocalNodeId     = localNodeId ?? throw new ArgumentNullException(nameof(localNodeId));
     LocalPort       = localPort;
 }
Beispiel #22
0
 public Eth62ProtocolHandler(
     IP2PSession p2PSession,
     IMessageSerializationService serializer,
     ISynchronizationManager syncManager,
     ILogManager logManager,
     IPerfService perfService,
     IBlockTree blockTree,
     ITransactionPool transactionPool,
     ITimestamp timestamp)
     : base(p2PSession, serializer, logManager)
 {
     SyncManager      = syncManager;
     _perfService     = perfService ?? throw new ArgumentNullException(nameof(perfService));
     _blockTree       = blockTree;
     _transactionPool = transactionPool;
     _timestamp       = timestamp;
 }
Beispiel #23
0
            public Context()
            {
                _channel = Substitute.For <IChannel>();
                _channelHandlerContext = Substitute.For <IChannelHandlerContext>();
                _pipeline = Substitute.For <IChannelPipeline>();
                _channelHandlerContext.Channel.Returns(_channel);
                _channel.Pipeline.Returns(_pipeline);
                _pipeline.Get <ZeroPacketSplitter>().Returns(new ZeroPacketSplitter(LimboLogs.Instance));
                _packetSender = Substitute.For <IPacketSender>();
                _syncServer   = Substitute.For <ISyncServer>();
                _syncServer   = Substitute.For <ISyncServer>();
                _syncServer.Genesis.Returns(Build.A.Block.Genesis.TestObject.Header);
                _syncServer.Head.Returns(Build.A.BlockHeader.TestObject);
                _txPool       = Substitute.For <ITxPool>();
                _discoveryApp = Substitute.For <IDiscoveryApp>();
                _serializer   = new MessageSerializationService();
                _localPeer    = Substitute.For <IRlpxPeer>();
                _localPeer.LocalPort.Returns(_localPort);
                _localPeer.LocalNodeId.Returns(TestItem.PublicKeyA);
                _nodeStatsManager = new NodeStatsManager(new StatsConfig(), LimboLogs.Instance);
                _blockTree        = Substitute.For <IBlockTree>();
                _blockTree.ChainId.Returns(1);
                _blockTree.Genesis.Returns(Build.A.Block.Genesis.TestObject.Header);
                _protocolValidator = new ProtocolValidator(_nodeStatsManager, _blockTree, LimboLogs.Instance);
                _peerStorage       = Substitute.For <INetworkStorage>();
                _perfService       = new PerfService(LimboLogs.Instance);
                _syncPeerPool      = Substitute.For <IEthSyncPeerPool>();
                _manager           = new ProtocolsManager(
                    _syncPeerPool,
                    _syncServer,
                    _txPool,
                    _discoveryApp,
                    _serializer,
                    _localPeer,
                    _nodeStatsManager,
                    _protocolValidator,
                    _peerStorage,
                    _perfService,
                    LimboLogs.Instance);

                _serializer.Register(new HelloMessageSerializer());
                _serializer.Register(new StatusMessageSerializer());
                _serializer.Register(new DisconnectMessageSerializer());
            }
Beispiel #24
0
        //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 Move Discover to Network
        //TODO update runner to run discovery

        public PeerManager(IRlpxPeer localPeer, IDiscoveryManager discoveryManager, ILogger logger, IDiscoveryConfigurationProvider configurationProvider, ISynchronizationManager synchronizationManager, INodeStatsProvider nodeStatsProvider, IPeerStorage peerStorage, IPerfService perfService)
        {
            _localPeer              = localPeer;
            _logger                 = logger;
            _configurationProvider  = configurationProvider;
            _synchronizationManager = synchronizationManager;
            _nodeStatsProvider      = nodeStatsProvider;
            _discoveryManager       = discoveryManager;
            _perfService            = perfService;
            _isDiscoveryEnabled     = _discoveryManager != null;

            if (_isDiscoveryEnabled)
            {
                discoveryManager.NodeDiscovered += async(s, e) => await OnNodeDiscovered(s, e);
            }
            localPeer.ConnectionInitialized += OnRemoteConnectionInitialized;
            _peerStorage = peerStorage;
            _peerStorage.StartBatch();
        }
Beispiel #25
0
        public Eth62ProtocolHandler(
            ISession session,
            IMessageSerializationService serializer,
            INodeStatsManager statsManager,
            ISyncServer syncServer,
            ILogManager logManager,
            IPerfService perfService,
            ITxPool txPool)
            : base(session, statsManager, serializer, logManager)
        {
            SyncServer   = syncServer;
            _perfService = perfService ?? throw new ArgumentNullException(nameof(perfService));
            _txPool      = txPool;
            _timestamp   = new Timestamp();

            _txFloodCheckTimer          = new System.Timers.Timer(_txFloodCheckInterval.TotalMilliseconds);
            _txFloodCheckTimer.Elapsed += CheckTxFlooding;
            _txFloodCheckTimer.Start();
        }
Beispiel #26
0
        public EthereumRunner(IRpcModuleProvider rpcModuleProvider, IConfigProvider configurationProvider, ILogManager logManager,
                              IGrpcService grpcService, IGrpcClient grpcClient, INdmConsumerChannelManager ndmConsumerChannelManager,
                              INdmDataPublisher ndmDataPublisher, INdmInitializer ndmInitializer)
        {
            _logManager  = logManager ?? throw new ArgumentNullException(nameof(logManager));
            _grpcService = grpcService;
            _grpcClient  = grpcClient;
            _ndmConsumerChannelManager = ndmConsumerChannelManager;
            _ndmDataPublisher          = ndmDataPublisher;
            _ndmInitializer            = ndmInitializer;
            _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);
            _networkHelper     = new NetworkHelper(_logger);
        }
        public Eth62ProtocolHandler(
            IP2PSession p2PSession,
            IMessageSerializationService serializer,
            ISynchronizationManager syncManager,
            ILogManager logManager,
            IPerfService perfService,
            IBlockTree blockTree,
            ITransactionPool transactionPool,
            ITimestamp timestamp)
            : base(p2PSession, serializer, logManager)
        {
            SyncManager      = syncManager;
            _perfService     = perfService ?? throw new ArgumentNullException(nameof(perfService));
            _blockTree       = blockTree;
            _transactionPool = transactionPool;
            _timestamp       = timestamp;

            _txFloodCheckTimer          = new System.Timers.Timer(_txFloodCheckInterval.TotalMilliseconds);
            _txFloodCheckTimer.Elapsed += CheckTxFlooding;
            _txFloodCheckTimer.Start();
        }
Beispiel #28
0
        public BlockchainProcessor(
            IBlockTree blockTree,
            ISealEngine sealEngine,
            ITransactionStore transactionStore,
            IDifficultyCalculator difficultyCalculator,
            IBlockProcessor blockProcessor,
            IEthereumSigner signer,
            ILogManager logManager, IPerfService perfService)
        {
            _logger    = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            _blockTree = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _blockTree.NewBestSuggestedBlock += OnNewBestBlock;

            _transactionStore     = transactionStore ?? throw new ArgumentNullException(nameof(transactionStore));
            _difficultyCalculator = difficultyCalculator ?? throw new ArgumentNullException(nameof(difficultyCalculator));
            _sealEngine           = sealEngine ?? throw new ArgumentNullException(nameof(sealEngine));
            _blockProcessor       = blockProcessor ?? throw new ArgumentNullException(nameof(blockProcessor));
            _signer      = signer ?? throw new ArgumentNullException(nameof(signer));
            _perfService = perfService;
            _stats       = new ProcessingStats(_logger);
        }
Beispiel #29
0
 public DiscoveryApp(
     INodesLocator nodesLocator,
     IDiscoveryManager discoveryManager,
     INodeTable nodeTable,
     IMessageSerializationService messageSerializationService,
     ICryptoRandom cryptoRandom,
     INetworkStorage discoveryStorage,
     INetworkConfig networkConfig,
     ILogManager logManager, IPerfService perfService)
 {
     _logManager                  = logManager;
     _perfService                 = perfService;
     _logger                      = _logManager.GetClassLogger();
     _networkConfig               = networkConfig;
     _nodesLocator                = nodesLocator;
     _discoveryManager            = discoveryManager;
     _nodeTable                   = nodeTable;
     _messageSerializationService = messageSerializationService;
     _cryptoRandom                = cryptoRandom;
     _discoveryStorage            = discoveryStorage;
     _discoveryStorage.StartBatch();
 }
 public NetworkStorage(string dbDirectory, INetworkConfig networkConfig, ILogManager logManager, IPerfService perfService)
 {
     _logger      = logManager?.GetClassLogger();
     _dbDirectory = dbDirectory;
     _db          = new SimpleFilePublicKeyDb(Path.Combine(networkConfig.DbBasePath, _dbDirectory), logManager, perfService);
 }