From 1d1c430b1f071f43549e30d4f11bc1d56f071c03 Mon Sep 17 00:00:00 2001 From: moneromooo Date: Fri, 1 Jan 2021 15:27:15 +0000 Subject: [PATCH] p2p: fix cubic selection in filtered peer list Integer quantization biased the picks a lot (leading some indices to never be selected) --- src/p2p/net_node.inl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl index bf053f0f2..315ebfdde 100644 --- a/src/p2p/net_node.inl +++ b/src/p2p/net_node.inl @@ -1243,8 +1243,8 @@ namespace nodetool if(!max_index) return 0; - size_t x = crypto::rand()%(max_index+1); - size_t res = (x*x*x)/(max_index*max_index); //parabola \/ + size_t x = crypto::rand()%(16*max_index+1); + size_t res = (x*x*x)/(max_index*max_index*16*16*16); //parabola \/ MDEBUG("Random connection index=" << res << "(x="<< x << ", max_index=" << max_index << ")"); return res; }