コード例 #1
0
ファイル: WCFHost.cs プロジェクト: SinaC/TetriNET2
 public WCFHost(IBanManager banManager, IClientManager clientManager, IAdminManager adminManager, IGameManager gameManager)
 {
     BanManager = banManager;
     ClientManager = clientManager;
     AdminManager = adminManager;
     GameManager = gameManager;
 }
コード例 #2
0
ファイル: Pool.cs プロジェクト: DistResearch/spacebux-pool
        private void InitManagers()
        {
            //try
            //{
            var storage = _objectFactory.GetStorage(Storages.Redis, Config);

            _minerManager = _objectFactory.GetMinerManager(Config, _daemonClient);

            var jobTracker = _objectFactory.GetJobTracker();

            var blockProcessor = _objectFactory.GetBlockProcessor(Config, _daemonClient);

            _shareManager = _objectFactory.GetShareManager(Config, _daemonClient, jobTracker, storage, blockProcessor);

            var vardiffManager = _objectFactory.GetVardiffManager(Config, _shareManager);

            _banningManager = _objectFactory.GetBanManager(Config, _shareManager);

            _jobManager = _objectFactory.GetJobManager(Config, _daemonClient, jobTracker, _shareManager, _minerManager, _hashAlgorithm);
            _jobManager.Initialize(InstanceId);

            var paymentProcessor = _objectFactory.GetPaymentProcessor(Config, _daemonClient, storage, blockProcessor);

            paymentProcessor.Initialize(Config.Payments);

            var latestBlocks = _objectFactory.GetLatestBlocks(storage);
            var blockStats   = _objectFactory.GetBlockStats(latestBlocks, storage);

            Statistics = _objectFactory.GetPerPoolStats(Config, _daemonClient, _minerManager, _hashAlgorithm, blockStats, storage);
            //}
            //catch (Exception e)
            //{
            //    _logger.Error("Pool initialization error: {0:l}", e.Message);
            //}
        }
コード例 #3
0
ファイル: Pool.cs プロジェクト: zelda180/CoiniumServ
        private void InitManagers()
        {
            try
            {
                AccountManager    = _objectFactory.GetAccountManager(_storage, Config);
                BlockRepository   = _objectFactory.GetBlockRepository(_storage);
                PaymentRepository = _objectFactory.GetPaymentRepository(_storage);
                MinerManager      = _objectFactory.GetMinerManager(Config, _storage, AccountManager);

                var jobTracker = _objectFactory.GetJobTracker(Config);
                _shareManager = _objectFactory.GetShareManager(Config, Daemon, jobTracker, _storage);
                _objectFactory.GetVardiffManager(Config, _shareManager);
                _banningManager = _objectFactory.GetBanManager(Config, _shareManager);
                _jobManager     = _objectFactory.GetJobManager(Config, Daemon, jobTracker, _shareManager, MinerManager, HashAlgorithm);
                _jobManager.Initialize(InstanceId);

                var blockProcessor   = _objectFactory.GetBlockProcessor(Config, Daemon, _storage);
                var blockAccounter   = _objectFactory.GetBlockAccounter(Config, _storage, AccountManager);
                var paymentProcessor = _objectFactory.GetPaymentProcessor(Config, _storage, Daemon, AccountManager);
                _objectFactory.GetPaymentManager(Config, blockProcessor, blockAccounter, paymentProcessor);

                ProfitInfo = _objectFactory.GetProfitInfo(NetworkInfo, Config);
            }
            catch (Exception e)
            {
                _logger.Error("Pool initialization error: {0:l}", e.Message);
            }
        }
コード例 #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="StratumServer"/> class.
 /// </summary>
 /// <param name="pool"></param>
 /// <param name="minerManager">The miner manager.</param>
 /// <param name="jobManager"></param>
 /// <param name="banManager"></param>
 /// <param name="poolConfig"></param>
 public StratumServer(IPoolConfig poolConfig, IPool pool, IMinerManager minerManager, IJobManager jobManager, IBanManager banManager)
 {
     _pool         = pool;
     _minerManager = minerManager;
     _jobManager   = jobManager;
     _banManager   = banManager;
     _logger       = Log.ForContext <StratumServer>().ForContext("Component", poolConfig.Coin.Name);
 }
コード例 #5
0
        public void TestIsBannedFalseWhenNoBannedPlayers()
        {
            IBanManager banManager = CreateBanManager();

            bool isBanned = banManager.IsBanned(IPAddress.Parse("127.0.0.1"));

            Assert.IsFalse(isBanned);
        }
コード例 #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="StratumServer"/> class.
 /// </summary>
 /// <param name="pool"></param>
 /// <param name="minerManager">The miner manager.</param>
 /// <param name="jobManager"></param>
 /// <param name="banManager"></param>
 /// <param name="poolConfig"></param>
 public StratumServer(IPoolConfig poolConfig, IPool pool, IMinerManager minerManager, IJobManager jobManager, IBanManager banManager)
 {
     _pool = pool;
     _minerManager = minerManager;
     _jobManager = jobManager;
     _banManager = banManager;
     _logger = Log.ForContext<StratumServer>().ForContext("Component", poolConfig.Coin.Name);
 }
コード例 #7
0
        public IPFilterServiceBehavior(IBanManager verifier, IClientManager clientManager)
        {
            if (verifier == null)
                throw new ArgumentNullException("verifier");
            if (clientManager == null)
                throw new ArgumentNullException("clientManager");

            _verifier = verifier;
            _clientManager = clientManager;
        }
コード例 #8
0
        public void OnSetup()
        {
            var mockLogger = new Mock <ILogManager>();

            mockLogger.Setup(x => x.Error(It.IsAny <Exception>()));

            var mockKernel = new Mock <IKernel>();
            var mockTimer  = new Mock <ITimer>();
            var mockRepo   = new Mock <IBanRepository>();

            _banManager = new BanManager(mockKernel.Object, mockTimer.Object, mockLogger.Object, mockRepo.Object);
        }
コード例 #9
0
        public IPFilterServiceBehavior(IBanManager verifier, IPlayerManager playerManager)
        {
            if (verifier == null)
            {
                throw new ArgumentNullException(nameof(verifier));
            }
            if (playerManager == null)
            {
                throw new ArgumentNullException(nameof(playerManager));
            }

            _verifier      = verifier;
            _playerManager = playerManager;
        }
コード例 #10
0
        public IMiningServer GetMiningServer(string type, IPoolConfig poolConfig, IPool pool, IMinerManager minerManager, IJobManager jobManager,
                                             IBanManager banManager)
        {
            var @params = new NamedParameterOverloads
            {
                { "poolConfig", poolConfig },
                { "pool", pool },
                { "minerManager", minerManager },
                { "jobManager", jobManager },
                { "banManager", banManager },
            };

            return(_applicationContext.Container.Resolve <IMiningServer>(type, @params));
        }
コード例 #11
0
ファイル: ServerTest.cs プロジェクト: SinaC/TetriNET
        private IServer CreateServerWithHost()
        {
            _factory = new FactoryMock();
            IPlayerManager    playerManager    = _factory.CreatePlayerManager(6);
            ISpectatorManager spectatorManager = _factory.CreateSpectatorManager(10);
            IBanManager       banManager       = _factory.CreateBanManager();
            IPieceProvider    pieceProvider    = _factory.CreatePieceProvider();

            _host        = new HostBaseMock(playerManager, spectatorManager, banManager, _factory);
            _actionQueue = _factory.CreateActionQueue() as ActionQueueMock;
            IServer server = new TetriNET.Server.Server(playerManager, spectatorManager, pieceProvider, _actionQueue);

            server.AddHost(_host);
            return(server);
        }
コード例 #12
0
        private void ServiceMainLoop()
        {
            //
            IFactory factory = new Factory();
            //
            IBanManager banManager = factory.CreateBanManager();
            //
            IPlayerManager    playerManager    = factory.CreatePlayerManager(6);
            ISpectatorManager spectatorManager = factory.CreateSpectatorManager(10);

            //
            IHost wcfHost = new Server.WCFHost.WCFHost(
                playerManager,
                spectatorManager,
                banManager,
                factory)
            {
                Port = ConfigurationManager.AppSettings["port"]
            };

            //
            IActionQueue actionQueue = new BlockingActionQueue();

            //
            IPieceProvider pieceProvider = factory.CreatePieceProvider();

            //
            IServer server = new Server.Server(playerManager, spectatorManager, pieceProvider, actionQueue);

            server.AddHost(wcfHost);

            //
            try
            {
                server.StartServer();

                while (!_cancellationTokenSource.IsCancellationRequested)
                {
                    Thread.Sleep(250);
                }

                server.StopServer();
            }
            catch (Exception ex)
            {
                Log.Default.WriteLine(LogLevels.Error, "Error while running server. Exception {0}", ex);
            }
        }
コード例 #13
0
        protected HostBase(IPlayerManager playerManager, ISpectatorManager spectatorManager, IBanManager banManager, IFactory factory)
        {
            if (playerManager == null)
            {
                throw new ArgumentNullException(nameof(playerManager));
            }
            if (banManager == null)
            {
                throw new ArgumentNullException(nameof(banManager));
            }
            if (factory == null)
            {
                throw new ArgumentNullException(nameof(factory));
            }

            PlayerManager    = playerManager;
            SpectatorManager = spectatorManager;
            BanManager       = banManager;
            Factory          = factory;
        }
コード例 #14
0
ファイル: Pool.cs プロジェクト: turbobit/merit-pool
        private bool InitCoreServices()
        {
            AccountManager = _objectFactory.GetAccountManager(_storage, Config);
            MinerManager   = _objectFactory.GetMinerManager(Config, _storage, AccountManager, Daemon);

            var jobTracker = _objectFactory.GetJobTracker(Config);

            _shareManager = _objectFactory.GetShareManager(Config, Daemon, jobTracker, _storage);
            _objectFactory.GetVardiffManager(Config, _shareManager);
            _banningManager = _objectFactory.GetBanManager(Config, _shareManager);
            _jobManager     = _objectFactory.GetJobManager(Config, Daemon, jobTracker, _shareManager, MinerManager, HashAlgorithm);
            _jobManager.Initialize(InstanceId);

            var blockProcessor   = _objectFactory.GetBlockProcessor(Config, Daemon, _storage);
            var blockAccounter   = _objectFactory.GetBlockAccounter(Config, _storage, AccountManager);
            var paymentProcessor = _objectFactory.GetPaymentProcessor(Config, _storage, Daemon, AccountManager);

            _objectFactory.GetPaymentManager(Config, blockProcessor, blockAccounter, paymentProcessor);

            return(true);
        }
コード例 #15
0
ファイル: Pool.cs プロジェクト: zacons/CoiniumServ
        private void InitManagers()
        {
            try
            {
                BlocksCache  = _objectFactory.GetBlocksCache(_storageLayer);
                MinerManager = _objectFactory.GetMinerManager(Config, _storageLayer);

                var jobTracker     = _objectFactory.GetJobTracker(Config);
                var blockProcessor = _objectFactory.GetBlockProcessor(Config, _daemonClient);
                _shareManager = _objectFactory.GetShareManager(Config, _daemonClient, jobTracker, _storageLayer, blockProcessor);
                _objectFactory.GetVardiffManager(Config, _shareManager);
                _banningManager = _objectFactory.GetBanManager(Config, _shareManager);
                _jobManager     = _objectFactory.GetJobManager(Config, _daemonClient, jobTracker, _shareManager, MinerManager, HashAlgorithm);
                _jobManager.Initialize(InstanceId);

                var paymentProcessor = _objectFactory.GetPaymentProcessor(Config, _daemonClient, _storageLayer, blockProcessor);
                paymentProcessor.Initialize();
            }
            catch (Exception e)
            {
                _logger.Error("Pool initialization error: {0:l}", e.Message);
            }
        }
コード例 #16
0
        static void Main(string[] args)
        {
            Log.Default.Initialize(ConfigurationManager.AppSettings["logpath"], "server.log");

            Version version = Assembly.GetEntryAssembly().GetName().Version;
            string  company = ((AssemblyCompanyAttribute)Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(AssemblyCompanyAttribute), false)).Company;
            string  product = ((AssemblyProductAttribute)Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(AssemblyProductAttribute), false)).Product;

            Log.Default.WriteLine(LogLevels.Info, "{0} {1}.{2} by {3}", product, version.Major, version.Minor, company);

            //
            IFactory factory = new Factory();

            //
            IBanManager banManager = factory.CreateBanManager();

            //
            IPlayerManager    playerManager    = factory.CreatePlayerManager(6);
            ISpectatorManager spectatorManager = factory.CreateSpectatorManager(10);

            //
            IHost wcfHost = new Server.WCFHost.WCFHost(
                playerManager,
                spectatorManager,
                banManager,
                factory)
            {
                Port = ConfigurationManager.AppSettings["port"]
            };

            //
            IHost builtInHost = new BuiltInHostBase(
                playerManager,
                spectatorManager,
                banManager,
                factory);


            IHost socketHost = new TCPHostBase(playerManager,
                                               spectatorManager,
                                               banManager,
                                               factory)
            {
                Port = 5656
            };

            //
            List <DummyBuiltInClient> clients = new List <DummyBuiltInClient>
            {
                //new DummyBuiltInClient("BuiltIn-Joel" + Guid.NewGuid().ToString().Substring(0, 5), () => builtInHost),
                //new DummyBuiltInClient("BuiltIn-Celine" + Guid.NewGuid().ToString().Substring(0, 5), () => builtInHost)
            };

            //
            IActionQueue actionQueue = factory.CreateActionQueue();

            //
            IPieceProvider pieceProvider = factory.CreatePieceProvider();

            //
            IServer server = new Server.Server(playerManager, spectatorManager, pieceProvider, actionQueue);

            server.AddHost(wcfHost);
            server.AddHost(builtInHost);
            server.AddHost(socketHost);

            //
            try
            {
                server.StartServer();
            }
            catch (Exception ex)
            {
                Log.Default.WriteLine(LogLevels.Error, "Cannot start server. Exception: {0}", ex);
                return;
            }

            DisplayHelp();

            bool stopped = false;

            while (!stopped)
            {
                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo cki = Console.ReadKey(true);
                    switch (cki.Key)
                    {
                    default:
                        DisplayHelp();
                        break;

                    case ConsoleKey.X:
                        server.StopServer();
                        stopped = true;
                        break;

                    case ConsoleKey.S:
                        server.StartGame();
                        break;

                    case ConsoleKey.T:
                        server.StopGame();
                        break;

                    case ConsoleKey.P:
                        server.PauseGame();
                        break;

                    case ConsoleKey.R:
                        server.ResumeGame();
                        break;

                    case ConsoleKey.Add:
                        clients.Add(new DummyBuiltInClient("BuiltIn-" + Guid.NewGuid().ToString().Substring(0, 5), () => builtInHost));
                        break;

                    case ConsoleKey.Subtract:
                    {
                        DummyBuiltInClient client = clients.LastOrDefault();
                        if (client != null)
                        {
                            client.DisconnectFromServer();
                            clients.Remove(client);
                        }
                        break;
                    }

                    case ConsoleKey.L:
                    {
                        DummyBuiltInClient client = clients.LastOrDefault();
                        client?.Lose();
                        break;
                    }

                    case ConsoleKey.D:
                        Console.WriteLine("Players:");
                        foreach (IPlayer p in playerManager.Players)
                        {
                            Console.WriteLine("{0}) {1} [{2}] {3} {4} {5:HH:mm:ss.fff} {6:HH:mm:ss.fff}", p.Id, p.Name, p.Team, p.State, p.PieceIndex, p.LastActionFromClient, p.LastActionToClient);
                        }
                        Console.WriteLine("Spectators:");
                        foreach (ISpectator s in spectatorManager.Spectators)
                        {
                            Console.WriteLine("{0}) {1} {2:HH:mm:ss.fff} {3:HH:mm:ss.fff}", s.Id, s.Name, s.LastActionFromClient, s.LastActionToClient);
                        }
                        break;

                    case ConsoleKey.W:
                        foreach (WinEntry e in server.WinList)
                        {
                            Console.WriteLine("{0}[{1}]: {2} pts", e.PlayerName, e.Team, e.Score);
                        }
                        break;

                    case ConsoleKey.Q:
                        server.ResetWinList();
                        break;

                    case ConsoleKey.O:
                    {
                        GameOptions options = server.Options;
                        foreach (PieceOccurancy occurancy in options.PieceOccurancies)
                        {
                            Console.WriteLine("{0}:{1}", occurancy.Value, occurancy.Occurancy);
                        }
                        foreach (SpecialOccurancy occurancy in options.SpecialOccurancies)
                        {
                            Console.WriteLine("{0}:{1}", occurancy.Value, occurancy.Occurancy);
                        }
                    }
                    break;

                    case ConsoleKey.I:
                    {
                        foreach (KeyValuePair <string, GameStatisticsByPlayer> byPlayer in server.GameStatistics)
                        {
                            GameStatisticsByPlayer stats = byPlayer.Value;
                            string playerName            = byPlayer.Key;
                            Console.WriteLine("{0}) {1} : 1:{2} 2:{3} 3:{4} 4:{5}", byPlayer.Key, playerName, stats.SingleCount, stats.DoubleCount, stats.TripleCount, stats.TetrisCount);
                            foreach (KeyValuePair <Specials, Dictionary <string, int> > bySpecial in stats.SpecialsUsed)
                            {
                                Console.WriteLine("Special {0}", bySpecial.Key);
                                foreach (KeyValuePair <string, int> kv in bySpecial.Value)
                                {
                                    string otherName = kv.Key;
                                    Console.WriteLine("\t{0}:{1}", otherName, kv.Value);
                                }
                            }
                        }
                        break;
                    }
                    }
                }
                else
                {
                    System.Threading.Thread.Sleep(100);
                    Parallel.ForEach(
                        clients,
                        client => client.Test());
                }
            }
        }
