scratch/mevenson/simulation/simulation.org

3.4 KiB

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?

./target/release-opt/consensus-simulations --input-settings etc/glacier.json --output-file=./var/glauber.output
run Glacier simulator

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
use these on a base template

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>