private async Task BenchmarkPluginAlgorithm(/*PluginAlgorithm algo*/)
        {
            var algo   = (PluginAlgorithm)_currentAlgorithm;
            var plugin = MinerPluginsManager.GetPluginWithUuid(algo.BaseAlgo.MinerID);
            var miner  = plugin.CreateMiner();

            miner.InitMiningPairs(new List <(BaseDevice, CommonAlgorithm.Algorithm)> {
                (Device.PluginDevice, algo.BaseAlgo)
            });
Beispiel #2
0
        public static bool ShouldGroup(MiningPair a, MiningPair b)
        {
            if (a.Algorithm.MinerID != b.Algorithm.MinerID)
            {
                return(false);
            }
            var plugin = MinerPluginsManager.GetPluginWithUuid(a.Algorithm.MinerID);

            if (plugin == null)
            {
                return(false);
            }
            var canGroup = plugin.CanGroup(a, b);

            return(canGroup);
        }
        private static bool CheckPluginCanGroup(MiningPair a, MiningPair b)
        {
            var pluginA = (device : a.Device.PluginDevice, algorithm : ((PluginAlgorithm)a.Algorithm).BaseAlgo);
            var pluginB = (device : b.Device.PluginDevice, algorithm : ((PluginAlgorithm)b.Algorithm).BaseAlgo);

            if (pluginA.algorithm.MinerID != pluginB.algorithm.MinerID)
            {
                return(false);
            }

            var plugin = MinerPluginsManager.GetPluginWithUuid(pluginA.algorithm.MinerID);
            // TODO can plugin be null?
            var canGroup = plugin.CanGroup(pluginA, pluginB);

            return(canGroup);
        }
Beispiel #4
0
        public static Miner CreateMinerForMining(List <MiningPair> miningPairs, string groupKey)
        {
            var pair = miningPairs.FirstOrDefault();

            if (pair == null || pair.Algorithm == null)
            {
                return(null);
            }
            var algorithm = pair.Algorithm;
            var plugin    = MinerPluginsManager.GetPluginWithUuid(algorithm.MinerID);

            if (plugin != null)
            {
                return(new Miner(plugin, miningPairs, groupKey));
            }
            return(null);
        }
        private async Task BenchmarkPluginAlgorithm(PluginAlgorithm algo)
        {
            var plugin     = MinerPluginsManager.GetPluginWithUuid(algo.BaseAlgo.MinerID);
            var miner      = plugin.CreateMiner();
            var miningPair = new MinerPlugin.MiningPair
            {
                Device    = Device.BaseDevice,
                Algorithm = algo.BaseAlgo
            };
            // check ethlargement
            var miningPairs = new List <MinerPlugin.MiningPair> {
                miningPair
            };

            EthlargementIntegratedPlugin.Instance.Start(miningPairs);
            miner.InitMiningPairs(miningPairs);
            // fill service since the benchmark might be online. DemoUser.BTC must be used
            miner.InitMiningLocationAndUsername(StratumService.SelectedServiceLocation, DemoUser.BTC);
            _powerHelper.Start();
            var result = await miner.StartBenchmark(_stopBenchmark.Token, _performanceType);

            //EthlargementIntegratedPlugin.Instance.Stop(miningPairs); // TODO check stopping
            var power = _powerHelper.Stop();

            if (result.Success || result.AlgorithmTypeSpeeds?.Count > 0)
            {
                var ids    = result.AlgorithmTypeSpeeds.Select(ats => ats.AlgorithmType).ToList();
                var speeds = result.AlgorithmTypeSpeeds.Select(ats => ats.Speed).ToList();
                algo.Speeds     = speeds;
                algo.PowerUsage = power;
                // set status to empty string it will return speed
                algo.ClearBenchmarkPending();
                BenchmarkManager.SetCurrentStatus(Device, algo, "");
            }
            else
            {
                // add new failed list
                _benchmarkFailedAlgo.Add(algo.AlgorithmName);
                BenchmarkManager.SetCurrentStatus(Device, algo, result.ErrorMessage);
            }
        }
Beispiel #6
0
 public MinerFromPlugin(string pluginUUID, List <MiningPair> miningPairs, string groupKey) : base(pluginUUID, miningPairs, groupKey)
 {
     _plugin = MinerPluginsManager.GetPluginWithUuid(pluginUUID);
     _miner  = _plugin.CreateMiner();
 }
Beispiel #7
0
        public MinerFromPlugin(string pluginUUID) : base(pluginUUID)
        {
            var plugin = MinerPluginsManager.GetPluginWithUuid(pluginUUID);

            _miner = plugin.CreateMiner();
        }