Skip to content

Waku builders for lightpush and filter servers and edge clients - #414

Open
radiken wants to merge 6 commits into
masterfrom
alan/waku-edge-builders
Open

radiken wants to merge 6 commits into
masterfrom
alan/waku-edge-builders

Conversation

@radiken

@radiken radiken commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

Adds builder methods for filter and lightpush servers and edge clients, a lightpush publish through the publisher, and redacts message payloads in the publisher's logs. Stacked on #413.

Related to #374

radiken and others added 2 commits September 24, 2026 10:13
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…a lightpush publish

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Base automatically changed from alan/waku-tracer-case to master September 25, 2026 12:03
Migrate old experiment with filter, lightpush and store nodes with filter and lightpush clients in one network, publishing over relay and lightpush to python.
@radiken radiken added the delivery Delivery commitments label Sep 28, 2026
@radiken radiken self-assigned this Sep 28, 2026
@radiken
radiken marked this pull request as ready for review September 28, 2026 12:18
Comment on lines +235 to +268
async def _publish_loop(self, cluster_id: int):
if not self.config.protocols:
raise ValueError("No protocols to publish with.")

self.log_event("start_messages")
tasks = []
for message_index in range(0, self.config.num_messages):
protocol = self.config.protocols[message_index % len(self.config.protocols)]
name, num_nodes, service = self._publish_target(protocol)
pod_name = f"{name}-{random.randint(0, num_nodes - 1)}"
self.log_event(
{
"event": "publish",
"protocol": protocol,
"node": pod_name,
"message_index": message_index,
}
)
tasks.append(
asyncio.create_task(
publish(
protocol,
self.namespace,
pod_name,
service,
self.config.msg_size_kbytes,
cluster_id,
self.config.content_topic,
)
)
)
await asyncio.sleep(self.config.delay_after_publish)
await asyncio.gather(*tasks)
self.log_event("publisher_messages_finished")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

publish() catches every exception and returns normally. This means a run where every relay/lightpush request fails can still look complete and ok. The analyzer expects num_messages messages, but there is no failure event or returned status to distinguish successful from failed publishes.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 00b7275. Now it works like the nim-libp2p experiment since #387, if more than max_failed_publishes failed the run is marked invalid.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reads every store node's archive before teardown and checks it against the messages relay delivered.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

delivery Delivery commitments

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants