//public static void SaveRewards(string startMsgId, long nonce, int height) //{ // try // { // long totalEffort = 0; // List<EffortInfo> effortInfos = new List<EffortInfo>(); // try // { // var activePools = CenterCache.Pools.Where(x => Time.EpochTime - x.Value < Setting.MAX_HEART_TIME); // LogHelper.Info("SaveRewards ActivePools Count = " + activePools.Count()); // var effortkeys = activePools.Select(x => KeyHelper.GetMinerEffortKey(x.Key, height)); // effortkeys.ToList().ForEach(key => { // var infos = RedisManager.Current.GetDataInRedis<List<EffortInfo>>(key); // if (infos != null) // { // effortInfos.AddRange(infos); // } // else // { // LogHelper.Info(string.Format("{0} = NULL", key)); // } // }); // effortInfos.RemoveAll(x => x == null || x.Effort == 0); // totalEffort = effortInfos.Sum(x => x.Effort); // LogHelper.Info("totalEffort = " + totalEffort); // } // catch (Exception ex) // { // LogHelper.Error(ex.ToString()); // } // var rewardAddresses = effortInfos.Select(x => x.Account).Distinct().ToArray(); // var block = RedisManager.Current.GetDataInRedis<BlockMsg>(startMsgId); // if (block == null || block.Header.Height == 0) // return; // var totalReward = block.Transactions[0].Outputs[0].Amount; // Blocks blocks = new Blocks(); // blocks.Generator = block.Header.GeneratorId; // blocks.Hash = block.Header.GetHash(); // blocks.Height = block.Header.Height; // blocks.Nonce = nonce; // blocks.TotalHash = totalEffort; // blocks.TotalReward = totalReward; // var rewards = new List<RewardList>(); // foreach (var minerAddress in rewardAddresses) // { // RewardList rewardList = new RewardList(); // rewardList.BlockHash = blocks.Hash; // rewardList.GenerateTime = blocks.Timstamp; // rewardList.MinerAddress = minerAddress; // var hashCount = effortInfos.FirstOrDefault(x => x.Account == minerAddress).Effort; // rewardList.Hashes = hashCount; // rewardList.OriginalReward = (long)Math.Floor(totalReward * ((double)hashCount / (double)totalEffort)); // rewardList.TransactionHash = ""; // rewards.Add(rewardList); // } // var blockComponent = new BlocksComponent(); // blockComponent.SaveBlockAndRewardLists(blocks, rewards); // } // catch (Exception ex) // { // LogHelper.Error(ex.ToString()); // } //} public static List <Miners> GetAllMiners() { MinersComponent component = new MinersComponent(); var miners = component.GetAllMiners().Where(x => x.Status == 0).ToList(); return(miners); }
private void UpdateMiners() { MinersComponent minersComponent = new MinersComponent(); Pool_Miners = new SafeCollection <Miners>(minersComponent.GetAllMiners()); }