From 4395f2b17fcc20f733ee37c3e3e16664821015dc Mon Sep 17 00:00:00 2001 From: Wei-Ning Huang Date: Tue, 23 Oct 2018 12:05:43 +0800 Subject: dex: prevent broadcasting agreement and randomness indefinitely --- dex/handler.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dex/handler.go b/dex/handler.go index 87f8b6b1d..2b7e1cee1 100644 --- a/dex/handler.go +++ b/dex/handler.go @@ -854,7 +854,9 @@ func (pm *ProtocolManager) BroadcastAgreementResult( round: agreement.Position.Round, } for _, peer := range pm.peers.PeersWithLabel(label) { - peer.AsyncSendAgreement(agreement) + if !peer.knownAgreements.Contains(rlpHash(agreement)) { + peer.AsyncSendAgreement(agreement) + } } // TODO(sonic): send to some of other nodes (gossip) @@ -872,7 +874,9 @@ func (pm *ProtocolManager) BroadcastRandomnessResult( round: randomness.Position.Round, } for _, peer := range pm.peers.PeersWithLabel(label) { - peer.AsyncSendRandomness(randomness) + if !peer.knownRandomnesses.Contains(rlpHash(randomness)) { + peer.AsyncSendRandomness(randomness) + } } // TODO(sonic): send to some of other nodes (gossip) -- cgit v1.2.3