示例#1
0
 public SRBMinerPlugin()
 {
     // mandatory init
     InitInsideConstuctorPluginSupportedAlgorithmsSettings();
     // set default internal settings
     MinerOptionsPackage = PluginInternalSettings.MinerOptionsPackage;
     // https://github.com/doktor83/SRBMiner-Multi
     MinersBinsUrlsSettings = new MinersBinsUrlsSettings
     {
         BinVersion = "v0.6.0",
         ExePath    = new List <string> {
             "SRBMiner-Multi-0-6-0", "SRBMiner-MULTI.exe"
         },
         Urls = new List <string>
         {
             "https://github.com/doktor83/SRBMiner-Multi/releases/download/0.6.0/SRBMiner-Multi-0-6-0-win64.zip",
         }
     };
     PluginMetaInfo = new PluginMetaInfo
     {
         PluginDescription          = "SRBMiner-MULTI is an AMD GPU Miner made for mining cryptocurrencies.",
         SupportedDevicesAlgorithms = SupportedDevicesAlgorithmsDict()
     };
 }
示例#2
0
 public XMRigPlugin()
 {
     // mandatory init
     InitInsideConstuctorPluginSupportedAlgorithmsSettings();
     // set default internal settings
     MinerOptionsPackage = PluginInternalSettings.MinerOptionsPackage;
     // https://github.com/xmrig/xmrig
     MinersBinsUrlsSettings = new MinersBinsUrlsSettings
     {
         BinVersion = "v6.8.1",
         ExePath    = new List <string> {
             "xmrig-6.8.1", "xmrig.exe"
         },
         Urls = new List <string>
         {
             "https://github.com/xmrig/xmrig/releases/download/v6.8.1/xmrig-6.8.1-msvc-win64.zip" // original
         }
     };
     PluginMetaInfo = new PluginMetaInfo
     {
         PluginDescription          = "CryptoNight and RandomX (Monero) CPU miner",
         SupportedDevicesAlgorithms = SupportedDevicesAlgorithmsDict()
     };
 }
示例#3
0
 public CryptoDredgePlugin()
 {
     // mandatory init
     InitInsideConstuctorPluginSupportedAlgorithmsSettings();
     MinerOptionsPackage = PluginInternalSettings.MinerOptionsPackage;
     // https://github.com/technobyl/CryptoDredge/releases | https://cryptodredge.org/ | https://bitcointalk.org/index.php?topic=4807821.0
     MinersBinsUrlsSettings = new MinersBinsUrlsSettings
     {
         // BinVersion github and bitcointalk missmatch
         BinVersion = "0.26.0",
         ExePath    = new List <string> {
             "CryptoDredge.exe"
         },
         Urls = new List <string>
         {
             "https://github.com/technobyl/CryptoDredge/releases/download/v0.26.0/CryptoDredge_0.26.0_cuda_11.2_windows.zip", // original source
         }
     };
     PluginMetaInfo = new PluginMetaInfo
     {
         PluginDescription          = "Simple in use and highly optimized cryptocurrency mining software with stable power consumption.",
         SupportedDevicesAlgorithms = SupportedDevicesAlgorithmsDict()
     };
 }
示例#4
0
 public GMinerPlugin()
 {
     // set default internal settings
     MinerOptionsPackage    = PluginInternalSettings.MinerOptionsPackage;
     GetApiMaxTimeoutConfig = PluginInternalSettings.GetApiMaxTimeoutConfig;
     DefaultTimeout         = PluginInternalSettings.DefaultTimeout;
     // https://bitcointalk.org/index.php?topic=5034735.0 | https://github.com/develsoftware/GMinerRelease/releases
     MinersBinsUrlsSettings = new MinersBinsUrlsSettings
     {
         BinVersion = "1.82",
         ExePath    = new List <string> {
             "miner.exe"
         },
         Urls = new List <string>
         {
             "https://github.com/develsoftware/GMinerRelease/releases/download/1.82/gminer_1_82_windows64.zip", // original
         }
     };
     PluginMetaInfo = new PluginMetaInfo
     {
         PluginDescription          = "GMiner - High-performance miner for NVIDIA and AMD GPUs.",
         SupportedDevicesAlgorithms = PluginSupportedAlgorithms.SupportedDevicesAlgorithmsDict()
     };
 }
示例#5
0
 public NanoMinerPlugin()
 {
     // mandatory init
     InitInsideConstuctorPluginSupportedAlgorithmsSettings();
     // set default internal settings
     MinerOptionsPackage = PluginInternalSettings.MinerOptionsPackage;
     // https://bitcointalk.org/index.php?topic=5089248.0 | https://github.com/nanopool/nanominer/releases
     MinersBinsUrlsSettings = new MinersBinsUrlsSettings
     {
         BinVersion = "v1.7.3",
         ExePath    = new List <string> {
             "nanominer-windows-1.7.3", "nanominer.exe"
         },
         Urls = new List <string>
         {
             "https://github.com/nanopool/nanominer/releases/download/v1.7.3/nanominer-windows-1.7.3.zip", // original
         }
     };
     PluginMetaInfo = new PluginMetaInfo
     {
         PluginDescription          = "Nanominer is a versatile tool for mining cryptocurrencies which are based on Ethash, Ubqhash, Cuckaroo29, CryptoNight (v6, v7, v8, R, ReverseWaltz) and RandomHash (PascalCoin) algorithms.",
         SupportedDevicesAlgorithms = SupportedDevicesAlgorithmsDict()
     };
 }
 public CPUMinerPlugin()
 {
     // set default internal settings
     MinerOptionsPackage    = PluginInternalSettings.MinerOptionsPackage;
     GetApiMaxTimeoutConfig = PluginInternalSettings.GetApiMaxTimeoutConfig;
     DefaultTimeout         = PluginInternalSettings.DefaultTimeout;
     // https://bitcointalk.org/index.php?topic=1326803.0 | https://github.com/JayDDee/cpuminer-opt/releases
     MinersBinsUrlsSettings = new MinersBinsUrlsSettings
     {
         BinVersion = "v3.9.9.1",
         ExePath    = new List <string> {
             "cpuminer-avx2.exe"
         },                                                  // special case multiple executables
         Urls = new List <string>
         {
             "https://github.com/JayDDee/cpuminer-opt/releases/download/v3.9.9.1/cpuminer-opt-3.9.9.1-windows.zip", // original
         }
     };
     PluginMetaInfo = new PluginMetaInfo
     {
         PluginDescription          = "Miner for CPU devices.",
         SupportedDevicesAlgorithms = PluginSupportedAlgorithms.SupportedDevicesAlgorithmsDict()
     };
 }
 public TRexPlugin()
 {
     // set default internal settings
     MinerOptionsPackage    = PluginInternalSettings.MinerOptionsPackage;
     GetApiMaxTimeoutConfig = PluginInternalSettings.GetApiMaxTimeoutConfig;
     DefaultTimeout         = PluginInternalSettings.DefaultTimeout;
     // https://github.com/trexminer/T-Rex/releases
     MinersBinsUrlsSettings = new MinersBinsUrlsSettings
     {
         BinVersion = "0.14.4",
         ExePath    = new List <string> {
             "t-rex.exe"
         },
         Urls = new List <string>
         {
             "https://github.com/trexminer/T-Rex/releases/download/0.14.4/t-rex-0.14.4-win-cuda10.0.zip", // original
         }
     };
     PluginMetaInfo = new PluginMetaInfo
     {
         PluginDescription          = "T-Rex is a versatile cryptocurrency mining software for NVIDIA devices.",
         SupportedDevicesAlgorithms = PluginSupportedAlgorithms.SupportedDevicesAlgorithmsDict()
     };
 }
示例#8
0
 public CCMinerTpruvotPlugin()
 {
     // mandatory init
     InitInsideConstuctorPluginSupportedAlgorithmsSettings();
     // set default internal settings
     MinerOptionsPackage = PluginInternalSettings.MinerOptionsPackage;
     // https://github.com/tpruvot/ccminer/releases current 2.3.1
     MinersBinsUrlsSettings = new MinersBinsUrlsSettings
     {
         BinVersion = "2.3.1",
         ExePath    = new List <string> {
             "ccminer-x64.exe"
         },
         Urls = new List <string>
         {
             "https://github.com/tpruvot/ccminer/releases/download/2.3.1-tpruvot/ccminer-2.3.1-cuda10.7z", // original
         }
     };
     PluginMetaInfo = new PluginMetaInfo
     {
         PluginDescription          = "NVIDIA miner for Lyra2REv3 and X16R.",
         SupportedDevicesAlgorithms = SupportedDevicesAlgorithmsDict()
     };
 }
示例#9
0
 public WildRigPlugin()
 {
     // mandatory init
     InitInsideConstuctorPluginSupportedAlgorithmsSettings();
     // set default internal settings
     MinerOptionsPackage = PluginInternalSettings.MinerOptionsPackage;
     // https://bitcointalk.org/index.php?topic=5023676 | https://github.com/andru-kun/wildrig-multi/releases
     MinersBinsUrlsSettings = new MinersBinsUrlsSettings
     {
         BinVersion = " 0.20.1",
         ExePath    = new List <string> {
             "wildrig.exe"
         },
         Urls = new List <string>
         {
             "https://github.com/andru-kun/wildrig-multi/releases/download/0.20.1/wildrig-multi-windows-0.20.1.7z", // original
         }
     };
     PluginMetaInfo = new PluginMetaInfo
     {
         PluginDescription          = "WildRig is multi algo miner for AMD devices.",
         SupportedDevicesAlgorithms = SupportedDevicesAlgorithmsDict()
     };
 }
示例#10
0
 public NBMinerPlugin()
 {
     // set default internal settings
     MinerOptionsPackage    = PluginInternalSettings.MinerOptionsPackage;
     DefaultTimeout         = PluginInternalSettings.DefaultTimeout;
     GetApiMaxTimeoutConfig = PluginInternalSettings.GetApiMaxTimeoutConfig;
     // https://github.com/NebuTech/NBMiner/releases/
     MinersBinsUrlsSettings = new MinersBinsUrlsSettings
     {
         BinVersion = "v26.2",
         ExePath    = new List <string> {
             "NBMiner_Win", "nbminer.exe"
         },
         Urls = new List <string>
         {
             "https://github.com/NebuTech/NBMiner/releases/download/v26.2/NBMiner_26.2_Win.zip", // original
         }
     };
     PluginMetaInfo = new PluginMetaInfo
     {
         PluginDescription          = "GPU Miner for GRIN and AE mining.",
         SupportedDevicesAlgorithms = PluginSupportedAlgorithms.SupportedDevicesAlgorithmsDict()
     };
 }
 public CCMinerMTPPlugin()
 {
     // set default internal settings
     MinerOptionsPackage    = PluginInternalSettings.MinerOptionsPackage;
     DefaultTimeout         = PluginInternalSettings.DefaultTimeout;
     GetApiMaxTimeoutConfig = PluginInternalSettings.GetApiMaxTimeoutConfig;
     // https://github.com/nicehash/ccminer/releases current 1.1.14
     MinersBinsUrlsSettings = new MinersBinsUrlsSettings
     {
         BinVersion = "1.1.14",
         ExePath    = new List <string> {
             "ccminer.exe"
         },
         Urls = new List <string>
         {
             "https://github.com/nicehash/ccminer/releases/download/1.1.14/ccminer_mtp.7z", // original (nh fork)
         }
     };
     PluginMetaInfo = new PluginMetaInfo
     {
         PluginDescription          = "Nvidia miner for MTP algorithm.",
         SupportedDevicesAlgorithms = PluginSupportedAlgorithms.SupportedDevicesAlgorithmsDict()
     };
 }
 public PhoenixPlugin()
 {
     // set default internal settings
     MinerOptionsPackage             = PluginInternalSettings.MinerOptionsPackage;
     MinerSystemEnvironmentVariables = PluginInternalSettings.MinerSystemEnvironmentVariables;
     // https://bitcointalk.org/index.php?topic=2647654.0
     MinersBinsUrlsSettings = new MinersBinsUrlsSettings
     {
         BinVersion = "4.7c",
         ExePath    = new List <string> {
             "PhoenixMiner_4.7c_Windows", "PhoenixMiner.exe"
         },
         Urls = new List <string>
         {
             "https://github.com/nicehash/MinerDownloads/releases/download/1.9.1.12b/PhoenixMiner_4.7c_Windows.7z",
             "https://mega.nz/#F!2VskDJrI!lsQsz1CdDe8x5cH3L8QaBw?fcFnUIhD" // original
         }
     };
     PluginMetaInfo = new PluginMetaInfo
     {
         PluginDescription          = "Phoenix Miner is fast Ethash miner that supports both AMD and Nvidia cards(including in mixed mining rigs).",
         SupportedDevicesAlgorithms = PluginSupportedAlgorithms.SupportedDevicesAlgorithmsDict()
     };
 }
示例#13
0
        private static void AddPluginToPluginPackageInfos(IMinerPlugin plugin)
        {
            var version = new MajorMinorVersion(plugin.Version.Major, plugin.Version.Minor);

            string pluginPackageURL = null;

            if (version.major == 3)
            {
                pluginPackageURL = "https://github.com/nicehash/NHM_MinerPluginsDownloads/releases/download/v3.x/" + GetPluginPackageName(plugin);
            }
            else if (version.major == 4)
            {
                pluginPackageURL = "https://github.com/nicehash/NHM_MinerPluginsDownloads/releases/download/v4.x/" + GetPluginPackageName(plugin);
            }
            else if (version.major == 5)
            {
                pluginPackageURL = "https://github.com/nicehash/NHM_MinerPluginsDownloads/releases/download/v5.x/" + GetPluginPackageName(plugin);
            }
            else
            {
                //throw new Exception("Plugin version not supported");
            }
            string minerPackageURL = null;

            if (plugin is IMinerBinsSource binsSource)
            {
                minerPackageURL = binsSource.GetMinerBinsUrlsForPlugin().FirstOrDefault();
            }

            var binaryVersion = "N/A";

            // TODO binary version
            if (plugin is IGetMinerBinaryVersion binVersionGetter)
            {
                binaryVersion = binVersionGetter.GetMinerBinaryVersion();
            }
            PluginMetaInfo pluginMetaInfo = null;

            if (plugin is IGetPluginMetaInfo pluginMetaInfoGetter)
            {
                pluginMetaInfo = pluginMetaInfoGetter.GetPluginMetaInfo();
            }
            if (pluginMetaInfo == null)
            {
                return;
            }

            var packageInfo = new PluginPackageInfoForJson
            {
                PluginUUID                 = plugin.PluginUUID,
                PluginAuthor               = "*****@*****.**",
                PluginName                 = plugin.Name,
                PluginVersion              = version,
                PluginPackageURL           = pluginPackageURL,
                MinerPackageURL            = minerPackageURL,
                SupportedDevicesAlgorithms = TransformToPluginPackageInfoSupportedDevicesAlgorithms(pluginMetaInfo.SupportedDevicesAlgorithms),
                // TODO enhance this with the bins version
                PluginDescription = $"Miner Binary Version '{binaryVersion}'.\n\n" + pluginMetaInfo.PluginDescription
            };

            PluginPackageInfos.Add(packageInfo);
        }
        private static PluginPackageInfoForJson ToPluginToPluginPackageInfos(IMinerPlugin plugin)
        {
            var version = new MajorMinorVersion(plugin.Version.Major, plugin.Version.Minor);

            if (!Checkers.IsMajorVersionSupported(version.major))
            {
                throw new Exception($"Plugin version '{version.major}' not supported. Make sure you add the download link for this version");
            }
            string minerPackageURL = null;

            if (plugin is IMinerBinsSource binsSource)
            {
                minerPackageURL = binsSource.GetMinerBinsUrlsForPlugin().FirstOrDefault();
            }
            string binaryHash = null;

            if (minerPackageURL != null)
            {
                var filepath = GetTemporaryWorkFolder($"{plugin.PluginUUID}.tmp");
                Logger.Info("MinerPluginsPacker", $"Calculating hash for {plugin.Name}-{plugin.PluginUUID}");
                using var myWebClient = new WebClient();
                myWebClient.DownloadFile(minerPackageURL, filepath);
                binaryHash = FileHelpers.GetFileSHA256Checksum(filepath);
                File.Delete(filepath);
            }
            var    pluginZipFileName = GetPluginPackageName(plugin);
            var    dllPackageZip     = GetPluginsPackagesPath(pluginZipFileName);
            string pluginPackageHash = FileHelpers.GetFileSHA256Checksum(dllPackageZip);
            var    binaryVersion     = "N/A";

            // TODO binary version
            if (plugin is IGetMinerBinaryVersion binVersionGetter)
            {
                binaryVersion = binVersionGetter.GetMinerBinaryVersion();
            }
            PluginMetaInfo pluginMetaInfo = null;

            if (plugin is IGetPluginMetaInfo pluginMetaInfoGetter)
            {
                pluginMetaInfo = pluginMetaInfoGetter.GetPluginMetaInfo();
            }
            if (pluginMetaInfo == null)
            {
                return(null);
            }
            var packagePassword = plugin is IGetBinsPackagePassword p ? p.BinsPackagePassword : null;
            var packageInfo     = new PluginPackageInfoForJson
            {
                PluginUUID                 = plugin.PluginUUID,
                BinaryPackageHash          = binaryHash,
                PluginPackageHash          = pluginPackageHash,
                PluginAuthor               = "*****@*****.**",
                PluginName                 = plugin.Name,
                PluginVersion              = version,
                PluginPackageURL           = $"https://github.com/nicehash/NHM_MinerPluginsDownloads/releases/download/v{version.major}.x/" + GetPluginPackageName(plugin),
                MinerPackageURL            = minerPackageURL,
                SupportedDevicesAlgorithms = TransformToPluginPackageInfoSupportedDevicesAlgorithms(pluginMetaInfo.SupportedDevicesAlgorithms),
                // TODO enhance this with the bins version
                PluginDescription = $"Miner Binary Version '{binaryVersion}'.\n\n" + pluginMetaInfo.PluginDescription,
                PackagePassword   = packagePassword
            };

            return(packageInfo);
        }