Apply fast retry pacing to node-internal group managers in tests

Tests that mount RLN on a WakuNode register through the node's own
group manager, which the factory builds from WakuRlnConfig with the
production retry pacing — so each of those registrations still stalled
4s on the first receipt poll. Wrap the manager casts in
withFastRetries(), which applies the test pacing after mount;
register() reads the strategy at call time, so this is effective.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
stubbsta 2026-07-13 09:09:26 +02:00
parent 8ee2312dd5
commit f133a17bd1
No known key found for this signature in database
6 changed files with 34 additions and 25 deletions

View File

@ -136,7 +136,7 @@ suite "RLN Proofs as a Lightpush Service":
check (await server.mountLegacyLightPush()).isOk()
client.mountLegacyLightPushClient()
let manager1 = cast[OnchainGroupManager](server.rln.groupManager)
let manager1 = cast[OnchainGroupManager](server.rln.groupManager).withFastRetries()
let idCredentials1 = generateCredentials()
(waitFor manager1.register(idCredentials1, UserMessageLimit(20))).isOkOr:

View File

@ -132,7 +132,7 @@ suite "RLN Proofs as a Lightpush Service":
check (await server.mountLightPush()).isOk()
client.mountLightPushClient()
let manager1 = cast[OnchainGroupManager](server.rln.groupManager)
let manager1 = cast[OnchainGroupManager](server.rln.groupManager).withFastRetries()
let idCredentials1 = generateCredentials()
(waitFor manager1.register(idCredentials1, UserMessageLimit(20))).isOkOr:

View File

@ -230,7 +230,7 @@ suite "Waku rln relay":
rln = (await Rln.new(wakuRlnConfig)).valueOr:
raiseAssert $error
let manager = cast[OnchainGroupManager](rln.groupManager)
let manager = cast[OnchainGroupManager](rln.groupManager).withFastRetries()
let idCredentials = generateCredentials()
(waitFor manager.register(idCredentials, UserMessageLimit(20))).isOkOr:
@ -286,7 +286,7 @@ suite "Waku rln relay":
rln = (await Rln.new(wakuRlnConfig)).valueOr:
raiseAssert $error
let manager = cast[OnchainGroupManager](rln.groupManager)
let manager = cast[OnchainGroupManager](rln.groupManager).withFastRetries()
let idCredentials = generateCredentials()
(waitFor manager.register(idCredentials, UserMessageLimit(20))).isOkOr:
@ -335,7 +335,8 @@ suite "Waku rln relay":
wakuRlnRelay1 = (await Rln.new(rlnConf1)).valueOr:
raiseAssert "failed to create waku rln relay: " & $error
let manager1 = cast[OnchainGroupManager](wakuRlnRelay1.groupManager)
let manager1 =
cast[OnchainGroupManager](wakuRlnRelay1.groupManager).withFastRetries()
let idCredentials1 = generateCredentials()
(waitFor manager1.register(idCredentials1, UserMessageLimit(20))).isOkOr:
@ -348,7 +349,8 @@ suite "Waku rln relay":
wakuRlnRelay2 = (await Rln.new(rlnConf2)).valueOr:
raiseAssert "failed to create waku rln relay: " & $error
let manager2 = cast[OnchainGroupManager](wakuRlnRelay2.groupManager)
let manager2 =
cast[OnchainGroupManager](wakuRlnRelay2.groupManager).withFastRetries()
let idCredentials2 = generateCredentials()
(waitFor manager2.register(idCredentials2, UserMessageLimit(20))).isOkOr:

View File