コード例 #17
0
ファイル: BuiltInHostBase.cs プロジェクト: SinaC/TetriNET
 public BuiltInHostBase(IPlayerManager playerManager, ISpectatorManager spectatorManager, IBanManager banManager, IFactory factory)
     : base(playerManager, spectatorManager, banManager, factory)
 {
 }
コード例 #18
0
ファイル: Pool.cs プロジェクト: carloslozano/CoiniumServ
        private void InitManagers()
        {
            try
            {
                AccountManager = _objectFactory.GetAccountManager(_storage, Config);
                BlockRepository = _objectFactory.GetBlockRepository(_storage);
                PaymentRepository = _objectFactory.GetPaymentRepository(_storage);
                MinerManager = _objectFactory.GetMinerManager(Config, _storage, AccountManager);

                var jobTracker = _objectFactory.GetJobTracker(Config);
                _shareManager = _objectFactory.GetShareManager(Config, Daemon, jobTracker, _storage);
                _objectFactory.GetVardiffManager(Config, _shareManager);
                _banningManager = _objectFactory.GetBanManager(Config, _shareManager);
                _jobManager = _objectFactory.GetJobManager(Config, Daemon, jobTracker, _shareManager, MinerManager, HashAlgorithm);
                _jobManager.Initialize(InstanceId);

                var blockProcessor =_objectFactory.GetBlockProcessor(Config, Daemon, _storage);
                var blockAccounter = _objectFactory.GetBlockAccounter(Config, _storage, AccountManager);
                var paymentProcessor = _objectFactory.GetPaymentProcessor(Config, _storage, Daemon, AccountManager);
                _objectFactory.GetPaymentManager(Config, blockProcessor, blockAccounter, paymentProcessor);

                ProfitInfo = _objectFactory.GetProfitInfo(NetworkInfo, Config);
            }
            catch (Exception e)
            {
                _logger.Error("Pool initialization error: {0:l}", e.Message);
            }
        }
コード例 #19
0
ファイル: WCFHost.cs プロジェクト: SinaC/TetriNET
        public WCFHost(IPlayerManager playerManager, ISpectatorManager spectatorManager, IBanManager banManager, IFactory factory)
            : base(playerManager, spectatorManager, banManager, factory)
        {
            _serviceHost = new WCFServiceHost(this);

            _started = false;
        }
