Not to be confused with: how shares are paid, which is another issue.
I've been trying to understand this whole share difficulty thing. The way open source miners (cgminer derivatives) compute this is a bit hard to follow due to the code being quite sparse but what doesn't make any sense to me is the way the effective numbers are produced.
This discussion is related to the "work utility" concept.
My understanding is that pools allow low-hash miners to work by
- Using a lower difficulty for magic number submission
- Allowing miners to build a "share" out of multiple submissions (it is unclear to me if this is still lower than real network diff, seems so; I haven't fully understood the way stratum miners compute network difficulty)
My understanding is that the hash produced by the candidate nonce is interpreted as a number. This is considered valid if exceeding the target. In direct network mining, nothing else would be relevant as the network either gives you a reward or not.
In stratum mining instead, everything goes on
difficulty, and the candidate nonce is sent if it exceeds the server difficulty. Miners usually pull a message such as
Accepted 2922e87f Diff 6.223/2.000 GPU 0
^^^^^^^^^^^
Now, when I looked at sgminer data to work utility computations it appeared to just consider the base server difficulty. That is, the above share would have difficulty 2. It seemed like the "extra" difficulty to not count.
This is a bit broken in my opinion but I have no idea how the servers really add up those values either. Can you elaborate?