Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Network Testing and Simulation Framework Frontend
The current status is updated on the main page for the swarm working groups: https://github.com/ethersphere/swarm/wiki/Working-groups#network-testing-and-simulation-framework
A frontend for the simulation framework has been developed. Codebase is at https://github.com/ethersphere/simple-p2p-d3 This frontend may be labeled as a successful proof-of-concept: We have been able to demonstrate that we can visualise the dynamics of a swarm network in realtime.
Nevertheless, this first PoC, while rich in eye-candy (realtime network visualisation in 3D) and a number of interesting functions, needs to be further refined, specifically to address its usefulness:
- The current incarnation with a prominent 3D visualisation in realtime, while visually appealing, has limited usefulness for realtime monitoring of a live network. It has performance issues, making it useful for a maximum of maybe a couple of hundred nodes
- This current implementation is suited for development and testing, namely to track correct protocol behavior, message exchange and connection dynamics for a small number of nodes
- In a network with thousands, or maybe even million of nodes, it makes no sense to have a global view of all nodes - no meaningful information nor insight could be extracted, while the characteristics of individual nodes can't be discerned.
- There is a lack of aggregate statistics which may help gaining intelligence about the current status and health of the network, the behavior of protocol characteristics (e.g. message exchange, routing, syncing)
- There is a limited view about the internals and statistics of an individual node
To address these issues, the simulation frontend needs to be further developed. This further development is likely to also require extensions in the backend. For example, new endpoints to query syncing status, progress and statistics, or to query node internals.
This page is meant to be documenting the requirements for this further development