Merge 0a208949090c68b82670011b6c7e1c9f2596bb55 into 77cb8a6c7a199b7823e5149bb72f8ce384883b8f

This commit is contained in:
Igor Sirotin 2026-07-14 09:46:47 +00:00 committed by GitHub
commit 0b0858a424
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 29 additions and 5 deletions

View File

@ -7,6 +7,7 @@
import std/[tables, sequtils, strutils]
import metrics, eth/p2p/discoveryv5/enr, libp2p/peerid, stew/byteutils
import logos_delivery/waku/[waku_node, net/bound_ports]
import logos_delivery/waku/factory/waku_conf
type
NodeInfoId* {.pure.} = enum
@ -17,9 +18,11 @@ type
MyPeerId
MyBoundPorts
MyMixPubKey
MaxMessageSize
WakuStateInfo* {.requiresInit.} = object
node: WakuNode
conf: WakuConf
proc getAllPossibleInfoItemIds*(self: WakuStateInfo): seq[NodeInfoId] =
## Returns all possible options that can be queried to learn about the node's information.
@ -52,8 +55,11 @@ proc getNodeInfoItem*(self: WakuStateInfo, infoItemId: NodeInfoId): string =
if self.node.wakuMix.isNil():
return ""
return self.node.wakuMix.pubKey.to0xHex()
of NodeInfoId.MaxMessageSize:
## Configured max message size (in bytes) for this node.
return $self.conf.maxMessageSizeBytes
else:
return "unknown info item id"
proc init*(T: typedesc[WakuStateInfo], node: WakuNode): T =
return WakuStateInfo(node: node)
proc init*(T: typedesc[WakuStateInfo], node: WakuNode, conf: WakuConf): T =
return WakuStateInfo(node: node, conf: conf)

View File

@ -235,7 +235,7 @@ proc new*(
return err("Failed setting up app callbacks: " & $error)
var waku = Waku(
stateInfo: WakuStateInfo.init(node),
stateInfo: WakuStateInfo.init(node, wakuConf),
conf: wakuConf,
rng: rng,
key: wakuConf.nodeKey,

View File

@ -235,7 +235,9 @@ suite "Health Monitor - events":
# `waku.node` is read on the messaging path; `conf`/`stateInfo` are supplied
# solely to satisfy Waku's {.requiresInit.} fields.
let waku = Waku(
node: nodeA, conf: defaultTestWakuConf(), stateInfo: WakuStateInfo.init(nodeA)
node: nodeA,
conf: defaultTestWakuConf(),
stateInfo: WakuStateInfo.init(nodeA, defaultTestWakuConf()),
)
let ds = MessagingClient
.new(MessagingClientConf(reliabilityEnabled: some(false)), waku)
@ -346,7 +348,9 @@ suite "Health Monitor - events":
# `waku.node` is read on the messaging path; `conf`/`stateInfo` are supplied
# solely to satisfy Waku's {.requiresInit.} fields.
let waku = Waku(
node: nodeA, conf: defaultTestWakuConf(), stateInfo: WakuStateInfo.init(nodeA)
node: nodeA,
conf: defaultTestWakuConf(),
stateInfo: WakuStateInfo.init(nodeA, defaultTestWakuConf()),
)
let ds = MessagingClient
.new(MessagingClientConf(reliabilityEnabled: some(false)), waku)

View File

@ -27,6 +27,20 @@ suite "Wakunode2 - Waku":
check:
version == git_version
test "max message size should be reported from node info":
## Given
let conf = defaultTestWakuConf()
let waku = (waitFor Waku.new(conf)).valueOr:
raiseAssert error
## When
let maxMessageSize = waku.stateInfo.getNodeInfoItem(NodeInfoId.MaxMessageSize)
## Then
check:
maxMessageSize == $conf.maxMessageSizeBytes
suite "Wakunode2 - Waku initialization":
test "peer persistence setup should be successfully mounted":
## Given