From f45fe8a1fdbebc0810293b21a939459faee94a01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Drwi=C4=99ga?= Date: Fri, 6 Jan 2017 10:38:31 +0100 Subject: [PATCH] [beta] Avoid re-broadcasting transactions on each block (#4047) * Avoid re-broadcasting transactions on each block * Fixing test and nightly compilation * Fixing comment [ci:skip] Former-commit-id: a7ed6f65cf88d570e0fd5fc235af83b8a70fbc46 --- sync/src/chain.rs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/sync/src/chain.rs b/sync/src/chain.rs index c92aa4aaa..f87c3b104 100644 --- a/sync/src/chain.rs +++ b/sync/src/chain.rs @@ -1995,9 +1995,6 @@ impl ChainSync { trace!(target: "sync", "Bad blocks in the queue, restarting"); self.restart(io); } - for peer_info in self.peers.values_mut() { - peer_info.last_sent_transactions.clear(); - } } } @@ -2334,7 +2331,7 @@ mod tests { } #[test] - fn propagates_transactions_again_after_new_block() { + fn should_not_propagate_transactions_again_after_new_block() { let mut client = TestBlockChainClient::new(); client.add_blocks(100, EachBlockWith::Uncle); client.insert_transaction_to_queue(); @@ -2347,14 +2344,13 @@ mod tests { // Try to propagate same transactions for the second time let peer_count2 = sync.propagate_new_transactions(&mut io); - // 2 message should be send - assert_eq!(2, io.queue.len()); - // 1 peer should be updated twice + // 1 message should be send + assert_eq!(1, io.queue.len()); + // 1 peer should be updated only for the first time assert_eq!(1, peer_count); - assert_eq!(1, peer_count2); + assert_eq!(0, peer_count2); // TRANSACTIONS_PACKET assert_eq!(0x02, io.queue[0].packet_id); - assert_eq!(0x02, io.queue[1].packet_id); } #[test]