Introduction to Waku Simulator

The waku-simulator tool allows simulating a waku network with a set of interconnected nwaku nodes with the following features:

  • Configurable amount of nodes. Limits depend on the machine and are upper bounded at around 200.
  • Runs in a single machine, using docker-compose to orchestrate the containers.
  • It uses discv5 for peer discovery, using a common bootstrap node.
  • It runs a custom ad hoc network, isolated from the existing waku networks.
  • It uses a freshly deployed private blockchain, with full control over it and minimum state to track.
  • It deploys an RLN contract in the said private blockchain and configures it to be used by all nodes.
  • It registers an RLN membership for each node in the network, configuring it in the node to publish valid messages.
  • It exposes each node’s API, so that it can be used to inject traffic into the network.
  • Simple to run. Everything is automated. Requires two commands to run.

The main goals of waku-simulator include but are not limited to:

  • Test new features in an end to end setup with multiple nodes.
  • Use as a long-lived running network on latest master, to anticipate breaking changes.
  • Explore waku's limits by using different loads and configurations.
  • Offer a tool to debug problems in a controlled and easy to replicate environment.