Pool server load depends on how many packets is sent to it in a period of time. Let's say that every time your worker submits a job - it is one packet. So logically there should be maximum limit of packets server could accept. This depends on server resources and network connection. When difficulty changes the shares are submitted more rarely, therefore reducing server load. So i guess the main point of vardiff was to adjust the load on the server within this limit.
Another point of vardiff is balancing the number of packets sent by each worker. For example if one worker uses GPU and another uses CPU, then in order for them to send equal amount of shares in the same period of time the difficulty for GPU is adjusted higher then for CPU. Ideally the difference in difficulty should be as big as the difference in hash rate between workers. So if your GPU mines at 400 kH and CPU at 40 then if GPU difficulty is set to 128, then the one for CPU should be set to something close to 12.
There are two things to take into account here however:
Open question: why the minimum is 32 and maximum is set at all. Some pools have 16 in their dropbox menu, but doesn’t apply it.
Useful links:
There are two things to take into account here however:
- Some pools adjust difficulty by power of 2, e.q. 2 in power of smth, like 32, 64,128, 256 … , other pools can adjust it in steps of 32. 32,64, 96, 128, 160...
- Difficulty limitations of the pool. For scrypt the minimum is 32 and for most pools the maximum is around 500-600. There are special pools however which are dedicated for difficulties, which are out of scope here.
Open question: why the minimum is 32 and maximum is set at all. Some pools have 16 in their dropbox menu, but doesn’t apply it.
Useful links: