Esempio n. 1
0
 /// <summary>
 /// 从给定的speedData中提取出主币矿池延时,辅币矿池延时,主币拒绝率,辅币拒绝率。
 /// </summary>
 private static void Extract(
     ISpeedDto speedDto,
     out int mainCoinPoolDelayNumber,
     out int dualCoinPoolDelayNumber,
     out double mainCoinRejectPercent,
     out double dualCoinRejectPercent,
     out int diskSpaceMb)
 {
     #region
     mainCoinPoolDelayNumber = 0;
     dualCoinPoolDelayNumber = 0;
     mainCoinRejectPercent   = 0.0;
     dualCoinRejectPercent   = 0.0;
     if (!string.IsNullOrEmpty(speedDto.MainCoinPoolDelay))
     {
         string text  = speedDto.MainCoinPoolDelay.Trim();
         int    count = 0;
         for (int i = 0; i < text.Length; i++)
         {
             if (!char.IsNumber(text[i]))
             {
                 count = i;
                 break;
             }
         }
         if (count != 0)
         {
             mainCoinPoolDelayNumber = int.Parse(text.Substring(0, count));
         }
     }
     if (!string.IsNullOrEmpty(speedDto.DualCoinPoolDelay))
     {
         string text  = speedDto.DualCoinPoolDelay.Trim();
         int    count = 0;
         for (int i = 0; i < text.Length; i++)
         {
             if (!char.IsNumber(text[i]))
             {
                 count = i;
                 break;
             }
         }
         if (count != 0)
         {
             dualCoinPoolDelayNumber = int.Parse(text.Substring(0, count));
         }
     }
     if (speedDto.MainCoinTotalShare != 0)
     {
         mainCoinRejectPercent = (speedDto.MainCoinRejectShare * 100.0) / speedDto.MainCoinTotalShare;
     }
     if (speedDto.DualCoinTotalShare != 0)
     {
         dualCoinRejectPercent = (speedDto.DualCoinRejectShare * 100.0) / speedDto.DualCoinTotalShare;
     }
     diskSpaceMb = GetMinDiskSpaceMb(speedDto.DiskSpace);
     #endregion
 }
Esempio n. 2
0
 /// <summary>
 /// 上报算力时。
 /// 因为只有MinerData具有的成员发生了变化时才需要持久化所以该非法输出isMinerDataChanged参数以表示MinerData的成员是否发生了变化。
 /// </summary>
 /// <param name="speedDto"></param>
 /// <param name="minerIp"></param>
 /// <param name="isMinerDataChanged"></param>
 public void Update(ISpeedDto speedDto, string minerIp, out bool isMinerDataChanged)
 {
     Update(speedDto, out isMinerDataChanged);
     if (!isMinerDataChanged && minerIp != this.MinerIp)
     {
         isMinerDataChanged = true;
     }
     this.MinerIp = minerIp;
 }
Esempio n. 3
0
 /// <summary>
 /// 上报算力时和拉取算力时。
 /// 因为只有MinerData具有的成员发生了变化时才需要持久化所以该非法输出isMinerDataChanged参数以表示MinerData的成员是否发生了变化。
 /// </summary>
 /// <param name="speedDto"></param>
 /// <param name="isMinerDataChanged"></param>
 public void Update(ISpeedDto speedDto, out bool isMinerDataChanged)
 {
     #region
     isMinerDataChanged = false;
     if (speedDto == null)
     {
         return;
     }
     _preUpdateOn = DateTime.Now;
     if (_preMainCoin != this.MainCoinCode)
     {
         _preMainCoinShare       = 0;
         _preMainCoinRejectShare = 0;
     }
     else
     {
         _preMainCoinShare       = this.MainCoinTotalShare;
         _preMainCoinRejectShare = this.MainCoinRejectShare;
     }
     _preMainCoin = this.MainCoinCode;
     if (_preDualCoin != this.DualCoinCode)
     {
         _preDualCoinShare       = 0;
         _preDualCoinRejectShare = 0;
     }
     else
     {
         _preDualCoinShare       = this.DualCoinTotalShare;
         _preDualCoinRejectShare = this.DualCoinRejectShare;
     }
     _preDualCoin = this.DualCoinCode;
     #region MinerData
     if (!isMinerDataChanged)
     {
         isMinerDataChanged = this.ClientId != speedDto.ClientId;
     }
     this.ClientId = speedDto.ClientId;
     if (!isMinerDataChanged)
     {
         isMinerDataChanged = this.MACAddress != speedDto.MACAddress;
     }
     this.MACAddress = speedDto.MACAddress;
     if (!isMinerDataChanged)
     {
         isMinerDataChanged = this.LocalIp != speedDto.LocalIp;
     }
     this.LocalIp = speedDto.LocalIp;
     if (!isMinerDataChanged)
     {
         isMinerDataChanged = this.MinerName != speedDto.MinerName;
     }
     this.MinerName = speedDto.MinerName;
     if (!isMinerDataChanged)
     {
         isMinerDataChanged = this.IsOuterUserEnabled != speedDto.IsOuterUserEnabled;
     }
     this.IsOuterUserEnabled = speedDto.IsOuterUserEnabled;
     this.ReportOuterUserId  = speedDto.ReportOuterUserId;
     #endregion
     this.MineContextId                  = speedDto.MineContextId;
     this.IsAutoBoot                     = speedDto.IsAutoBoot;
     this.IsAutoStart                    = speedDto.IsAutoStart;
     this.AutoStartDelaySeconds          = speedDto.AutoStartDelaySeconds;
     this.IsAutoRestartKernel            = speedDto.IsAutoRestartKernel;
     this.AutoRestartKernelTimes         = speedDto.AutoRestartKernelTimes;
     this.IsNoShareRestartKernel         = speedDto.IsNoShareRestartKernel;
     this.NoShareRestartKernelMinutes    = speedDto.NoShareRestartKernelMinutes;
     this.IsNoShareRestartComputer       = speedDto.IsNoShareRestartComputer;
     this.NoShareRestartComputerMinutes  = speedDto.NoShareRestartComputerMinutes;
     this.IsPeriodicRestartKernel        = speedDto.IsPeriodicRestartKernel;
     this.PeriodicRestartKernelHours     = speedDto.PeriodicRestartKernelHours;
     this.IsPeriodicRestartComputer      = speedDto.IsPeriodicRestartComputer;
     this.PeriodicRestartComputerHours   = speedDto.PeriodicRestartComputerHours;
     this.PeriodicRestartComputerMinutes = speedDto.PeriodicRestartComputerMinutes;
     this.PeriodicRestartKernelMinutes   = speedDto.PeriodicRestartKernelMinutes;
     this.IsAutoStopByCpu                = speedDto.IsAutoStopByCpu;
     this.IsAutoStartByCpu               = speedDto.IsAutoStartByCpu;
     this.CpuStopTemperature             = speedDto.CpuStopTemperature;
     this.CpuStartTemperature            = speedDto.CpuStartTemperature;
     this.CpuLETemperatureSeconds        = speedDto.CpuLETemperatureSeconds;
     this.CpuGETemperatureSeconds        = speedDto.CpuGETemperatureSeconds;
     this.CpuPerformance                 = speedDto.CpuPerformance;
     this.CpuTemperature                 = speedDto.CpuTemperature;
     this.IsRaiseHighCpuEvent            = speedDto.IsRaiseHighCpuEvent;
     this.HighCpuPercent                 = speedDto.HighCpuPercent;
     this.HighCpuSeconds                 = speedDto.HighCpuSeconds;
     this.GpuDriver                    = speedDto.GpuDriver;
     this.GpuType                      = speedDto.GpuType;
     this.OSName                       = speedDto.OSName;
     this.OSVirtualMemoryMb            = speedDto.OSVirtualMemoryMb;
     this.GpuInfo                      = speedDto.GpuInfo;
     this.CpuId                        = speedDto.CpuId;
     this.Version                      = speedDto.Version;
     this.IsMining                     = speedDto.IsMining;
     this.BootOn                       = speedDto.BootOn;
     this.MineStartedOn                = speedDto.MineStartedOn;
     this.DiskSpace                    = speedDto.DiskSpace;
     this.MainCoinCode                 = speedDto.MainCoinCode;
     this.MainCoinTotalShare           = speedDto.MainCoinTotalShare;
     this.MainCoinRejectShare          = speedDto.MainCoinRejectShare;
     this.MainCoinSpeed                = speedDto.MainCoinSpeed;
     this.MainCoinPool                 = speedDto.MainCoinPool;
     this.MainCoinWallet               = speedDto.MainCoinWallet;
     this.Kernel                       = speedDto.Kernel;
     this.IsDualCoinEnabled            = speedDto.IsDualCoinEnabled;
     this.DualCoinPool                 = speedDto.DualCoinPool;
     this.DualCoinWallet               = speedDto.DualCoinWallet;
     this.DualCoinCode                 = speedDto.DualCoinCode;
     this.DualCoinTotalShare           = speedDto.DualCoinTotalShare;
     this.DualCoinRejectShare          = speedDto.DualCoinRejectShare;
     this.DualCoinSpeed                = speedDto.DualCoinSpeed;
     this.KernelCommandLine            = speedDto.KernelCommandLine;
     this.MainCoinSpeedOn              = speedDto.MainCoinSpeedOn;
     this.DualCoinSpeedOn              = speedDto.DualCoinSpeedOn;
     this.GpuTable                     = speedDto.GpuTable;
     this.MainCoinPoolDelay            = speedDto.MainCoinPoolDelay;
     this.DualCoinPoolDelay            = speedDto.DualCoinPoolDelay;
     this.IsFoundOneGpuShare           = speedDto.IsFoundOneGpuShare;
     this.IsRejectOneGpuShare          = speedDto.IsRejectOneGpuShare;
     this.IsGotOneIncorrectGpuShare    = speedDto.IsGotOneIncorrectGpuShare;
     this.MineWorkId                   = speedDto.MineWorkId;
     this.MineWorkName                 = speedDto.MineWorkName;
     this.KernelSelfRestartCount       = speedDto.KernelSelfRestartCount - 1;// 需要减1
     this.LocalServerMessageTimestamp  = speedDto.LocalServerMessageTimestamp;
     this.TotalPhysicalMemoryMb        = speedDto.TotalPhysicalMemoryMb;
     this.MinerActiveOn                = DateTime.Now;// 现在时间
     this.IsAutoDisableWindowsFirewall = speedDto.IsAutoDisableWindowsFirewall;
     this.IsDisableAntiSpyware         = speedDto.IsDisableAntiSpyware;
     this.IsDisableUAC                 = speedDto.IsDisableUAC;
     this.IsDisableWAU                 = speedDto.IsDisableWAU;
     Extract(
         speedDto,
         out int mainCoinPoolDelayNumber,
         out int dualCoinPoolDelayNumber,
         out double mainCoinRejectPercent,
         out double dualCoinRejectPercent,
         out int diskSpaceMb);
     this.MainCoinPoolDelayNumber = mainCoinPoolDelayNumber;
     this.DualCoinPoolDelayNumber = dualCoinPoolDelayNumber;
     this.MainCoinRejectPercent   = mainCoinRejectPercent;
     this.DualCoinRejectPercent   = dualCoinRejectPercent;
     this.DiskSpaceMb             = diskSpaceMb;
     #endregion
 }
Esempio n. 4
0
 public static ClientData Create(ISpeedDto speedDto, string minerIp)
 {
     Extract(
         speedDto,
         out int mainCoinPoolDelayNumber,
         out int dualCoinPoolDelayNumber,
         out double mainCoinRejectPercent,
         out double dualCoinRejectPercent,
         out int diskSpaceMb);
     return(new ClientData()
     {
         #region
         Id = ObjectId.NewObjectId().ToString(),
         MineContextId = speedDto.MineContextId,
         MinerName = speedDto.MinerName,
         CpuId = speedDto.CpuId,
         MinerIp = minerIp,
         CreatedOn = DateTime.Now,
         MinerActiveOn = DateTime.Now,
         GroupId = Guid.Empty,
         WorkId = Guid.Empty,// 这是服务端指定的作业,不受客户端的影响
         WindowsLoginName = string.Empty,
         WindowsPassword = string.Empty,
         MACAddress = speedDto.MACAddress,
         LocalIp = speedDto.LocalIp,
         ClientId = speedDto.ClientId,
         IsAutoBoot = speedDto.IsAutoBoot,
         IsAutoStart = speedDto.IsAutoStart,
         AutoStartDelaySeconds = speedDto.AutoStartDelaySeconds,
         IsAutoRestartKernel = speedDto.IsAutoRestartKernel,
         AutoRestartKernelTimes = speedDto.AutoRestartKernelTimes,
         IsNoShareRestartKernel = speedDto.IsNoShareRestartKernel,
         NoShareRestartKernelMinutes = speedDto.NoShareRestartKernelMinutes,
         IsNoShareRestartComputer = speedDto.IsNoShareRestartComputer,
         NoShareRestartComputerMinutes = speedDto.NoShareRestartComputerMinutes,
         IsPeriodicRestartKernel = speedDto.IsPeriodicRestartKernel,
         PeriodicRestartKernelHours = speedDto.PeriodicRestartKernelHours,
         IsPeriodicRestartComputer = speedDto.IsPeriodicRestartComputer,
         PeriodicRestartComputerHours = speedDto.PeriodicRestartComputerHours,
         PeriodicRestartComputerMinutes = speedDto.PeriodicRestartComputerMinutes,
         PeriodicRestartKernelMinutes = speedDto.PeriodicRestartKernelMinutes,
         IsAutoStopByCpu = speedDto.IsAutoStopByCpu,
         IsAutoStartByCpu = speedDto.IsAutoStartByCpu,
         CpuStopTemperature = speedDto.CpuStopTemperature,
         CpuStartTemperature = speedDto.CpuStartTemperature,
         CpuLETemperatureSeconds = speedDto.CpuLETemperatureSeconds,
         CpuGETemperatureSeconds = speedDto.CpuGETemperatureSeconds,
         CpuTemperature = speedDto.CpuTemperature,
         CpuPerformance = speedDto.CpuPerformance,
         IsRaiseHighCpuEvent = speedDto.IsRaiseHighCpuEvent,
         HighCpuPercent = speedDto.HighCpuPercent,
         HighCpuSeconds = speedDto.HighCpuSeconds,
         GpuDriver = speedDto.GpuDriver,
         GpuType = speedDto.GpuType,
         OSName = speedDto.OSName,
         OSVirtualMemoryMb = speedDto.OSVirtualMemoryMb,
         TotalPhysicalMemoryMb = speedDto.TotalPhysicalMemoryMb,
         GpuInfo = speedDto.GpuInfo,
         Version = speedDto.Version,
         IsMining = speedDto.IsMining,
         BootOn = speedDto.BootOn,
         MineStartedOn = speedDto.MineStartedOn,
         MainCoinCode = speedDto.MainCoinCode,
         MainCoinTotalShare = speedDto.MainCoinTotalShare,
         MainCoinRejectShare = speedDto.MainCoinRejectShare,
         MainCoinSpeed = speedDto.MainCoinSpeed,
         MainCoinPool = speedDto.MainCoinPool,
         MainCoinWallet = speedDto.MainCoinWallet,
         Kernel = speedDto.Kernel,
         IsDualCoinEnabled = speedDto.IsDualCoinEnabled,
         DualCoinPool = speedDto.DualCoinPool,
         DualCoinWallet = speedDto.DualCoinWallet,
         DualCoinCode = speedDto.DualCoinCode,
         DualCoinTotalShare = speedDto.DualCoinTotalShare,
         DualCoinRejectShare = speedDto.DualCoinRejectShare,
         DualCoinSpeed = speedDto.DualCoinSpeed,
         KernelCommandLine = speedDto.KernelCommandLine,
         MainCoinSpeedOn = speedDto.MainCoinSpeedOn,
         DualCoinSpeedOn = speedDto.DualCoinSpeedOn,
         GpuTable = speedDto.GpuTable,
         MineWorkId = speedDto.MineWorkId,
         MineWorkName = speedDto.MineWorkName,
         DiskSpace = speedDto.DiskSpace,
         MainCoinPoolDelay = speedDto.MainCoinPoolDelay,
         DualCoinPoolDelay = speedDto.DualCoinPoolDelay,
         IsFoundOneGpuShare = speedDto.IsFoundOneGpuShare,
         IsRejectOneGpuShare = speedDto.IsRejectOneGpuShare,
         IsGotOneIncorrectGpuShare = speedDto.IsGotOneIncorrectGpuShare,
         KernelSelfRestartCount = speedDto.KernelSelfRestartCount - 1,// 需要减1
         LocalServerMessageTimestamp = speedDto.LocalServerMessageTimestamp,
         AESPassword = string.Empty,
         AESPasswordOn = DateTime.MinValue,
         IsAutoDisableWindowsFirewall = speedDto.IsAutoDisableWindowsFirewall,
         IsDisableAntiSpyware = speedDto.IsDisableAntiSpyware,
         IsDisableUAC = speedDto.IsDisableUAC,
         IsDisableWAU = speedDto.IsDisableWAU,
         IsOnline = false,
         NetActiveOn = DateTime.MinValue,
         LoginName = string.Empty,
         IsOuterUserEnabled = speedDto.IsOuterUserEnabled,
         OuterUserId = string.Empty,
         ReportOuterUserId = speedDto.ReportOuterUserId,
         WorkerName = string.Empty,
         DualCoinPoolDelayNumber = dualCoinPoolDelayNumber,
         MainCoinPoolDelayNumber = mainCoinPoolDelayNumber,
         MainCoinRejectPercent = mainCoinRejectPercent,
         DualCoinRejectPercent = dualCoinRejectPercent,
         DiskSpaceMb = diskSpaceMb
                       #endregion
     });
 }