-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Waku Network Testing #2
Comments
Issue copied over from vacp2p/research#142 |
Original comment from @fryorcraken:
I would call it a phase 2 more than a side effect. I agree that priority is on multi-client scalability of Waku, followed by extracting performance metrics. Phase 2 testsWhat we would also like to have mid-term. Non-regression testing: delta analysisWhat we also need is various non-regression tests when (before) releasing new software. Where we do a run and compare with a previous run:
Multi-client functional testingWhat we also need is a multi-client non-regression functional testing. ie, suite of functional tests that demonstrate cross client compatibility of several protocols. Similar to what is done in js-waku CI: [1] [2]. Does this fall under the Kurtosis umbrella? |
Original comment from @fryorcraken: Regarding phase 1, proving scalability. I suggest we focus on the Status client use case at first which enables to cover a good number of scenarios. We can structure the tests around answering this question: Can the Waku network onboard 10 million users? We can start progressively by dialing We can start with topology similar to the expected one from Status clients:
Where From this simulation, we can extract/extrapolate:
|
I've created a section in the Nomos tech roadmap that also details this work and tracks things, which can be viewed here. You'll also find a document that I started to map out the detail the explicit differences between Status clients (Agents) w.r.t. what protocols they implement and their associated Waku messaging on the network. This is so that we can more realistically simulate the Status network during these tests. This WIP document can be found in the first link of the previously mentioned roadmap document. |
As a starting point to get started with Kurtosis and close the knowledge gap, @AlbertoSoutullo is willing to provide a set of configuration files to launch a simple simulation where:
The main goal is to use this simple setup as a starting point and the build on top to eventually end up with the |
As a continuation of my latest comment and as per the discussions with @AlbertoSoutullo @Daimakaimura, we have broken down into lower level requirements/tasks the |
Background
Waku network simulation and testing is done in collaboration with Kurtosis and uses their distributed network manipulation tools. The main aim of network testing is twofold:
The side effect is the creation of an integrated, multi-client simulation environment that can be used for regular integration testing, regression checks, network experiments, etc.
This issue tracks the main simulation scenarios we want to create and desirable outputs/metrics.
First network test:
relay
scalability and familiarising ourselves with Kurtosis toolsThe rough idea for a first test comes from this forum thread. It asks at least two questions about the simplest possible network setup, running only the main routing protocol (
relay
) and using only thenwaku
client:Other metrics (such as node resource consumption - CPU, bandwidth and memory usage) should form part of the experimental output data.
Setup
Run a
relay
network withx
amount ofnwaku
nodes usingdiscv5
to establish a well-connected mesh (afaik this approximates a typical Communities setup on Desktop clients).Publish (from a random subset of nodes) messages of size
s
at a rater
.Measure
Varying
x
,s
andr
, measure:To measure reliability we can add a simple
seq
counter to the message payload. Latency can already be measured using the sender timestamp field.Laundry list of scenarios we want to build
The scenario above proposes a way to get started with Kurtosis for network testing. The list below, captures more clearly the type of outputs that we want from network testing in the longer term:
relay
, also testingstore
,filter
,lightpush
at scalego-waku
,js-waku
andnwaku
nodesdiscv5
, alternative discovery methods such aswaku peer exchange
It would be useful to come up with a set of automated e2e tests that can regularly run against an integrated simulated environment to detect regressions and performance issue early.
The text was updated successfully, but these errors were encountered: