Tool to simulate a waku network with multiple nodes, traffic and users https://simulator.waku.org
Go to file
Tanya S d6fb3e56e5
Rln membership registration implementation (#23)
* add anvil config and volume to remember state and output account info; nwaku config to register rln membership

* modify run_nwaku.sh for onchain rln

* add script for rln membership registration

* run_nwaku update, removed rln membership index and added other rln parameters

* merged run_register_rln with the run_nwaku script

* added environment variables for rln-contract registration

* removed rpc related flags and added rest flags for sake of completeness, also updated BOOTSTRAP_ENR query

* removed rpc flags, added cred-path and -password

* added keystore volume and 8645 port

* removed keystore volume and keystore parent directory

* remove unused service from docker-compose
2024-03-14 13:35:25 +02:00
monitoring chore: adding libp2p stream direction to dashboard (#20) 2024-02-19 17:21:09 +01:00
submodules Rln membership registration implementation (#23) 2024-03-14 13:35:25 +02:00
.gitignore add wakusim.env file for wakusim.misc host (#9) 2023-09-27 08:55:16 +02:00
.gitmodules Rln membership registration implementation (#23) 2024-03-14 13:35:25 +02:00
Dockerfile.rest-traffic Feat adding rln to waku simulator (#12) 2023-10-31 16:17:35 +01:00
README.md Doc deploy-wakusim (#24) 2024-03-12 10:13:44 +01:00
docker-compose.yml Rln membership registration implementation (#23) 2024-03-14 13:35:25 +02:00
run_bootstrap.sh Rln membership registration implementation (#23) 2024-03-14 13:35:25 +02:00
run_gowaku.sh deprecating rpc (#25) 2024-03-12 05:02:04 -06:00
run_nwaku.sh Rln membership registration implementation (#23) 2024-03-14 13:35:25 +02:00
run_wakupublisher.sh deprecating rpc (#25) 2024-03-12 05:02:04 -06:00
traffic.py Feat adding rln to waku simulator (#12) 2023-10-31 16:17:35 +01:00
wakusim.env Adding default values for env variables use (#13) 2023-11-01 15:39:07 +01:00

README.md

nwaku-simulator

Requires

  • docker
  • docker-compose

How to run

git clone https://github.com/waku-org/waku-simulator.git
cd waku-simulator

Configure the simulation parameters. You can place the env variable in an .env file.

export GOWAKU_IMAGE=wakuorg/go-waku:latest
export NWAKU_IMAGE=wakuorg/nwaku:v0.21.2-rc.0
export NUM_NWAKU_NODES=5
export NUM_GOWAKU_NODES=0
export TRAFFIC_DELAY_SECONDS=15
export MSG_SIZE_KBYTES=10
docker-compose up -d

This will:

  • spin up grafana/prometheus for monitoring, see http://localhost:3000.
  • spin up a bootstrap nwaku node.
  • spin up a given amount of nwaku/gowaku nodes with specific versions.
  • spin up a rest-traffic instance that will inject traffic into the network (see flags for rate and msg size)

notes

The default login/password for grafana is admin/admin.

warning

in case arp tables are overflowing:

sysctl net.ipv4.neigh.default.gc_thresh3=32000

Compose V2 users should spin up the containers with the following command:

docker-compose --compatibility up -d

Infrastructure

An instance of this service is deployed at https://simulator.waku.org/.

It is configured using wakusim.env file, and new changes to this repository are picked up using a GitHub webhook handler. The docker images used are updated using Watchtower as well.

For details on how it works please read the Ansible role readme file. The original deployment issue can be found here.

The deployed branch is deploy-wakusim.