mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-07 16:33:08 +00:00
chore: cleaning waitFor instances (#3495)
This commit is contained in:
parent
3133aaaf71
commit
012d719722
@ -122,7 +122,7 @@ when isMainModule:
|
|||||||
error "Issue converting toWakuConf", error = $error
|
error "Issue converting toWakuConf", error = $error
|
||||||
quit(QuitFailure)
|
quit(QuitFailure)
|
||||||
|
|
||||||
var waku = Waku.new(wakuConf).valueOr:
|
var waku = (waitFor Waku.new(wakuConf)).valueOr:
|
||||||
error "Waku initialization failed", error = error
|
error "Waku initialization failed", error = error
|
||||||
quit(QuitFailure)
|
quit(QuitFailure)
|
||||||
|
|
||||||
|
|||||||
@ -56,7 +56,7 @@ when isMainModule:
|
|||||||
error "Waku configuration failed", error = error
|
error "Waku configuration failed", error = error
|
||||||
quit(QuitFailure)
|
quit(QuitFailure)
|
||||||
|
|
||||||
var waku = Waku.new(conf).valueOr:
|
var waku = (waitFor Waku.new(conf)).valueOr:
|
||||||
error "Waku initialization failed", error = error
|
error "Waku initialization failed", error = error
|
||||||
quit(QuitFailure)
|
quit(QuitFailure)
|
||||||
|
|
||||||
|
|||||||
@ -77,7 +77,7 @@ proc setupAndSubscribe(rng: ref HmacDrbgContext) {.async.} =
|
|||||||
let node = builder.build().tryGet()
|
let node = builder.build().tryGet()
|
||||||
|
|
||||||
node.mountMetadata(clusterId).expect("failed to mount waku metadata protocol")
|
node.mountMetadata(clusterId).expect("failed to mount waku metadata protocol")
|
||||||
waitFor node.mountFilterClient()
|
await node.mountFilterClient()
|
||||||
|
|
||||||
await node.start()
|
await node.start()
|
||||||
|
|
||||||
|
|||||||
@ -46,7 +46,7 @@ proc setup*(): Waku =
|
|||||||
conf.rlnRelay = twnNetworkConf.rlnRelay
|
conf.rlnRelay = twnNetworkConf.rlnRelay
|
||||||
|
|
||||||
debug "Starting node"
|
debug "Starting node"
|
||||||
var waku = Waku.new(conf).valueOr:
|
var waku = (waitFor Waku.new(conf)).valueOr:
|
||||||
error "Waku initialization failed", error = error
|
error "Waku initialization failed", error = error
|
||||||
quit(QuitFailure)
|
quit(QuitFailure)
|
||||||
|
|
||||||
|
|||||||
@ -79,7 +79,7 @@ proc createWaku(
|
|||||||
|
|
||||||
wakuConf.restServerConf = none(RestServerConf) ## don't want REST in libwaku
|
wakuConf.restServerConf = none(RestServerConf) ## don't want REST in libwaku
|
||||||
|
|
||||||
let wakuRes = Waku.new(wakuConf, appCallbacks).valueOr:
|
let wakuRes = (await Waku.new(wakuConf, appCallbacks)).valueOr:
|
||||||
error "waku initialization failed", error = error
|
error "waku initialization failed", error = error
|
||||||
return err("Failed setting up Waku: " & $error)
|
return err("Failed setting up Waku: " & $error)
|
||||||
|
|
||||||
|
|||||||
@ -9,10 +9,10 @@ import
|
|||||||
waku/factory/conf_builder/conf_builder
|
waku/factory/conf_builder/conf_builder
|
||||||
|
|
||||||
suite "Node Factory":
|
suite "Node Factory":
|
||||||
test "Set up a node based on default configurations":
|
asynctest "Set up a node based on default configurations":
|
||||||
let conf = defaultTestWakuConf()
|
let conf = defaultTestWakuConf()
|
||||||
|
|
||||||
let node = setupNode(conf, relay = Relay.new()).valueOr:
|
let node = (await setupNode(conf, relay = Relay.new())).valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
check:
|
check:
|
||||||
@ -23,13 +23,13 @@ suite "Node Factory":
|
|||||||
not node.wakuStoreClient.isNil()
|
not node.wakuStoreClient.isNil()
|
||||||
not node.wakuRendezvous.isNil()
|
not node.wakuRendezvous.isNil()
|
||||||
|
|
||||||
test "Set up a node with Store enabled":
|
asynctest "Set up a node with Store enabled":
|
||||||
var confBuilder = defaultTestWakuConfBuilder()
|
var confBuilder = defaultTestWakuConfBuilder()
|
||||||
confBuilder.storeServiceConf.withEnabled(true)
|
confBuilder.storeServiceConf.withEnabled(true)
|
||||||
confBuilder.storeServiceConf.withDbUrl("sqlite://store.sqlite3")
|
confBuilder.storeServiceConf.withDbUrl("sqlite://store.sqlite3")
|
||||||
let conf = confBuilder.build().value
|
let conf = confBuilder.build().value
|
||||||
|
|
||||||
let node = setupNode(conf, relay = Relay.new()).valueOr:
|
let node = (await setupNode(conf, relay = Relay.new())).valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
check:
|
check:
|
||||||
@ -37,28 +37,28 @@ suite "Node Factory":
|
|||||||
not node.wakuStore.isNil()
|
not node.wakuStore.isNil()
|
||||||
not node.wakuArchive.isNil()
|
not node.wakuArchive.isNil()
|
||||||
|
|
||||||
test "Set up a node with Filter enabled":
|
asynctest "Set up a node with Filter enabled":
|
||||||
var confBuilder = defaultTestWakuConfBuilder()
|
var confBuilder = defaultTestWakuConfBuilder()
|
||||||
confBuilder.filterServiceConf.withEnabled(true)
|
confBuilder.filterServiceConf.withEnabled(true)
|
||||||
let conf = confBuilder.build().value
|
let conf = confBuilder.build().value
|
||||||
|
|
||||||
let node = setupNode(conf, relay = Relay.new()).valueOr:
|
let node = (await setupNode(conf, relay = Relay.new())).valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
check:
|
check:
|
||||||
not node.isNil()
|
not node.isNil()
|
||||||
not node.wakuFilter.isNil()
|
not node.wakuFilter.isNil()
|
||||||
|
|
||||||
test "Start a node based on default configurations":
|
asynctest "Start a node based on default configurations":
|
||||||
let conf = defaultTestWakuConf()
|
let conf = defaultTestWakuConf()
|
||||||
|
|
||||||
let node = setupNode(conf, relay = Relay.new()).valueOr:
|
let node = (await setupNode(conf, relay = Relay.new())).valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
assert not node.isNil(), "Node can't be nil"
|
assert not node.isNil(), "Node can't be nil"
|
||||||
|
|
||||||
let startRes = catch:
|
let startRes = catch:
|
||||||
(waitFor startNode(node, conf))
|
(await startNode(node, conf))
|
||||||
|
|
||||||
assert not startRes.isErr(), "Exception starting node"
|
assert not startRes.isErr(), "Exception starting node"
|
||||||
assert startRes.get().isOk(), "Error starting node " & startRes.get().error
|
assert startRes.get().isOk(), "Error starting node " & startRes.get().error
|
||||||
@ -67,4 +67,4 @@ test "Start a node based on default configurations":
|
|||||||
node.started == true
|
node.started == true
|
||||||
|
|
||||||
## Cleanup
|
## Cleanup
|
||||||
waitFor node.stop()
|
await node.stop()
|
||||||
|
|||||||
@ -429,7 +429,7 @@ suite "Waku Discovery v5":
|
|||||||
let conf = confBuilder.build().valueOr:
|
let conf = confBuilder.build().valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
let waku0 = Waku.new(conf).valueOr:
|
let waku0 = (await Waku.new(conf)).valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
(waitFor startWaku(addr waku0)).isOkOr:
|
(waitFor startWaku(addr waku0)).isOkOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
@ -444,7 +444,7 @@ suite "Waku Discovery v5":
|
|||||||
let conf1 = confBuilder.build().valueOr:
|
let conf1 = confBuilder.build().valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
let waku1 = Waku.new(conf1).valueOr:
|
let waku1 = (await Waku.new(conf1)).valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
(waitFor startWaku(addr waku1)).isOkOr:
|
(waitFor startWaku(addr waku1)).isOkOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
@ -461,7 +461,7 @@ suite "Waku Discovery v5":
|
|||||||
let conf2 = confBuilder.build().valueOr:
|
let conf2 = confBuilder.build().valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
let waku2 = Waku.new(conf2).valueOr:
|
let waku2 = (await Waku.new(conf2)).valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
(waitFor startWaku(addr waku2)).isOkOr:
|
(waitFor startWaku(addr waku2)).isOkOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
@ -492,7 +492,7 @@ suite "Waku Discovery v5":
|
|||||||
let conf = confBuilder.build().valueOr:
|
let conf = confBuilder.build().valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
let waku = Waku.new(conf).valueOr:
|
let waku = (await Waku.new(conf)).valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
discard setupDiscoveryV5(
|
discard setupDiscoveryV5(
|
||||||
@ -523,7 +523,7 @@ suite "Waku Discovery v5":
|
|||||||
let conf = confBuilder.build().valueOr:
|
let conf = confBuilder.build().valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
let waku = Waku.new(conf).valueOr:
|
let waku = (await Waku.new(conf)).valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
discard setupDiscoveryV5(
|
discard setupDiscoveryV5(
|
||||||
|
|||||||
@ -17,7 +17,7 @@ suite "Wakunode2 - Waku":
|
|||||||
## Given
|
## Given
|
||||||
let conf = defaultTestWakuConf()
|
let conf = defaultTestWakuConf()
|
||||||
|
|
||||||
let waku = Waku.new(conf).valueOr:
|
let waku = (waitFor Waku.new(conf)).valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
## When
|
## When
|
||||||
@ -33,7 +33,7 @@ suite "Wakunode2 - Waku initialization":
|
|||||||
var conf = defaultTestWakuConf()
|
var conf = defaultTestWakuConf()
|
||||||
conf.peerPersistence = true
|
conf.peerPersistence = true
|
||||||
|
|
||||||
let waku = Waku.new(conf).valueOr:
|
let waku = (waitFor Waku.new(conf)).valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
check:
|
check:
|
||||||
@ -44,7 +44,7 @@ suite "Wakunode2 - Waku initialization":
|
|||||||
var conf = defaultTestWakuConf()
|
var conf = defaultTestWakuConf()
|
||||||
|
|
||||||
## When
|
## When
|
||||||
var waku = Waku.new(conf).valueOr:
|
var waku = (waitFor Waku.new(conf)).valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
(waitFor startWaku(addr waku)).isOkOr:
|
(waitFor startWaku(addr waku)).isOkOr:
|
||||||
@ -68,7 +68,7 @@ suite "Wakunode2 - Waku initialization":
|
|||||||
conf.endpointConf.p2pTcpPort = Port(0)
|
conf.endpointConf.p2pTcpPort = Port(0)
|
||||||
|
|
||||||
## When
|
## When
|
||||||
var waku = Waku.new(conf).valueOr:
|
var waku = (waitFor Waku.new(conf)).valueOr:
|
||||||
raiseAssert error
|
raiseAssert error
|
||||||
|
|
||||||
(waitFor startWaku(addr waku)).isOkOr:
|
(waitFor startWaku(addr waku)).isOkOr:
|
||||||
|
|||||||
@ -65,7 +65,7 @@ proc networkConfiguration*(
|
|||||||
dnsAddrsNameServers: seq[IpAddress],
|
dnsAddrsNameServers: seq[IpAddress],
|
||||||
portsShift: uint16,
|
portsShift: uint16,
|
||||||
clientId: string,
|
clientId: string,
|
||||||
): NetConfigResult =
|
): Future[NetConfigResult] {.async.} =
|
||||||
## `udpPort` is only supplied to satisfy underlying APIs but is not
|
## `udpPort` is only supplied to satisfy underlying APIs but is not
|
||||||
## actually a supported transport for libp2p traffic.
|
## actually a supported transport for libp2p traffic.
|
||||||
let natRes = setupNat(
|
let natRes = setupNat(
|
||||||
@ -99,7 +99,7 @@ proc networkConfiguration*(
|
|||||||
# Resolve and use DNS domain IP
|
# Resolve and use DNS domain IP
|
||||||
if conf.dns4DomainName.isSome() and extIp.isNone():
|
if conf.dns4DomainName.isSome() and extIp.isNone():
|
||||||
try:
|
try:
|
||||||
let dnsRes = waitFor dnsResolve(conf.dns4DomainName.get(), dnsAddrsNameServers)
|
let dnsRes = await dnsResolve(conf.dns4DomainName.get(), dnsAddrsNameServers)
|
||||||
|
|
||||||
if dnsRes.isErr():
|
if dnsRes.isErr():
|
||||||
return err($dnsRes.error) # Pass error down the stack
|
return err($dnsRes.error) # Pass error down the stack
|
||||||
|
|||||||
@ -166,7 +166,7 @@ proc setupProtocols(
|
|||||||
if conf.storeServiceConf.isSome():
|
if conf.storeServiceConf.isSome():
|
||||||
let storeServiceConf = conf.storeServiceConf.get()
|
let storeServiceConf = conf.storeServiceConf.get()
|
||||||
if storeServiceConf.supportV2:
|
if storeServiceConf.supportV2:
|
||||||
let archiveDriverRes = waitFor legacy_driver.ArchiveDriver.new(
|
let archiveDriverRes = await legacy_driver.ArchiveDriver.new(
|
||||||
storeServiceConf.dbUrl, storeServiceConf.dbVacuum, storeServiceConf.dbMigration,
|
storeServiceConf.dbUrl, storeServiceConf.dbVacuum, storeServiceConf.dbMigration,
|
||||||
storeServiceConf.maxNumDbConnections, onFatalErrorAction,
|
storeServiceConf.maxNumDbConnections, onFatalErrorAction,
|
||||||
)
|
)
|
||||||
@ -200,7 +200,7 @@ proc setupProtocols(
|
|||||||
else:
|
else:
|
||||||
storeServiceConf.dbMigration
|
storeServiceConf.dbMigration
|
||||||
|
|
||||||
let archiveDriverRes = waitFor driver.ArchiveDriver.new(
|
let archiveDriverRes = await driver.ArchiveDriver.new(
|
||||||
storeServiceConf.dbUrl, storeServiceConf.dbVacuum, migrate,
|
storeServiceConf.dbUrl, storeServiceConf.dbVacuum, migrate,
|
||||||
storeServiceConf.maxNumDbConnections, onFatalErrorAction,
|
storeServiceConf.maxNumDbConnections, onFatalErrorAction,
|
||||||
)
|
)
|
||||||
@ -354,7 +354,7 @@ proc setupProtocols(
|
|||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
waitFor node.mountRlnRelay(rlnConf)
|
await node.mountRlnRelay(rlnConf)
|
||||||
except CatchableError:
|
except CatchableError:
|
||||||
return err("failed to mount waku RLN relay protocol: " & getCurrentExceptionMsg())
|
return err("failed to mount waku RLN relay protocol: " & getCurrentExceptionMsg())
|
||||||
|
|
||||||
@ -476,11 +476,13 @@ proc startNode*(
|
|||||||
|
|
||||||
proc setupNode*(
|
proc setupNode*(
|
||||||
wakuConf: WakuConf, rng: ref HmacDrbgContext = crypto.newRng(), relay: Relay
|
wakuConf: WakuConf, rng: ref HmacDrbgContext = crypto.newRng(), relay: Relay
|
||||||
): Result[WakuNode, string] =
|
): Future[Result[WakuNode, string]] {.async.} =
|
||||||
let netConfig = networkConfiguration(
|
let netConfig = (
|
||||||
wakuConf.clusterId, wakuConf.endpointConf, wakuConf.discv5Conf,
|
await networkConfiguration(
|
||||||
wakuConf.webSocketConf, wakuConf.wakuFlags, wakuConf.dnsAddrsNameServers,
|
wakuConf.clusterId, wakuConf.endpointConf, wakuConf.discv5Conf,
|
||||||
wakuConf.portsShift, clientId,
|
wakuConf.webSocketConf, wakuConf.wakuFlags, wakuConf.dnsAddrsNameServers,
|
||||||
|
wakuConf.portsShift, clientId,
|
||||||
|
)
|
||||||
).valueOr:
|
).valueOr:
|
||||||
error "failed to create internal config", error = error
|
error "failed to create internal config", error = error
|
||||||
return err("failed to create internal config: " & error)
|
return err("failed to create internal config: " & error)
|
||||||
@ -511,7 +513,7 @@ proc setupNode*(
|
|||||||
debug "Mounting protocols"
|
debug "Mounting protocols"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
(waitFor node.setupProtocols(wakuConf)).isOkOr:
|
(await node.setupProtocols(wakuConf)).isOkOr:
|
||||||
error "Mounting protocols failed", error = error
|
error "Mounting protocols failed", error = error
|
||||||
return err("Mounting protocols failed: " & error)
|
return err("Mounting protocols failed: " & error)
|
||||||
except CatchableError:
|
except CatchableError:
|
||||||
|
|||||||
@ -162,7 +162,7 @@ proc setupAppCallbacks(
|
|||||||
|
|
||||||
proc new*(
|
proc new*(
|
||||||
T: type Waku, wakuConf: WakuConf, appCallbacks: AppCallbacks = nil
|
T: type Waku, wakuConf: WakuConf, appCallbacks: AppCallbacks = nil
|
||||||
): Result[Waku, string] =
|
): Future[Result[Waku, string]] {.async.} =
|
||||||
let rng = crypto.newRng()
|
let rng = crypto.newRng()
|
||||||
|
|
||||||
logging.setupLog(wakuConf.logLevel, wakuConf.logFormat)
|
logging.setupLog(wakuConf.logLevel, wakuConf.logFormat)
|
||||||
@ -186,7 +186,7 @@ proc new*(
|
|||||||
|
|
||||||
var relay = newCircuitRelay(wakuConf.circuitRelayClient)
|
var relay = newCircuitRelay(wakuConf.circuitRelayClient)
|
||||||
|
|
||||||
let node = setupNode(wakuConf, rng, relay).valueOr:
|
let node = (await setupNode(wakuConf, rng, relay)).valueOr:
|
||||||
error "Failed setting up node", error = $error
|
error "Failed setting up node", error = $error
|
||||||
return err("Failed setting up node: " & $error)
|
return err("Failed setting up node: " & $error)
|
||||||
|
|
||||||
@ -248,7 +248,7 @@ proc getPorts(
|
|||||||
|
|
||||||
return ok((tcpPort: tcpPort, websocketPort: websocketPort))
|
return ok((tcpPort: tcpPort, websocketPort: websocketPort))
|
||||||
|
|
||||||
proc getRunningNetConfig(waku: ptr Waku): Result[NetConfig, string] =
|
proc getRunningNetConfig(waku: ptr Waku): Future[Result[NetConfig, string]] {.async.} =
|
||||||
var conf = waku[].conf
|
var conf = waku[].conf
|
||||||
let (tcpPort, websocketPort) = getPorts(waku[].node.switch.peerInfo.listenAddrs).valueOr:
|
let (tcpPort, websocketPort) = getPorts(waku[].node.switch.peerInfo.listenAddrs).valueOr:
|
||||||
return err("Could not retrieve ports: " & error)
|
return err("Could not retrieve ports: " & error)
|
||||||
@ -260,16 +260,18 @@ proc getRunningNetConfig(waku: ptr Waku): Result[NetConfig, string] =
|
|||||||
conf.webSocketConf.get().port = websocketPort.get()
|
conf.webSocketConf.get().port = websocketPort.get()
|
||||||
|
|
||||||
# Rebuild NetConfig with bound port values
|
# Rebuild NetConfig with bound port values
|
||||||
let netConf = networkConfiguration(
|
let netConf = (
|
||||||
conf.clusterId, conf.endpointConf, conf.discv5Conf, conf.webSocketConf,
|
await networkConfiguration(
|
||||||
conf.wakuFlags, conf.dnsAddrsNameServers, conf.portsShift, clientId,
|
conf.clusterId, conf.endpointConf, conf.discv5Conf, conf.webSocketConf,
|
||||||
|
conf.wakuFlags, conf.dnsAddrsNameServers, conf.portsShift, clientId,
|
||||||
|
)
|
||||||
).valueOr:
|
).valueOr:
|
||||||
return err("Could not update NetConfig: " & error)
|
return err("Could not update NetConfig: " & error)
|
||||||
|
|
||||||
return ok(netConf)
|
return ok(netConf)
|
||||||
|
|
||||||
proc updateEnr(waku: ptr Waku): Result[void, string] =
|
proc updateEnr(waku: ptr Waku): Future[Result[void, string]] {.async.} =
|
||||||
let netConf: NetConfig = getRunningNetConfig(waku).valueOr:
|
let netConf: NetConfig = (await getRunningNetConfig(waku)).valueOr:
|
||||||
return err("error calling updateNetConfig: " & $error)
|
return err("error calling updateNetConfig: " & $error)
|
||||||
let record = enrConfiguration(waku[].conf, netConf).valueOr:
|
let record = enrConfiguration(waku[].conf, netConf).valueOr:
|
||||||
return err("ENR setup failed: " & error)
|
return err("ENR setup failed: " & error)
|
||||||
@ -309,11 +311,11 @@ proc updateAddressInENR(waku: ptr Waku): Result[void, string] =
|
|||||||
|
|
||||||
return ok()
|
return ok()
|
||||||
|
|
||||||
proc updateWaku(waku: ptr Waku): Result[void, string] =
|
proc updateWaku(waku: ptr Waku): Future[Result[void, string]] {.async.} =
|
||||||
let conf = waku[].conf
|
let conf = waku[].conf
|
||||||
if conf.endpointConf.p2pTcpPort == Port(0) or
|
if conf.endpointConf.p2pTcpPort == Port(0) or
|
||||||
(conf.websocketConf.isSome() and conf.websocketConf.get.port == Port(0)):
|
(conf.websocketConf.isSome() and conf.websocketConf.get.port == Port(0)):
|
||||||
updateEnr(waku).isOkOr:
|
(await updateEnr(waku)).isOkOr:
|
||||||
return err("error calling updateEnr: " & $error)
|
return err("error calling updateEnr: " & $error)
|
||||||
|
|
||||||
?updateAnnouncedAddrWithPrimaryIpAddr(waku[].node)
|
?updateAnnouncedAddrWithPrimaryIpAddr(waku[].node)
|
||||||
@ -381,7 +383,7 @@ proc startWaku*(waku: ptr Waku): Future[Result[void, string]] {.async.} =
|
|||||||
return err("error while calling startNode: " & $error)
|
return err("error while calling startNode: " & $error)
|
||||||
|
|
||||||
## Update waku data that is set dynamically on node start
|
## Update waku data that is set dynamically on node start
|
||||||
updateWaku(waku).isOkOr:
|
(await updateWaku(waku)).isOkOr:
|
||||||
return err("Error in updateApp: " & $error)
|
return err("Error in updateApp: " & $error)
|
||||||
|
|
||||||
## Discv5
|
## Discv5
|
||||||
@ -424,8 +426,12 @@ proc startWaku*(waku: ptr Waku): Future[Result[void, string]] {.async.} =
|
|||||||
return err ("Starting protocols support REST server failed: " & $error)
|
return err ("Starting protocols support REST server failed: " & $error)
|
||||||
|
|
||||||
if conf.metricsServerConf.isSome():
|
if conf.metricsServerConf.isSome():
|
||||||
waku[].metricsServer = waku_metrics.startMetricsServerAndLogging(
|
waku[].metricsServer = (
|
||||||
conf.metricsServerConf.get(), conf.portsShift
|
await (
|
||||||
|
waku_metrics.startMetricsServerAndLogging(
|
||||||
|
conf.metricsServerConf.get(), conf.portsShift
|
||||||
|
)
|
||||||
|
)
|
||||||
).valueOr:
|
).valueOr:
|
||||||
return err("Starting monitoring and external interfaces failed: " & error)
|
return err("Starting monitoring and external interfaces failed: " & error)
|
||||||
|
|
||||||
|
|||||||
@ -59,14 +59,14 @@ proc startMetricsLog*() =
|
|||||||
|
|
||||||
proc startMetricsServer(
|
proc startMetricsServer(
|
||||||
serverIp: IpAddress, serverPort: Port
|
serverIp: IpAddress, serverPort: Port
|
||||||
): Result[MetricsHttpServerRef, string] =
|
): Future[Result[MetricsHttpServerRef, string]] {.async.} =
|
||||||
info "Starting metrics HTTP server", serverIp = $serverIp, serverPort = $serverPort
|
info "Starting metrics HTTP server", serverIp = $serverIp, serverPort = $serverPort
|
||||||
|
|
||||||
let server = MetricsHttpServerRef.new($serverIp, serverPort).valueOr:
|
let server = MetricsHttpServerRef.new($serverIp, serverPort).valueOr:
|
||||||
return err("metrics HTTP server start failed: " & $error)
|
return err("metrics HTTP server start failed: " & $error)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
waitFor server.start()
|
await server.start()
|
||||||
except CatchableError:
|
except CatchableError:
|
||||||
return err("metrics HTTP server start failed: " & getCurrentExceptionMsg())
|
return err("metrics HTTP server start failed: " & getCurrentExceptionMsg())
|
||||||
|
|
||||||
@ -75,10 +75,12 @@ proc startMetricsServer(
|
|||||||
|
|
||||||
proc startMetricsServerAndLogging*(
|
proc startMetricsServerAndLogging*(
|
||||||
conf: MetricsServerConf, portsShift: uint16
|
conf: MetricsServerConf, portsShift: uint16
|
||||||
): Result[MetricsHttpServerRef, string] =
|
): Future[Result[MetricsHttpServerRef, string]] {.async.} =
|
||||||
var metricsServer: MetricsHttpServerRef
|
var metricsServer: MetricsHttpServerRef
|
||||||
metricsServer = startMetricsServer(
|
metricsServer = (
|
||||||
conf.httpAddress, Port(conf.httpPort.uint16 + portsShift)
|
await (
|
||||||
|
startMetricsServer(conf.httpAddress, Port(conf.httpPort.uint16 + portsShift))
|
||||||
|
)
|
||||||
).valueOr:
|
).valueOr:
|
||||||
return err("Starting metrics server failed. Continuing in current state:" & $error)
|
return err("Starting metrics server failed. Continuing in current state:" & $error)
|
||||||
|
|
||||||
|
|||||||
@ -1240,7 +1240,7 @@ proc mountRlnRelay*(
|
|||||||
CatchableError, "WakuRelay protocol is not mounted, cannot mount WakuRlnRelay"
|
CatchableError, "WakuRelay protocol is not mounted, cannot mount WakuRlnRelay"
|
||||||
)
|
)
|
||||||
|
|
||||||
let rlnRelayRes = waitFor WakuRlnRelay.new(rlnConf, registrationHandler)
|
let rlnRelayRes = await WakuRlnRelay.new(rlnConf, registrationHandler)
|
||||||
if rlnRelayRes.isErr():
|
if rlnRelayRes.isErr():
|
||||||
raise
|
raise
|
||||||
newException(CatchableError, "failed to mount WakuRlnRelay: " & rlnRelayRes.error)
|
newException(CatchableError, "failed to mount WakuRlnRelay: " & rlnRelayRes.error)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user