From 78a44e006b3889fd8b8c8caea48b86b7d2b6ae4e Mon Sep 17 00:00:00 2001 From: YeahNotSewerSide Date: Tue, 9 Dec 2025 09:09:32 +0200 Subject: [PATCH] discover: use hash bits value instead of hardcoded 256 --- p2p/discover/table.go | 8 ++++---- p2p/discover/v5_udp.go | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/p2p/discover/table.go b/p2p/discover/table.go index e5b2c7c8c5..a11aa5257b 100644 --- a/p2p/discover/table.go +++ b/p2p/discover/table.go @@ -46,9 +46,9 @@ const ( // We keep buckets for the upper 1/15 of distances because // it's very unlikely we'll ever encounter a node that's closer. - hashBits = len(common.Hash{}) * 8 - nBuckets = hashBits / 15 // Number of buckets - bucketMinDistance = hashBits - nBuckets // Log distance of closest bucket + hashBits = uint(len(common.Hash{}) * 8) + nBuckets = int(hashBits / 15) // Number of buckets + bucketMinDistance = int(hashBits) - nBuckets // Log distance of closest bucket // IP address limits. bucketIPLimit, bucketSubnet = 2, 24 // at most 2 addresses from the same /24 @@ -272,7 +272,7 @@ func (tab *Table) findnodeByID(target enode.ID, nresults int, preferLive bool) * // appendBucketNodes adds nodes at the given distance to the result slice. // This is used by the FINDNODE/v5 handler. func (tab *Table) appendBucketNodes(dist uint, result []*enode.Node, checkLive bool) []*enode.Node { - if dist > 256 { + if dist > hashBits { return result } if dist == 0 { diff --git a/p2p/discover/v5_udp.go b/p2p/discover/v5_udp.go index c13032e1af..1d67d5b11b 100644 --- a/p2p/discover/v5_udp.go +++ b/p2p/discover/v5_udp.go @@ -926,7 +926,7 @@ func (t *UDPv5) collectTableNodes(rip netip.Addr, distances []uint, limit int) [ for _, dist := range distances { // Reject duplicate / invalid distances. _, seen := processed[dist] - if seen || dist > 256 { + if seen || dist > hashBits { continue } processed[dist] = struct{}{}