From 4a453c53e0d06af33d15ff27070d89e2a91fd03d Mon Sep 17 00:00:00 2001 From: Arnaud Date: Wed, 15 Apr 2026 10:25:36 +0400 Subject: [PATCH] Add abstraction for reachable nodes --- storage/nat.nim | 6 ++++++ storage/storage.nim | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/storage/nat.nim b/storage/nat.nim index f11d9786..0b83729e 100644 --- a/storage/nat.nim +++ b/storage/nat.nim @@ -401,6 +401,12 @@ proc setupAddress*( of NatStrategy.NatUpnp, NatStrategy.NatPmp: return setupNat(natConfig.nat, tcpPort, udpPort, clientId) +proc findReachableNodes*(bootstrapNodes: seq[SignedPeerRecord]): seq[SignedPeerRecord] = + ## Returns the list of nodes known to be directly reachable. + ## Currently returns bootstrap nodes. In the future, any network participant + ## confirmed reachable by AutoNAT could be included. + bootstrapNodes + proc nattedAddress*( natConfig: NatConfig, addrs: seq[MultiAddress], udpPort: Port ): tuple[libp2p, discovery: seq[MultiAddress]] = diff --git a/storage/storage.nim b/storage/storage.nim index ca099ef9..7c51fde0 100644 --- a/storage/storage.nim +++ b/storage/storage.nim @@ -111,7 +111,7 @@ proc start*(s: StorageServer) {.async.} = await s.storageNode.start() - for spr in s.config.bootstrapNodes: + for spr in findReachableNodes(s.config.bootstrapNodes): try: let addrs = spr.data.addresses.mapIt(it.address) await s.storageNode.switch.connect(spr.data.peerId, addrs)