예제 #1
0
        private void InitializeCommunicationLayer()
        {
            INodeConfiguration nodeConfiguration = _configurationService.Get <INodeConfiguration>();

            foreach (string communicationServiceName in nodeConfiguration.CommunicationServices)
            {
                CommunicationConfigurationBase communicationConfiguration = (CommunicationConfigurationBase)_configurationService[communicationServiceName];
                IServerCommunicationService    serverCommunicationService = _communicationServicesFactory.GetInstance(communicationConfiguration.CommunicationServiceName);
                serverCommunicationService.Init(new SocketListenerSettings(communicationConfiguration.MaxConnections, communicationConfiguration.ReceiveBufferSize, new IPEndPoint(IPAddress.Any, communicationConfiguration.ListeningPort)));
                _communicationServicesRegistry.RegisterInstance(serverCommunicationService, communicationConfiguration.CommunicationServiceName);
            }

            _packetsHandler.Initialize(_cancellationTokenSource.Token);
        }
예제 #2
0
        internal void Start()
        {
            INodeConfiguration nodeConfiguration = _configurationService.Get <INodeConfiguration>();

            foreach (string communicationServiceName in nodeConfiguration.CommunicationServices)
            {
                CommunicationConfigurationBase communicationConfiguration = (CommunicationConfigurationBase)_configurationService[communicationServiceName];
                _communicationServicesRegistry.GetInstance(communicationConfiguration.CommunicationServiceName).Start();
            }

            _packetsHandler.Start();

            foreach (IModule module in _modulesRepository.GetBulkInstances())
            {
                module.Start();
            }
        }
예제 #3
0
 public NetworkSynchronizer(IBlockCreator blockCreator, IClientCommunicationServiceRepository clientCommunicationServiceRepository, ICryptoService cryptoService,
                            IDataAccessService dataAccessService, IHashCalculationsRepository hashCalculationsRepository, IConfigurationService configurationService,
                            IBlockParsersRepositoriesRepository blockParsersRepositoriesRepository, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, INodesResolutionService nodesResolutionService,
                            IStatesRepository statesRepository, ILoggerService loggerService)
 {
     _cryptoService                      = cryptoService;
     _dataAccessService                  = dataAccessService;
     _blockCreator                       = blockCreator;
     _communicationService               = clientCommunicationServiceRepository.GetInstance("TcpClientCommunicationService");
     _defaultHashCalculation             = hashCalculationsRepository.Create(Globals.DEFAULT_HASH);
     _synchronizerConfiguration          = configurationService.Get <ISynchronizerConfiguration>();
     _communicationConfiguration         = (CommunicationConfigurationBase)configurationService["generalTcpCommunication"];
     _blockParsersRepositoriesRepository = blockParsersRepositoriesRepository;
     _nodesResolutionService             = nodesResolutionService;
     _identityKeyProvider                = identityKeyProvidersRegistry.GetInstance();
     _clientState = statesRepository.GetInstance <IClientState>();
     _logger      = loggerService.GetLogger(nameof(NetworkSynchronizer));
 }