diff --git a/src/validation.cpp b/src/validation.cpp --- a/src/validation.cpp +++ b/src/validation.cpp @@ -2839,6 +2839,11 @@ } } + if (g_avalanche && pindexNew->nStatus.isOnParkedChain() && + gArgs.GetBoolArg("-enableavalanche", AVALANCHE_DEFAULT_ENABLED)) { + g_avalanche->addBlockToReconcile(pindexNew); + } + // We found a candidate that has valid ancestors. This is our guy. if (hasValidAncestor) { return pindexNew; @@ -4270,10 +4275,6 @@ pindex->GetBlockHash().ToString()); pindex->nStatus = pindex->nStatus.withParked(); setDirtyBlockIndex.insert(pindex); - if (g_avalanche && - pindex->nChainWork >= m_chain.Tip()->nChainWork) { - g_avalanche->addBlockToReconcile(pindex); - } } } diff --git a/test/functional/abc-p2p-avalanche.py b/test/functional/abc-p2p-avalanche.py --- a/test/functional/abc-p2p-avalanche.py +++ b/test/functional/abc-p2p-avalanche.py @@ -158,10 +158,13 @@ self.log.info("Trigger polling from the node...") node.addavalanchepeer(nodeid) - # Create a fork 2 blocks deep. This should trigger polling. + # Sanity check fork_node = self.nodes[1] + assert_equal(node.getbestblockhash(), fork_node.getbestblockhash()) + + # Create a fork 2 blocks deep. This should trigger polling. fork_node.invalidateblock(fork_node.getblockhash(100)) - fork_node.generate(1) + fork_node.generate(2) def can_find_block_in_poll(hash): poll_node.wait_for_avapoll()