コード例 #20
0
ファイル: Pool.cs プロジェクト: icede/CoiniumServ-develop
        private bool InitCoreServices()
        {
            AccountManager = _objectFactory.GetAccountManager(_storage, Config);
            MinerManager = _objectFactory.GetMinerManager(Config, _storage, AccountManager);

            var jobTracker = _objectFactory.GetJobTracker(Config);
            _shareManager = _objectFactory.GetShareManager(Config, Daemon, jobTracker, _storage);
            _objectFactory.GetVardiffManager(Config, _shareManager);
            _banningManager = _objectFactory.GetBanManager(Config, _shareManager);
            _jobManager = _objectFactory.GetJobManager(Config, Daemon, jobTracker, _shareManager, MinerManager, HashAlgorithm);
            _jobManager.Initialize(InstanceId);

            var blockProcessor = _objectFactory.GetBlockProcessor(Config, Daemon, _storage);
            var blockAccounter = _objectFactory.GetBlockAccounter(Config, _storage, AccountManager);
            var paymentProcessor = _objectFactory.GetPaymentProcessor(Config, _storage, Daemon, AccountManager);
            _objectFactory.GetPaymentManager(Config, blockProcessor, blockAccounter, paymentProcessor);

            return true;
        }
コード例 #21
0
        public IMiningServer GetMiningServer(string type, IPoolConfig poolConfig, IPool pool, IMinerManager minerManager, IJobManager jobManager, IBanManager banManager)
        {
            var @params = new NamedParameterOverloads
            {
                {"poolConfig", poolConfig},
                {"pool", pool},
                {"minerManager", minerManager},
                {"jobManager", jobManager},
                {"banManager", banManager},
            };

            return _applicationContext.Container.Resolve<IMiningServer>(type, @params);
        }
コード例 #22
0
 public void OnTeardown()
 {
     _banManager.ClearBans();
     _banManager = null;
 }
コード例 #23
0
ファイル: Pool.cs プロジェクト: nuggetbram/coinium-whrl
        private void InitManagers()
        {
            // init the algorithm
            _hashAlgorithm = _objectFactory.GetHashAlgorithm(Config.Coin.Algorithm);

            _storage = _objectFactory.GetStorage(Storages.Redis, Config);

            _paymentProcessor = _objectFactory.GetPaymentProcessor(Config.Coin.Name, _daemonClient, _storage, Config.Wallet);
            _paymentProcessor.Initialize(Config.Payments);

            _minerManager = _objectFactory.GetMiningManager(Config.Coin.Name, _daemonClient);

            _jobTracker = _objectFactory.GetJobTracker();

            _shareManager = _objectFactory.GetShareManager(Config.Coin.Name, _daemonClient, _jobTracker, _storage);

            _vardiffManager = _objectFactory.GetVardiffManager(Config.Coin.Name, _shareManager, Config.Stratum.Vardiff);

            _banningManager = _objectFactory.GetBanManager(Config.Coin.Name, _shareManager, Config.Banning);

            _jobManager = _objectFactory.GetJobManager(Config.Coin.Name, _daemonClient, _jobTracker, _shareManager, _minerManager,
                _hashAlgorithm, Config.Wallet, Config.Rewards);

            _jobManager.Initialize(InstanceId);

            var latestBlocks = _objectFactory.GetLatestBlocks(_storage);
            var blockStats = _objectFactory.GetBlockStats(latestBlocks, _storage);
            Statistics = _objectFactory.GetPerPoolStats(Config, _daemonClient, _minerManager, _hashAlgorithm, blockStats, _storage);
        }
コード例 #24
0
ファイル: TCPHostBase.cs プロジェクト: SinaC/TetriNET
 public TCPHostBase(IPlayerManager playerManager, ISpectatorManager spectatorManager, IBanManager banManager, IFactory factory)
     : base(playerManager, spectatorManager, banManager, factory)
 {
     _serviceHost = new SocketServiceHost(this);
 }