public bool WantedTransaction(InvitationRequest transInvitationRequest) { var atB = LookUpBlock(Info.EndOfLongestChain); var lastB = atB.Body.LastBlockId; for (int ii = 0; ii < Configurations.TRANSACTION_WANT_LIMIT; ii++) { if (atB == null) { _logger.Log($"Nullblock : {lastB}"); break; } foreach (var transaction in atB.Body.Tx) { if (transaction.Body.TransactionId == transInvitationRequest.DataId) { return(false); } } if (atB.Body.LastBlockId == "0") { break; } lastB = atB.Body.LastBlockId; atB = LookUpBlock(atB.Body.LastBlockId); } if (_minerService.HasTransactionInMemPool(transInvitationRequest.DataId)) { return(false); } return(true); }
public void OnNewTransaction(object obj) { var trans = (Transaction)obj; if (Verify(trans)) { _logger.Log($"New transaction {trans.Body.TransactionId}"); if (!_minerService.HasTransactionInMemPool(trans.Body.TransactionId)) { _minerService.MemPool.Add(trans); _minerService.TryRestartingWorkers(); _mappingService.Broadcast(trans); } else { _logger.Log("Already had transaction received", 1); } } else { _logger.Log($"Bad new transaction {trans.Body.TransactionId}"); } }