This is an old revision of the document!
In understanding how pool difficulty works, it is important to recap how points work.
Points represent the amount of farming that a farmer has done. It is calculated by number of proofs submitted, weighted by difficulty. One k32 farms 10 points per day. To accumulate 1000 points you need 10 TiB farming for a day.
As difficulty goes up, a farmer does less lookups and finds less proofs, but does not receive any more or any less points per unit of time. This means that obtaining 10 proofs a day with difficulty 1 for a k32, is equivalent to obtaining 1 proof a day with difficulty 10.
For farmers it should not matter what difficulty is set, as long as they are consistently submitting partials.*
Pool operators prefer a higher difficulty, as this results in less traffic to their servers.
Setting the right difficulty thus becomes a balancing act between maintaining a high enough frequency of submitting partials for farmers and keeping the amount of pings to our server manageable.
This balancing act currently aims to set each farmer’s difficulty level so that they send partials every 5 minutes, and the algorithm checks your last 30 partials (around 2.5h of activity) to adjust for this.
If your system suffers technical difficulties which results in too many stale or invalid submissions, a high difficulty level will punish you extra hard. Although the difficulty level algorithm will self-adjust for this, we may implement a feature that allows farmers to propose their own difficulty level.
For a more detailed explaination, see the pool reference code on difficulty adjustment