mirror of
https://github.com/varun-r-mallya/py-libp2p.git
synced 2025-12-31 20:36:24 +00:00
Improve relay selection to prioritize active reservations
Signed-off-by: varun-r-mallya <varunrmallya@gmail.com>
This commit is contained in:
@ -219,11 +219,25 @@ class CircuitV2Transport(ITransport):
|
||||
# Get a relay from the list of discovered relays
|
||||
relays = self.discovery.get_relays()
|
||||
if relays:
|
||||
# TODO: Implement more sophisticated relay selection
|
||||
# For now, just return the first available relay
|
||||
return relays[0]
|
||||
# Prioritize relays with active reservations
|
||||
relays_with_reservations = []
|
||||
other_relays = []
|
||||
|
||||
for relay_id in relays:
|
||||
relay_info = self.discovery.get_relay_info(relay_id)
|
||||
if relay_info and relay_info.has_reservation:
|
||||
relays_with_reservations.append(relay_id)
|
||||
else:
|
||||
other_relays.append(relay_id)
|
||||
|
||||
# Return first available relay with reservation, or fallback to others
|
||||
if relays_with_reservations:
|
||||
return relays_with_reservations[
|
||||
attempts % len(relays_with_reservations)
|
||||
]
|
||||
elif other_relays:
|
||||
return other_relays[attempts % len(other_relays)]
|
||||
|
||||
# Wait and try discovery
|
||||
await trio.sleep(1)
|
||||
attempts += 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user