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() }; }
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() }; }
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() }; }
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() }; }
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() }; }
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() }; }
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() }; }
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() }; }
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); }