diff --git a/gg-broadcast/src/main.rs b/gg-broadcast/src/main.rs index c5d2ebf..9104079 100644 --- a/gg-broadcast/src/main.rs +++ b/gg-broadcast/src/main.rs @@ -58,18 +58,22 @@ impl BCaster { } else { self.store.clone() }; - for v in self.store.iter().filter(|_| rng.gen_bool(0.20)) { + for v in self.store.iter().filter(|_| rng.gen_bool(0.10)) { goss.insert(*v); } - if !goss.is_empty() && rng.gen_bool(0.5) { + if !goss.is_empty() && rng.gen_bool(0.6) { let goss: Vec<_> = goss.into_iter().collect(); let payload: Payload = [("goss".to_string(), goss.into())].into_iter().collect(); let body = Body::from_type("gossip").with_payload(payload); runner.send(node, body.clone()); - let other = &self.others[rng.gen_range(0..self.others.len())]; - runner.send(other, body); } } + + let other = &self.others[rng.gen_range(0..self.others.len())]; + let goss: Vec<_> = self.store.iter().cloned().collect(); + let payload: Payload = [("goss".to_string(), goss.into())].into_iter().collect(); + let body = Body::from_type("gossip").with_payload(payload); + runner.send(other, body); } }