This repository holds different simulators for exploring and researching p2p networks and messaging related to Status.
Original intent of these simulators is to provide stats and resulting traces/logs for further analysis and visualization.
+------------------+ +----------------+ +-------------+ +------------------+
| Choose | | Run nodes in | | | | |
| network topology |---- simulated | | | | |
+------------------+ | environment | | Propagate | | Collect network |
| - in-memory |---- message(s) |---- events & |
+------------------+ | - exec | | | | generate stats |
| Choose |---- - docker | | | | |
| Simulator | | | | | | |
+------------------+ +----------------+ +-------------+ +------------------+
Simulator | Description | State |
---|---|---|
WhisperV6 | Master branch if go-ethereum Whisper implementation | Done |
Gossip | Naive gossip p2p propagation | Done |
PSS | Swarm's PSS messaging | TBD |
Node type | Description | State |
---|---|---|
In-Memory | Done | Single node in-memory network |
Exec | Single node native binary network with localhost connection | TBD |
Docker | Docker-based network | TBD |
As a backend for the visualization frontend:
go get github.com/status-im/simulation/cmd/propagation_server
propagation_server
As a commandline tool:
go get github.com/status-im/simulation/cmd/propagation_simulator
// copy network.json to current directory
propagation_simulator --help
MIT