diff --git a/src/avalanche/processor.cpp b/src/avalanche/processor.cpp --- a/src/avalanche/processor.cpp +++ b/src/avalanche/processor.cpp @@ -122,11 +122,9 @@ void updatedBlockTip() override { LOCK(m_processor->cs_peerManager); - if (m_processor->peerData && m_processor->peerData->proof && + if (m_processor->peerData && m_processor->peerData->proof) { m_processor->peerManager->registerProof( - m_processor->peerData->proof)) { - m_processor->peerManager->addUnbroadcastProof( - m_processor->peerData->proof->getId()); + m_processor->peerData->proof); } m_processor->peerManager->updatedBlockTip(); diff --git a/src/net_processing.cpp b/src/net_processing.cpp --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -3797,8 +3797,7 @@ nCMPCTBLOCKVersion)); } - if ((pfrom.nServices & NODE_AVALANCHE) && g_avalanche && - isAvalancheEnabled(gArgs)) { + if (g_avalanche && isAvalancheEnabled(gArgs)) { if (g_avalanche->sendHello(&pfrom)) { LogPrint(BCLog::AVALANCHE, "Send avahello to peer %d\n", pfrom.GetId()); diff --git a/test/functional/abc_p2p_avalanche_peer_discovery.py b/test/functional/abc_p2p_avalanche_peer_discovery.py --- a/test/functional/abc_p2p_avalanche_peer_discovery.py +++ b/test/functional/abc_p2p_avalanche_peer_discovery.py @@ -274,6 +274,12 @@ node.reconsiderblock(tip) self.wait_until(lambda: has_node_count(2), timeout=2) + self.log.info( + "Check the node sends an avahello message to all peers even if the avalanche service bit is not advertised") + for _ in range(3): + nonavapeer = get_ava_p2p_interface(node, services=NODE_NETWORK) + nonavapeer.wait_for_avahello() + if __name__ == '__main__': AvalancheTest().main() diff --git a/test/functional/abc_p2p_proof_inventory.py b/test/functional/abc_p2p_proof_inventory.py --- a/test/functional/abc_p2p_proof_inventory.py +++ b/test/functional/abc_p2p_proof_inventory.py @@ -284,38 +284,6 @@ assert not proof_inv_received(peers) - def test_local_proof_broadcast(self): - node = self.nodes[0] - - privkey, proof = gen_proof(node) - proofid_hex = "{:064x}".format(proof.proofid) - - [node.stop_node() for node in self.nodes[1:]] - - self.restart_node(0, self.extra_args[0] + [ - "-avaproof={}".format(proof.serialize().hex()), - "-avamasterkey={}".format(bytes_to_wif(privkey.get_bytes())), - ]) - - peers = [] - for _ in range(10): - peers.append(node.add_p2p_connection(ProofInvStoreP2PInterface())) - - with p2p_lock: - assert all([p.proof_invs_counter == 0 for p in peers]) - - # Mine a block so the proof gets validated - node.generate(1) - wait_for_proof(node, proofid_hex) - - node.mockscheduler(MAX_INITIAL_BROADCAST_DELAY + 1) - - def proof_inv_received(): - with p2p_lock: - return all(p.last_message.get( - "inv") and p.last_message["inv"].inv[-1].hash == proof.proofid for p in peers) - self.wait_until(proof_inv_received) - def run_test(self): self.test_send_proof_inv() self.test_receive_proof() @@ -325,7 +293,6 @@ # Run these tests last because they need to disconnect the nodes self.test_unbroadcast() self.test_ban_invalid_proof() - self.test_local_proof_broadcast() if __name__ == '__main__':