diff --git a/src/interfaces/wallet.h b/src/interfaces/wallet.h --- a/src/interfaces/wallet.h +++ b/src/interfaces/wallet.h @@ -319,7 +319,6 @@ int block_height; int blocks_to_maturity; int depth_in_main_chain; - int request_count; unsigned int time_received; uint32_t lock_time; bool is_final; diff --git a/src/interfaces/wallet.cpp b/src/interfaces/wallet.cpp --- a/src/interfaces/wallet.cpp +++ b/src/interfaces/wallet.cpp @@ -91,7 +91,6 @@ (block ? block->nHeight : std::numeric_limits::max()), result.blocks_to_maturity = wtx.GetBlocksToMaturity(); result.depth_in_main_chain = wtx.GetDepthInMainChain(); - result.request_count = wtx.GetRequestCount(); result.time_received = wtx.nTimeReceived; result.lock_time = wtx.tx->nLockTime; result.is_final = CheckFinalTx(*wtx.tx); diff --git a/src/net_processing.cpp b/src/net_processing.cpp --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -1462,9 +1462,6 @@ if (!push) { vNotFound.push_back(inv); } - - // Track requests for our stuff. - GetMainSignals().Inventory(inv.hash); } } // release cs_main @@ -2235,9 +2232,6 @@ pfrom->AskFor(inv); } } - - // Track requests for our stuff - GetMainSignals().Inventory(inv.hash); } } diff --git a/src/qt/guiconstants.h b/src/qt/guiconstants.h --- a/src/qt/guiconstants.h +++ b/src/qt/guiconstants.h @@ -27,8 +27,6 @@ #define COLOR_BAREADDRESS QColor(140, 140, 140) /* Transaction list -- TX status decoration - open until date */ #define COLOR_TX_STATUS_OPENUNTILDATE QColor(64, 64, 255) -/* Transaction list -- TX status decoration - offline */ -#define COLOR_TX_STATUS_OFFLINE QColor(192, 192, 192) /* Transaction list -- TX status decoration - danger, tx needs attention */ #define COLOR_TX_STATUS_DANGER QColor(200, 100, 100) /* Transaction list -- TX status decoration - default color */ diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp --- a/src/qt/transactiondesc.cpp +++ b/src/qt/transactiondesc.cpp @@ -39,9 +39,6 @@ if (nDepth < 0) { return tr("conflicted with a transaction with %1 confirmations") .arg(-nDepth); - } else if (adjustedTime - status.time_received > 2 * 60 && - status.request_count == 0) { - return tr("%1/offline").arg(nDepth); } else if (nDepth == 0) { return tr("0/unconfirmed, %1") .arg((inMempool ? tr("in memory pool") @@ -78,14 +75,6 @@ strHTML += "" + tr("Status") + ": " + FormatTxStatus(wtx, status, inMempool, numBlocks, adjustedTime); - int nRequests = status.request_count; - if (nRequests != -1) { - if (nRequests == 0) { - strHTML += tr(", has not been successfully broadcast yet"); - } else if (nRequests > 0) { - strHTML += tr(", broadcast through %n node(s)", "", nRequests); - } - } strHTML += "
"; strHTML += "" + tr("Date") + ": " + diff --git a/src/qt/transactionrecord.h b/src/qt/transactionrecord.h --- a/src/qt/transactionrecord.h +++ b/src/qt/transactionrecord.h @@ -25,8 +25,8 @@ class TransactionStatus { public: TransactionStatus() - : countsForBalance(false), sortKey(""), matures_in(0), status(Offline), - depth(0), open_for(0), cur_num_blocks(-1) {} + : countsForBalance(false), sortKey(""), matures_in(0), + status(Unconfirmed), depth(0), open_for(0), cur_num_blocks(-1) {} enum Status { /**< Have 6 or more confirmations (normal tx) or fully mature (mined tx) @@ -37,8 +37,6 @@ OpenUntilDate, /**< Transaction not yet final, waiting for block */ OpenUntilBlock, - /**< Not sent to any other nodes **/ - Offline, /**< Not yet mined into a block **/ Unconfirmed, /**< Confirmed, but waiting for the recommended number of confirmations @@ -51,9 +49,6 @@ /// Generated (mined) transactions /**< Mined but waiting for maturity */ Immature, - /**< Transaction will likely not mature because no nodes have confirmed - */ - MaturesWarning, /**< Mined but not accepted */ NotAccepted }; diff --git a/src/qt/transactionrecord.cpp b/src/qt/transactionrecord.cpp --- a/src/qt/transactionrecord.cpp +++ b/src/qt/transactionrecord.cpp @@ -176,12 +176,6 @@ if (wtx.is_in_main_chain) { status.matures_in = wtx.blocks_to_maturity; - - // Check if the block was requested by anyone - if (adjustedTime - wtx.time_received > 2 * 60 && - wtx.request_count == 0) { - status.status = TransactionStatus::MaturesWarning; - } } else { status.status = TransactionStatus::NotAccepted; } @@ -191,9 +185,6 @@ } else { if (status.depth < 0) { status.status = TransactionStatus::Conflicted; - } else if (adjustedTime - wtx.time_received > 2 * 60 && - wtx.request_count == 0) { - status.status = TransactionStatus::Offline; } else if (status.depth == 0) { status.status = TransactionStatus::Unconfirmed; if (wtx.is_abandoned) { diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp --- a/src/qt/transactiontablemodel.cpp +++ b/src/qt/transactiontablemodel.cpp @@ -278,9 +278,6 @@ status = tr("Open until %1") .arg(GUIUtil::dateTimeStr(wtx->status.open_for)); break; - case TransactionStatus::Offline: - status = tr("Offline"); - break; case TransactionStatus::Unconfirmed: status = tr("Unconfirmed"); break; @@ -304,10 +301,6 @@ .arg(wtx->status.depth) .arg(wtx->status.depth + wtx->status.matures_in); break; - case TransactionStatus::MaturesWarning: - status = tr("This block was not received by any other nodes and " - "will probably not be accepted!"); - break; case TransactionStatus::NotAccepted: status = tr("Generated but not accepted"); break; @@ -444,8 +437,6 @@ case TransactionStatus::OpenUntilBlock: case TransactionStatus::OpenUntilDate: return COLOR_TX_STATUS_OPENUNTILDATE; - case TransactionStatus::Offline: - return COLOR_TX_STATUS_OFFLINE; case TransactionStatus::Unconfirmed: return QIcon(":/icons/transaction_0"); case TransactionStatus::Abandoned: @@ -472,7 +463,6 @@ int part = (wtx->status.depth * 4 / total) + 1; return QIcon(QString(":/icons/transaction_%1").arg(part)); } - case TransactionStatus::MaturesWarning: case TransactionStatus::NotAccepted: return QIcon(":/icons/transaction_0"); default: diff --git a/src/validationinterface.h b/src/validationinterface.h --- a/src/validationinterface.h +++ b/src/validationinterface.h @@ -139,12 +139,6 @@ * Called on a background thread. */ virtual void ChainStateFlushed(const CBlockLocator &locator) {} - /** - * Notifies listeners about an inventory item being seen on the network. - * - * Called on a background thread. - */ - virtual void Inventory(const uint256 &hash) {} /** Tells listeners to broadcast their data. */ virtual void ResendWalletTransactions(int64_t nBestBlockTime, CConnman *connman) {} @@ -210,7 +204,6 @@ const std::shared_ptr> &); void BlockDisconnected(const std::shared_ptr &); void ChainStateFlushed(const CBlockLocator &); - void Inventory(const uint256 &); void Broadcast(int64_t nBestBlockTime, CConnman *connman); void BlockChecked(const CBlock &, const CValidationState &); void NewPoWValidBlock(const CBlockIndex *, diff --git a/src/validationinterface.cpp b/src/validationinterface.cpp --- a/src/validationinterface.cpp +++ b/src/validationinterface.cpp @@ -33,7 +33,6 @@ boost::signals2::signal TransactionRemovedFromMempool; boost::signals2::signal ChainStateFlushed; - boost::signals2::signal Inventory; boost::signals2::signal Broadcast; boost::signals2::signal @@ -102,8 +101,6 @@ &CValidationInterface::TransactionRemovedFromMempool, pwalletIn, _1)); g_signals.m_internals->ChainStateFlushed.connect( boost::bind(&CValidationInterface::ChainStateFlushed, pwalletIn, _1)); - g_signals.m_internals->Inventory.connect( - boost::bind(&CValidationInterface::Inventory, pwalletIn, _1)); g_signals.m_internals->Broadcast.connect(boost::bind( &CValidationInterface::ResendWalletTransactions, pwalletIn, _1, _2)); g_signals.m_internals->BlockChecked.connect( @@ -117,8 +114,6 @@ boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2)); g_signals.m_internals->Broadcast.disconnect(boost::bind( &CValidationInterface::ResendWalletTransactions, pwalletIn, _1, _2)); - g_signals.m_internals->Inventory.disconnect( - boost::bind(&CValidationInterface::Inventory, pwalletIn, _1)); g_signals.m_internals->ChainStateFlushed.disconnect( boost::bind(&CValidationInterface::ChainStateFlushed, pwalletIn, _1)); g_signals.m_internals->TransactionAddedToMempool.disconnect(boost::bind( @@ -141,7 +136,6 @@ } g_signals.m_internals->BlockChecked.disconnect_all_slots(); g_signals.m_internals->Broadcast.disconnect_all_slots(); - g_signals.m_internals->Inventory.disconnect_all_slots(); g_signals.m_internals->ChainStateFlushed.disconnect_all_slots(); g_signals.m_internals->TransactionAddedToMempool.disconnect_all_slots(); g_signals.m_internals->BlockConnected.disconnect_all_slots(); @@ -206,11 +200,6 @@ [locator, this] { m_internals->ChainStateFlushed(locator); }); } -void CMainSignals::Inventory(const uint256 &hash) { - m_internals->m_schedulerClient.AddToProcessQueue( - [hash, this] { m_internals->Inventory(hash); }); -} - void CMainSignals::Broadcast(int64_t nBestBlockTime, CConnman *connman) { m_internals->Broadcast(nBestBlockTime, connman); } diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -469,7 +469,6 @@ bool IsTrusted() const; int64_t GetTxTime() const; - int GetRequestCount() const; // RelayWalletTransaction may only be called if fBroadcastTransactions! bool RelayWalletTransaction(CConnman *connman); @@ -838,7 +837,6 @@ int64_t nOrderPosNext; uint64_t nAccountingEntryNumber; - std::map mapRequestCount; std::map mapAddressBook; @@ -1139,14 +1137,6 @@ const std::string &GetLabelName(const CScript &scriptPubKey) const; - void Inventory(const uint256 &hash) override { - LOCK(cs_wallet); - std::map::iterator mi = mapRequestCount.find(hash); - if (mi != mapRequestCount.end()) { - (*mi).second++; - } - } - void GetScriptForMining(std::shared_ptr &script); unsigned int GetKeyPoolSize() { diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -1569,45 +1569,6 @@ return n ? n : nTimeReceived; } -int CWalletTx::GetRequestCount() const { - LOCK(pwallet->cs_wallet); - - // Returns -1 if it wasn't being tracked. - int nRequests = -1; - - if (IsCoinBase()) { - // Generated block. - if (!hashUnset()) { - std::map::const_iterator mi = - pwallet->mapRequestCount.find(hashBlock); - if (mi != pwallet->mapRequestCount.end()) { - nRequests = (*mi).second; - } - } - } else { - // Did anyone request this transaction? - std::map::const_iterator mi = - pwallet->mapRequestCount.find(GetId()); - if (mi != pwallet->mapRequestCount.end()) { - nRequests = (*mi).second; - - // How about the block it's in? - if (nRequests == 0 && !hashUnset()) { - std::map::const_iterator _mi = - pwallet->mapRequestCount.find(hashBlock); - if (_mi != pwallet->mapRequestCount.end()) { - nRequests = (*_mi).second; - } else { - // If it's in someone else's block it must have got out. - nRequests = 1; - } - } - } - } - - return nRequests; -} - // Helper for producing a max-sized low-S signature (eg 72 bytes) bool CWallet::DummySignInput(CTxIn &tx_in, const CTxOut &txout) const { // Fill in dummy signatures for fee calculation. @@ -3328,9 +3289,6 @@ NotifyTransactionChanged(this, coin.GetId(), CT_UPDATED); } - // Track how many getdata requests our transaction gets. - mapRequestCount[wtxNew.GetId()] = 0; - // Get the inserted-CWalletTx from mapWallet so that the // fInMempool flag is cached properly CWalletTx &wtx = mapWallet.at(wtxNew.GetId());