fix(services): setup services before peerinfo is updated (#1120)

This commit is contained in:
diegomrsantos 2024-06-07 11:48:44 +02:00 committed by GitHub
parent bccb305cf5
commit 120549e313
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 7 additions and 8 deletions

View File

@ -349,13 +349,11 @@ proc start*(s: Switch) {.async, public.} =
s.acceptFuts.add(s.accept(t))
s.peerInfo.listenAddrs &= t.addrs
await s.peerInfo.update()
await s.ms.start()
for service in s.services:
discard await service.setup(s)
await s.peerInfo.update()
await s.ms.start()
s.started = true
debug "Started libp2p node", peer = s.peerInfo

View File

@ -1,8 +1,9 @@
import std/[os, options, strformat]
import std/[os, options, strformat, sequtils]
import redis
import chronos, chronicles
import ../../libp2p/[builders,
switch,
multicodec,
observedaddrmanager,
services/hpservice,
services/autorelayservice,
@ -76,7 +77,7 @@ proc main() {.async.} =
debug "Connected to relay", relayId
# Wait for our relay address to be published
while switch.peerInfo.addrs.len == 0:
while not switch.peerInfo.addrs.anyIt(it.contains(multiCodec("p2p-circuit")).tryGet()):
await sleepAsync(100.milliseconds)
if isListener:

View File

@ -23,7 +23,7 @@ import stubs/autonatclientstub
proc createSwitch(autonatSvc: Service = nil, withAutonat = true, maxConnsPerPeer = 1, maxConns = 100, nameResolver: NameResolver = nil): Switch =
var builder = SwitchBuilder.new()
.withRng(newRng())
.withAddresses(@[ MultiAddress.init("/ip4/0.0.0.0/tcp/0").tryGet() ])
.withAddresses(@[ MultiAddress.init("/ip4/0.0.0.0/tcp/0").tryGet() ], false)
.withTcpTransport()
.withMaxConnsPerPeer(maxConnsPerPeer)
.withMaxConnections(maxConns)

View File

@ -20,7 +20,7 @@ import ./helpers
proc createSwitch(r: Relay, autorelay: Service = nil): Switch =
var builder = SwitchBuilder.new()
.withRng(newRng())
.withAddresses(@[ MultiAddress.init("/ip4/0.0.0.0/tcp/0").tryGet() ])
.withAddresses(@[ MultiAddress.init("/ip4/0.0.0.0/tcp/0").tryGet() ], false)
.withTcpTransport()
.withMplex()
.withNoise()