diff --git a/src/avalanche/peermanager.cpp b/src/avalanche/peermanager.cpp --- a/src/avalanche/peermanager.cpp +++ b/src/avalanche/peermanager.cpp @@ -161,7 +161,7 @@ cs_main, return proof->verify(state, ::ChainstateActive().CoinsTip())); if (!valid) { if (isOrphanState(state)) { - orphanProofPool.addProofIfNoConflict(proof); + orphanProofPool.addProofIfPreferred(proof); } // Reject invalid proof. diff --git a/src/avalanche/test/peermanager_tests.cpp b/src/avalanche/test/peermanager_tests.cpp --- a/src/avalanche/test/peermanager_tests.cpp +++ b/src/avalanche/test/peermanager_tests.cpp @@ -967,9 +967,8 @@ BOOST_CHECK(pm.isOrphan(orphan10->getId())); BOOST_CHECK(!pm.registerProof(orphan20)); - BOOST_CHECK(!pm.isOrphan(orphan20->getId())); - BOOST_CHECK(!pm.exists(orphan20->getId())); - BOOST_CHECK(pm.isOrphan(orphan10->getId())); + BOOST_CHECK(pm.isOrphan(orphan20->getId())); + BOOST_CHECK(!pm.exists(orphan10->getId())); } BOOST_AUTO_TEST_CASE(preferred_conflicting_proof) {