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 8a6e987a95
commit c23e9aee27
No known key found for this signature in database
6 changed files with 34 additions and 25 deletions

View File

@ -137,7 +137,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

@ -135,7 +135,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

@ -231,7 +231,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:
@ -287,7 +287,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:
@ -336,7 +336,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:
@ -349,7 +350,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

@ -58,7 +58,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:
@ -81,7 +81,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
@ -99,7 +99,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
@ -169,7 +169,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:
@ -186,7 +186,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:
@ -203,7 +203,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:
@ -320,7 +320,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:
@ -341,7 +341,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:
@ -357,7 +357,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
@ -432,7 +432,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:
@ -455,7 +455,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:
@ -473,7 +473,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
@ -601,7 +601,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:
@ -620,7 +620,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

@ -265,7 +265,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:
@ -536,7 +536,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:
@ -605,7 +605,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:
@ -664,7 +664,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:
@ -736,7 +736,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: