-
Notifications
You must be signed in to change notification settings - Fork 47
Description
Description
Provide tools for DST team to perform simulations using js-waku.
Requirement (from FURPS)
In an established network with 1 bootstrap node, 100 service nodes and 500 browser nodes (all nodes have a limit of 100 connections and support WebSocket), a new browser node can start sending and receiving messages within 10 seconds
User Story
- As DST engineer, I am capable to integrate
js-wakuinto simulations flow, so that I can make it connect to setnwakunode OR fleet. - As DST engineer, I can extract useful data from
js-wakunode after concluding simulation, so that I can analyze it. - As DST engineer, I can capture connectivity issues, so that they can be measured and reported.
- As DST engineer, I can identify missed messages on Filter, so that they can be measured and reported.
- As DST engineer, I can identify failed LightPush requests, so that they can be measured and reported.
- As DST engineer, I can identify missed messages on Store, so that they can be measured and reported.
- As DST engineer, I can capture
libp2pinformation, so that it can be integrated in overall report. - As Waku engineer, I can get access to data and derive useful information, so that I can drive improvements.
Proposed Solution
Provide dockerized web based application capable to be run in headless browser.
Example that can be used: https://github.com/waku-org/js-waku/tree/master/packages/browser-tests
In dockerize application we must expose way for measuring successes / failures in engineering AND logical sense in respect to the item:
- Connectivity;
- Stream / Peer management;
- Store protocol;
- Filter protocol;
- LightPush protocol;
- Discovery (?);
We MUST ensure that dockerized application is configurable by environment for particular fleet / nwaku node or any other needed configuration for simulations.
We MAY need to integrate following packages to provide easy way for libp2p metrics exposure:
- https://github.com/libp2p/js-libp2p/tree/main/packages/metrics-devtools
- https://github.com/libp2p/js-libp2p/tree/main/packages/metrics-opentelemetry
- https://github.com/libp2p/js-libp2p/tree/main/packages/metrics-prometheus
- https://github.com/libp2p/js-libp2p/tree/main/packages/metrics-simple
We also MAY need to provide a way to capture js-waku specific information such as discovery(if it is part of simulations), peer management, etc.
Sub-issues
Metadata
Metadata
Assignees
Labels
Type
Projects
Status