Revision 8235920ea7866fb878652d6920d7a5ca88846ae6 authored by Martin Tomazic on 13 September 2023, 11:11:34 UTC, committed by Marge Bot on 25 September 2023, 14:43:50 UTC
1 parent d54cc2a
README.md
# simdal: simulating message propagation on random networks
# Generating data
- Simulation parameters are currently hardcoded, partially in the launch script `launch.sh` and partially in the scenario encoded in `bin/main.ml`
- `launch.sh` requires GNU parallel to be installed (the `parallel` command); the more CPUs are available the faster the results will be obtained. The following command will launch the simulation with all analyses activated:
`./script.sh --analyse bandwidth --analyse shards --analyse consumer --analyse confirmation`
- Data will be stored in a directory named `results_$(date)`
- After all computations are performed, one can use the `bin/concat.exe` program to assemble the .dat file produced by each simulation process for each analysis, e.g. for slot confirmation:
```
dune exec ./bin/concat.exe -- slot_confirmation.dat results_.../slot_confirmation_*dat
```
# Repo structure
- `lib/` contains the network sampler and (eager) message propagation model
- `bin/` contains the main scenario for the DAL and the various analyses:
- attester failure probability
- consumer failure probability
- bandwidth requirements
The entrypoint of the simulator is `bin/sim.ml`
# TODOs
- [ ] sim: cleaner way to parameterize the simulation (e.g. json-based)
- [ ] sim: strategy for --min-relay is perhaps too aggressive for small attestors
- [ ] sim: lazy/mixed message propagation
- [ ] sim: propagation time analysis
- [ ] stake: more realistic committee computation
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...