예제 #1
0
        public void LoadDBData()
        {
            //Todo:loda core from the db
            DB db = Factory.Instance.Model.Data;

            //1. Load mineralgos and miner programs
            if (db.Miners.Count == 0)
            {
                //load default ether miner
                IHashAlgorithm algo  = Factory.Instance.DefaultAlgorithm;
                IMiner         miner = algo.DefaultMiner();
                if (miner != null)
                {
                    List <GpuData> gpus        = ((MinerBase)miner).GetGpuList();
                    bool           atLeast1GPu = false;
                    foreach (GpuData gpuData in gpus)
                    {
                        if (gpuData.Make == CardMake.Nvidia || gpuData.Make == CardMake.Amd)
                        {
                            atLeast1GPu = true;
                        }
                    }
                    if (!atLeast1GPu)
                    {
                        //add a cpu monero miner
                        IHashAlgorithm cryptonight = new Coins.CryptoNote.CryptoNote();
                        miner = cryptonight.DefaultMiner();
                    }
                    Miners.Add(miner);
                    SelectedMiner = miner;
                }
            }
            else
            {
                IMiner miner = null;
                foreach (IMinerData item in db.Miners)
                {
                    IHashAlgorithm algo = Factory.Instance.CreateAlgoObject(item.Algorithm);
                    miner = algo.RegenerateMiner(item);
                    if (miner != null)
                    {
                        Miners.Add(miner);
                        if (miner.Id == db.CurrentMinerId)
                        {
                            SelectedMiner = miner;
                        }
                    }
                }
                if (SelectedMiner == null)
                {
                    SelectedMiner = miner;
                }
            }
            //2. load configured miners
        }
예제 #2
0
        public IHashAlgorithm CreateAlgoObject(string name)
        {
            IHashAlgorithm algo = null;

            switch (name)
            {
            case "Ethhash":
                algo = new EthHash.EthHash();
                break;

            case "Equihash":
                algo = new Equihash.Equihash();
                break;

            case "CryptoNote":
                algo = new Coins.CryptoNote.CryptoNote();
                break;
            }
            return(algo);
        }