filecoin-project/consensus

LBP parameter setting

Closed this issue · 6 comments

Using sim

Thoughts for moving quickly

Treat simulator as the imperfect thing it is. We will never be able to get to "security" by analyzing data coming from a fixed number of simulated trials, we can only patch up huge holes that it uncovers. Let's work under the assumption that only a few trials with very specific properties are enough to start seeing patterns and use patterns that we see to drive the future focus of the project.

Plan

0. Collect the chain length data in a go data structure
1. Output this data to CSV as part of the simulation
2. Debug panic
3. Choose a chain length say 100 or 1000 and a trial number say 5. Run sweeps on miners. For now let's say 10, 100, 1000, 10000, 100000 miners. LBP = 1 (i.e. current spec)
4. Plot relevant statistics, for example max chain length at this LBP and miner count
5. Now sweep LBPs. Let's say 5, 10, 25, 100 up until we see very low forking statistics.
6. Plot data as we like. I imagine x is LBP, y is a forking statistic and different data series for miner number.

The plan looks great.

We need a higher trial number I expect, maybe 10.

I sort of moved to 6 straight off, but we need to do some work on performance here (I expect optimization and parallelism will suffice, as needed we can rent out compute). Let's move as you propose and I expect we'll hit this issue in doing 3 on 100000 miners.

Also need to graph difference round num makes with given min num and lbp. Expect: converges after a certain height. Issue is of picking a fork size (finality)

1: mvm (minimum viable motivation), phase 2: write down our California construction in a spec PR using phase 1 motivation. phase 3: address attacks potentially exploiting lookback parameters.

estimate from @sternhenri is that this is done by aug 30