public IRpcMethodResult AddMiningPool(string name, string publicKey, string signature) { try { var miningPoolComponent = new MiningPoolComponent(); if (miningPoolComponent.HasMiningPool(name, publicKey)) { throw new CommonException(ErrorCode.Engine.Block.Verify.MINING_POOL_EXISTED); } var miningMsg = new MiningMsg() { Name = name, PublicKey = publicKey, Signature = signature }; var result = miningPoolComponent.AddMiningToPool(miningMsg); return(Ok(result)); } catch (CommonException ce) { return(Error(ce.ErrorCode, ce.Message, ce)); } catch (Exception ex) { return(Error(ErrorCode.UNKNOWN_ERROR, ex.Message, ex)); } }
public void Put(MiningMsg mp) { var key = GetKey(BlockTables.MiningPool, mp.Name); BlockDomain.Put(key, mp); MiningPools.Add(mp.Name); UpdateMiningPoolNames(MiningPools); }
public MiningMsg CreateNewMiningPool(string minerName, string publicKey) { MiningPoolDac miningPoolDac = new MiningPoolDac(); MiningMsg newMiningPoolMsg = new MiningMsg(); newMiningPoolMsg.Name = minerName; newMiningPoolMsg.PublicKey = publicKey; return(newMiningPoolMsg); }
private MiningPool ConvertToMiningPool(MiningMsg msg) { MiningPool miningPool = new MiningPool() { Name = msg.Name, PublicKey = msg.PublicKey, Signature = msg.Signature }; return(miningPool); }
//public List<MiningMsg> UpdateMiningPoolsBackup(List<MiningMsg> miningMsgs) //{ // List<MiningMsg> newMsgs = new List<MiningMsg>(); // if (miningMsgs == null || miningMsgs.Count == 0) // return newMsgs; // var items = miningMsgs.Where(x => HasMiningPool(x.Name, x.PublicKey)); // if (!items.Any()) // return newMsgs; // MiningPoolDac.Default.Put(items); // newMsgs.AddRange(miningMsgs); // CurrentMiningPools = this.GetAllMiningPoolsInDb(); // return newMsgs; //} public bool AddMiningToPool(MiningMsg msg) { if (HasMiningPool(msg.Name, msg.PublicKey)) { return(false); } if (!POC.VerifyMiningPoolSignature(msg.PublicKey, msg.Signature)) { return(false); } MiningPoolDac.Default.Put(msg); CurrentMiningPools = GetAllMiningPoolsInDb(); return(true); }
private void receivedGetMiningPoolsMessage(string address, int port) { var list = (new MiningPoolComponent()).GetAllMiningPools(); var payload = new MiningPoolMsg(); foreach (var item in list) { MiningMsg itemMsg = new MiningMsg(); itemMsg.Name = item.Name; itemMsg.PublicKey = item.PublicKey; itemMsg.Signature = item.Signature; payload.MinerInfos.Add(itemMsg); } var command = P2PCommand.CreateCommand(this.Identity.ToString(), CommandNames.MiningPool.MiningPools, payload); this.p2pComponent.SendCommand(address, port, command); }
public IRpcMethodResult AddMiningPool(string name, string publicKey, string signature) { try { var miningMsg = new MiningMsg() { Name = name, PublicKey = publicKey, Signature = signature }; var miningPoolComponent = new MiningPoolComponent(); var result = miningPoolComponent.AddMiningToPool(miningMsg); return(Ok(result)); } catch (CommonException ce) { return(Error(ce.ErrorCode, ce.Message, ce)); } catch (Exception ex) { return(Error(ErrorCode.UNKNOWN_ERROR, ex.Message, ex)); } }
public bool AddMiningToPool(MiningMsg msg) { if (!POC.VerifyMiningPoolSignature(msg.PublicKey, msg.Signature)) { return(false); } var result = false; var item = currentMiningPools.FirstOrDefault(x => x.PublicKey == msg.PublicKey && x.Signature == msg.Signature); if (item == null) { MiningPoolDac miningPoolDac = new MiningPoolDac(); MiningPool miningPool = ConvertToMiningPool(msg); result = miningPoolDac.SaveToDB(miningPool) > 0; } else if (item.Name != msg.Name) { MiningPoolDac miningPoolDac = new MiningPoolDac(); MiningPool miningPool = new MiningPool() { Name = msg.Name, PublicKey = msg.PublicKey, Signature = msg.Signature }; miningPoolDac.UpdateMiningPool(miningPool); result = true; } if (result && OnNewMiningPoolHandle != null) { NewMiningPoolMsg newMsg = new NewMiningPoolMsg(); newMsg.MinerInfo = new MiningMsg() { Name = msg.Name, PublicKey = msg.PublicKey, Signature = msg.Signature }; OnNewMiningPoolHandle(newMsg); } return(false); }