@ -57,7 +57,7 @@ procSuite "WakuNode - RLN relay":
await node1.start()
# Registration is mandatory before sending messages with rln-relay
let manager1 = cast[OnchainGroupManager](node1.rln.groupManager)
let manager1 = cast[OnchainGroupManager](node1.rln.groupManager).withFastRetries()
let idCredentials1 = generateCredentials()
(waitFor manager1.register(idCredentials1, UserMessageLimit(20))).isOkOr:
@ -80,7 +80,7 @@ procSuite "WakuNode - RLN relay":
await node2.setRlnValidator(wakuRlnConfig2)
await node2.start()
let manager2 = cast[OnchainGroupManager](node2.rln.groupManager)
let manager2 = cast[OnchainGroupManager](node2.rln.groupManager).withFastRetries()
let rootUpdated2 = waitFor manager2.updateRoots()
info "Updated root for node2", rootUpdated2
@ -98,7 +98,7 @@ procSuite "WakuNode - RLN relay":
await node3.setRlnValidator(wakuRlnConfig3)
await node3.start()
let manager3 = cast[OnchainGroupManager](node3.rln.groupManager)
let manager3 = cast[OnchainGroupManager](node3.rln.groupManager).withFastRetries()
let rootUpdated3 = waitFor manager3.updateRoots()
info "Updated root for node3", rootUpdated3
@ -168,7 +168,7 @@ procSuite "WakuNode - RLN relay":
getWakuRlnConfig(manager = manager, index = MembershipIndex(1))
await node1.setRlnValidator(wakuRlnConfig1)
await node1.start()
let manager1 = cast[OnchainGroupManager](node1.rln.groupManager)
let manager1 = cast[OnchainGroupManager](node1.rln.groupManager).withFastRetries()
let idCredentials1 = generateCredentials()
(waitFor manager1.register(idCredentials1, UserMessageLimit(20))).isOkOr:
@ -185,7 +185,7 @@ procSuite "WakuNode - RLN relay":
getWakuRlnConfig(manager = manager, index = MembershipIndex(2))
await node2.setRlnValidator(wakuRlnConfig2)
await node2.start()
let manager2 = cast[OnchainGroupManager](node2.rln.groupManager)
let manager2 = cast[OnchainGroupManager](node2.rln.groupManager).withFastRetries()
let idCredentials2 = generateCredentials()
(waitFor manager2.register(idCredentials2, UserMessageLimit(20))).isOkOr:
@ -202,7 +202,7 @@ procSuite "WakuNode - RLN relay":
getWakuRlnConfig(manager = manager, index = MembershipIndex(3))
await node3.setRlnValidator(wakuRlnConfig3)
await node3.start()
let manager3 = cast[OnchainGroupManager](node3.rln.groupManager)
let manager3 = cast[OnchainGroupManager](node3.rln.groupManager).withFastRetries()
let idCredentials3 = generateCredentials()
(waitFor manager3.register(idCredentials3, UserMessageLimit(20))).isOkOr:
@ -319,7 +319,7 @@ procSuite "WakuNode - RLN relay":
await node1.setRlnValidator(wakuRlnConfig1)
await node1.start()
let manager1 = cast[OnchainGroupManager](node1.rln.groupManager)
let manager1 = cast[OnchainGroupManager](node1.rln.groupManager).withFastRetries()
let idCredentials1 = generateCredentials()
(waitFor manager1.register(idCredentials1, UserMessageLimit(20))).isOkOr:
@ -340,7 +340,7 @@ procSuite "WakuNode - RLN relay":
await node2.setRlnValidator(wakuRlnConfig2)
await node2.start()
let manager2 = cast[OnchainGroupManager](node2.rln.groupManager)
let manager2 = cast[OnchainGroupManager](node2.rln.groupManager).withFastRetries()
let rootUpdated2 = waitFor manager2.updateRoots()
info "Updated root for node2", rootUpdated2
lockNewGlobalBrokerContext:
@ -356,7 +356,7 @@ procSuite "WakuNode - RLN relay":
await node3.setRlnValidator(wakuRlnConfig3)
await node3.start()
let manager3 = cast[OnchainGroupManager](node3.rln.groupManager)
let manager3 = cast[OnchainGroupManager](node3.rln.groupManager).withFastRetries()
let rootUpdated3 = waitFor manager3.updateRoots()
info "Updated root for node3", rootUpdated3
@ -431,7 +431,7 @@ procSuite "WakuNode - RLN relay":
await node1.start()
# Registration is mandatory before sending messages with rln-relay
let manager1 = cast[OnchainGroupManager](node1.rln.groupManager)
let manager1 = cast[OnchainGroupManager](node1.rln.groupManager).withFastRetries()
let idCredentials1 = generateCredentials()
(waitFor manager1.register(idCredentials1, UserMessageLimit(20))).isOkOr:
@ -454,7 +454,7 @@ procSuite "WakuNode - RLN relay":
await node2.start()
# Registration is mandatory before sending messages with rln-relay
let manager2 = cast[OnchainGroupManager](node2.rln.groupManager)
let manager2 = cast[OnchainGroupManager](node2.rln.groupManager).withFastRetries()
let rootUpdated2 = waitFor manager2.updateRoots()
info "Updated root for node2", rootUpdated2
lockNewGlobalBrokerContext:
@ -472,7 +472,7 @@ procSuite "WakuNode - RLN relay":
await node3.start()
# Registration is mandatory before sending messages with rln-relay
let manager3 = cast[OnchainGroupManager](node3.rln.groupManager)
let manager3 = cast[OnchainGroupManager](node3.rln.groupManager).withFastRetries()
let rootUpdated3 = waitFor manager3.updateRoots()
info "Updated root for node3", rootUpdated3
@ -600,7 +600,7 @@ procSuite "WakuNode - RLN relay":
await node1.start()
# Registration is mandatory before sending messages with rln-relay
let manager1 = cast[OnchainGroupManager](node1.rln.groupManager)
let manager1 = cast[OnchainGroupManager](node1.rln.groupManager).withFastRetries()
let idCredentials1 = generateCredentials()
(waitFor manager1.register(idCredentials1, UserMessageLimit(20))).isOkOr:
@ -619,7 +619,7 @@ procSuite "WakuNode - RLN relay":
await node2.start()
# Registration is mandatory before sending messages with rln-relay
let manager2 = cast[OnchainGroupManager](node2.rln.groupManager)
let manager2 = cast[OnchainGroupManager](node2.rln.groupManager).withFastRetries()
let rootUpdated2 = waitFor manager2.updateRoots()
info "Updated root for node2", rootUpdated2

