In search of: Extremely Technical details of Quality and Proof checking

It is a good question; what does plots check actually do? Here is what the docs say:

Each plot will take each challenge (default 30) and:

  • Get the quality for the challenge (Is there a proof of space? You should expect 1 proof per challenge, but there may be 0 or more than 1.)
  • Get the full proof(s) for the challenge if a proof was present
  • Validate that the # of full proofs matches the # of expected quality proofs.

On the topic of full proofs vs expected proofs:

  • If the ratio is >1, your plot was relatively lucky for this run of challenges.
  • If the ratio is <1, your plot was relatively unlucky.
    • This shouldn’t really concern you unless your ratio is <0.70 # If so, do a more thorough chia plots check by increasing your -n

Which is elaborated upon thusly

The plots check challenge is a static challenge. For example if you run a plots check 20 times, with 30 tries against the same file, it will produce the same result every time. So while you may see a plot ratio << 1 for a plot check with x number of tries, it does not mean that the plot itself is worthless. It just means that given these static challenges, the plot is producing however many proofs. As the number of tries (-n) increases, we would expect the ratio to not be << 1. Since Mainnet is live, and given that the blockchain has new challenges with every signage point - just because a plot is having a bad time with one specific challenge, does not mean it has the same results versus another challenge. “Number of plots” and “k-size” are much more influential factors at winning blocks than “proofs produced per challenge”.

In theory, a plot with a ratio >> 1 would be more likely to win challenges on the blockchain. Likewise, a plot with a ratio << 1 would be less likely to win. However, in practice, this isn’t actually going to be noticeable. Therefore, don’t worry if your plot check ratios are less than 1, unless they’re significantly less than 1 for many -n.

So I guess the idea is you can run a quick n check and see if any plots are particularly poor quality, but this is a bad use of your time compared to simply pumping out as many plots as possible!

I just checked 9 plots on my current machine via the minimum allowed -n 5 like so

./chia plots check -n 5 -g E:\chia-final\

and got:

Proofs 7 / 5, 1.4
Proofs 5 / 5, 1.0
Proofs 8 / 5, 1.6
Proofs 11 / 5, 2.2
Proofs 5 / 5, 1.0
Proofs 4 / 5, 0.8
Proofs 7 / 5, 1.4
Proofs 3 / 5, 0.6
Proofs 5 / 5, 1.0

So by this logic I should check out the plot that scored the worst, the 0.6 one. Let me try that, 30 challenges:

./chia plots check -n 30 -g E:\chia-final\plot-k32-2021-05-16-05-59-4c63a8cb933ee80cbc19ab554264a33679f84df2fe2ecc264a0fe5c27f7feb05.plot

and got

Proofs 23 / 30, 0.7667

Let’s try 100 challenges! Really work this plot out! :sweat_smile:

Proofs 93 / 100, 0.93

Seems OK?

Let me try the batch run again, with -n 100 and see (note that a plot dropped since I ran the command, so it’s 10 plots this time:

Proofs 94 / 100, 0.94
Proofs 93 / 100, 0.93
Proofs 124 / 100, 1.24
Proofs 97 / 100, 0.97
Proofs 94 / 100, 0.94
Proofs 100 / 100, 1.0
Proofs 79 / 100, 0.79
Proofs 93 / 100, 0.93
Proofs 79 / 100, 0.79
Proofs 103 / 100, 1.03

I guess I’d like to emphasize the docs here:

:loudspeaker: Number of plots and k-size are much more influential factors at winning blocks than proofs produced per challenge

That being said I highly recommend running plots check with the minimum (5) to make sure you don’t have invalid plots. My plotters do tend to produce the rare invalid plots every so often, seemingly at random…

3 Likes