mirror of https://github.com/logos-co/scratch.git
3.4 KiB
3.4 KiB
- Glacier et. al. Simulation
- Graphs for @alexanderw
- Make parameters depend on network size
- <2022-09-02 Fri> Initial implementation
- Colophon
Glacier et. al. Simulation
Model
sync v. async
Implementation
Rust <https://github.com/logos-co/consensus-prototypes/> (Currently Private to Logos)
TODO Graphs for @alexanderw
For given choice of parameters,
Parameter | Alexander | RFC 38 | |
---|---|---|---|
k | neighbors in query | 100 (fixed) | 7 (undecided grow to a max 2^4) |
l | look ahead | ~500 | 19 |
a1 | alpha1 | 4/5 | 4/5 |
a2 | alpha2 | 1/2 | 2/5 |
retain a vector for all executed rounds contain the following three integers per round:
- nodes in round
- nodes finalized to yes
- nodes finalized to no
to produce a plot of total yes, no, and undecided per round.
Simulate up to 10^4 nodes adding 10, 100, 1000?
TODO Grind out parametrized settings with existing code
name | JSON path | Notes |
---|---|---|
a1 | $.consensus_settings.glacier.evidence_alpha | |
a2 | $.consensus_settings.glacier.evidence_alpha_2 | |
l | $.consensus_settings.glacier.look_ahead | |
k | $.consensus_settings.query.initial_query_size | |
k_query_size | $.consensus_settings.query.query_size | ??? |
k_multiplier | $.consensus_settings.query_multiplier | |
k_multiplier_max | $.consensus_settings.max_multiplier | |
n | $.byzantine_settings.total_size | |
honest | $.byzantine_settings.honest | |
yes | $.distribution.yes | |
no | $.distribution.no |
TODO Double check that this is all we need.
opinion votes can be derived…
TODO Make parameters depend on network size
<2022-09-02 Fri> Initial implementation
TODO encode/decode parameters in simulation input/output filenames
All are encoded except for query-size
. What is the difference between this and initial_query_size
?
TODO record random seed used for execution
Probably should be able to be specified in configuration as otherwise
it needs to be parsed from consensus-simulations
stdout.
DONE write basic execution pipeline
CLOSED: [2022-09-04 Sun 08:35]
- CLOSING NOTE [2022-09-04 Sun 08:35]
TODO benchmark
Along machine, architecture, and async/sync axes
TODO setup/run batch jobs
For @AlexanderM's parameter choices
For RFC 38
TODO instrument simulation to emit line data
DONE Produce graphs
CLOSED: [2022-09-04 Sun 08:35]
- CLOSING NOTE [2022-09-04 Sun 08:35]
For given parameter choices show YES, NO, NONE opinion evolution over rounds
Colophon
@easye <mark.evenson@status.im> Created: 01-SEP-2022 Revised: <2022-09-04 Sun 08:35>