validation: only call UpdatedBlockTip for active chainstate

This notification isn't needed for background chainstates.

`kernel::Notifications::blockTip` are also skipped.
This commit is contained in:
James O'Beirne 2023-08-24 16:51:16 -04:00
parent c6af23c517
commit 1e59acdf17
2 changed files with 2 additions and 2 deletions

View File

@ -3263,7 +3263,7 @@ bool Chainstate::ActivateBestChain(BlockValidationState& state, std::shared_ptr<
// Notify external listeners about the new tip.
// Enqueue while holding cs_main to ensure that UpdatedBlockTip is called in the order in which blocks are connected
if (pindexFork != pindexNewTip) {
if (this == &m_chainman.ActiveChainstate() && pindexFork != pindexNewTip) {
// Notify ValidationInterface subscribers
GetMainSignals().UpdatedBlockTip(pindexNewTip, pindexFork, still_in_ibd);

View File

@ -87,7 +87,7 @@ protected:
* but may not be called on every intermediate tip. If the latter behavior is desired,
* subscribe to BlockConnected() instead.
*
* Called on a background thread.
* Called on a background thread. Only called for the active chainstate.
*/
virtual void UpdatedBlockTip(const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload) {}
/**