* Initial implementation for scoring-parameters test plan * Record the number of BeaconBlock messages received per epoch * Add attacker module * Dialing from attackers to a beacon node * Add debug log * Add TopicScoreParameter for BeaconBlock * Rename crate and collect attacker info * Add dashboards * Add metrics * Add topic_msg_sent_counts to dashboard * Attestations * rename * topic_msg_sent_counts * Make params configurable * dashboards * Aggregates per epoch * Attestations per epoch * run time * Remove empty descriptions * cargo update * Record the result of sync_committee_aggregates and sync_committee_messages * Update Messages dashboard * Topic params for SignedContributionAndProof and SyncCommitteeMessage * Make get_param() generic * Use get_param() * Dashboard: automate run_id * Dashboard: Add `Settings` * Set gossipsub config based on lighthouse * Record peer scores on its own task * Record metrics on its own task * Fix invalid gossipsub config * Remove unnecessary comment lines * Some cleanup * Merge main into scoring-parameters * Add scoring test plan to CI workflow * Update dashboard * Fix: discarding correct message * Add `Cache Misses` to the dashboard * Avoid unnecessary compiling * Add Cargo.lock * Introduce NetworkConfiguration * Fix clippy warnings * Upgrade npg * Add README * Fix clippy warnings * Improve qualifications * Remove debug lines
2.8 KiB
Gossipsub Testground Simulations
This repository contains a number of simulations aimed for testing and simulating gossipsub for a variety of experiments.
Initial Setup
Testground
The simulations contained within this repository are dependent on Testground. The simulations are testground test plans for rust libp2p-gossipsub.
In order to run any of the simulations, testground must be installed and the testground daemon must be running. Please see the testground getting-started page for further information for installing and running the testground daemon.
The testground plans must then be imported. This can be done by running the following command from the parent directory of this repository:
testground plan import --from ./gossipsub-testground/
Simulations
Smoke
This is a basic run of a few gossipsub nodes sending messages between themselves. This serves as a simple example of how rust-gossipsub can be integrated with testground and a simple simulation can be run.
See the smoke documentation for instructions on how to run the simulation.
Censoring
This simulation constructs a network of malicious peers which attempt to censor messages on the network. The gossipsub scoring parameters are recorded and can be examined to determine their effectiveness.
See the censoring documentation for instructions on how to run the simulation.
Ethereum Consensus
This is a simulation of the standard gossipsub network for various sizes of the Ethereum consensus layer. It can be used in some forms to model network traffic for the Ethereum consensus layer.
See the Ethereum consensus documentation for instructions on how to run the simulation.
Scoring
This simulation constructs a network of malicious peers which attempt to censor messages on the network. Unlike Censoring, this simulation mimics gossipsub messages on an Ethereum consensus network.
See the scoring documentation for instructions on how to run the simulation.
Dashboards
Grafana dashboards are provided for some of the simulations. These are provided via a grafana docker container with preconfigured data sources and dashboards.
To access the grafana UI, run (with docker-compose installed):
docker-compose up -d
The grafana UI should then be accessible at: http://localhost:13000/dashboards.
For further details of the dashboards please see READMEs in each of the simulation directories.