private void StartMining() { var block = NodeApi.Current.GenerateMiningBlock(_startArgs.Name, _startArgs.Account); var currentScoopNumber = POC.GetScoopNumber(block.Header.PayloadHash, block.Header.Height); _startTime = Time.EpochTime; block.Header.Timestamp = _startTime; if (block.Header.Height != this.currentBlockHeight || this.currentBlockStartTime <= 0) { this.currentBlockStartTime = _startTime; this.currentBlockHeight = block.Header.Height; } StartMiningMsg startMiningMsg = StartMiningMsg.CreateNew(); startMiningMsg.BlockHeight = block.Header.Height; startMiningMsg.ScoopNumber = currentScoopNumber; startMiningMsg.StartTime = _startTime; var genHash = BlockHelper.GenHash(block.Header.PayloadHash, block.Header.Height); startMiningMsg.GenHash = Base16.Encode(genHash); startMiningMsg.BaseTarget = NodeApi.Current.GetBaseTarget(block.Header.Height); var blockKey = KeyHelper.GetBlockKey(startMiningMsg.Id); RedisManager.Current.SaveDataToRedis(blockKey, block); //MQApi.SendStartMsg(startMiningMsg); RabbitMQApi.SendStartMsg(startMiningMsg); CurrentStartMiningMsg = startMiningMsg; LogHelper.Info("Start MiningTask Id=" + startMiningMsg.Id + " ScoopNumber = " + startMiningMsg.ScoopNumber + " Height= " + startMiningMsg.BlockHeight); LogHelper.Info($"Block bits is {POC.ConvertBitsToBigInt(block.Header.Bits).ToString("X").PadLeft(64, '0')}"); LogHelper.Info($"StartMiningMsg.BaseTarget is {POC.ConvertBitsToBigInt(startMiningMsg.BaseTarget).ToString("X").PadLeft(64, '0')}"); LogHelper.Info($"Block height is {block.Header.Height}"); }
public static void SendStartMsg(StartMiningMsg startMsg) { string json = JsonConvert.SerializeObject(startMsg); RabbitMqClient.Current.ProduceMessage(RabbitMqName.StartMining, MsgType.StartMining, json); }