View File

@ -50,6 +50,13 @@ const FUNDED_TEST_PRIVATE_KEY* =
# dead time when polling for transaction receipts.
const FastRetryStrategy = RetryStrategy(retryDelay: 100.millis, retryCount: 15)
proc withFastRetries*(m: OnchainGroupManager): OnchainGroupManager =
## Applies test retry pacing to a manager built outside these helpers, such as
## the node-internal manager created during RLN mount. register() reads the
## strategy at call time, so setting it after init() is effective.
m.retryStrategy = FastRetryStrategy
return m
proc generateCredentials*(): IdentityCredential =
let credRes = membershipKeyGen()
return credRes.get()

View File

@ -264,7 +264,7 @@ suite "Waku v2 Rest API - Relay":
await node.setRlnValidator(wakuRlnConfig)
await node.start()
# Registration is mandatory before sending messages with rln-relay
let manager = cast[OnchainGroupManager](node.rln.groupManager)
let manager = cast[OnchainGroupManager](node.rln.groupManager).withFastRetries()
let idCredentials = generateCredentials()
(waitFor manager.register(idCredentials, UserMessageLimit(20))).isOkOr:
@ -535,7 +535,7 @@ suite "Waku v2 Rest API - Relay":
await node.connectToNodes(@[meshNode.peerInfo.toRemotePeerInfo()])
# Registration is mandatory before sending messages with rln-relay
let manager = cast[OnchainGroupManager](node.rln.groupManager)
let manager = cast[OnchainGroupManager](node.rln.groupManager).withFastRetries()
let idCredentials = generateCredentials()
(waitFor manager.register(idCredentials, UserMessageLimit(20))).isOkOr:
@ -604,7 +604,7 @@ suite "Waku v2 Rest API - Relay":
await node.start()
# Registration is mandatory before sending messages with rln-relay
let manager = cast[OnchainGroupManager](node.rln.groupManager)
let manager = cast[OnchainGroupManager](node.rln.groupManager).withFastRetries()
let idCredentials = generateCredentials()
(waitFor manager.register(idCredentials, UserMessageLimit(20))).isOkOr:
@ -663,7 +663,7 @@ suite "Waku v2 Rest API - Relay":
await node.start()
# Registration is mandatory before sending messages with rln-relay
let manager = cast[OnchainGroupManager](node.rln.groupManager)
let manager = cast[OnchainGroupManager](node.rln.groupManager).withFastRetries()
let idCredentials = generateCredentials()
(waitFor manager.register(idCredentials, UserMessageLimit(20))).isOkOr:
@ -735,7 +735,7 @@ suite "Waku v2 Rest API - Relay":
await node.start()
# Registration is mandatory before sending messages with rln-relay
let manager = cast[OnchainGroupManager](node.rln.groupManager)
let manager = cast[OnchainGroupManager](node.rln.groupManager).withFastRetries()
let idCredentials = generateCredentials()
(waitFor manager.register(idCredentials, UserMessageLimit(20))).isOkOr: