What's the actual progress when you are mining? Keep on reading to find out!
Last update: 29.January 2023
When the miner starts – it reads the miner options, checks for available devices (GPUs), and then proceeds to connect to the mining pool. After the initial connection, the pool sends work to the miner. The work received, tells the miner which EPOCH we are currently at, so the miner can generate the DAG file. After the DAG is created - verified, and repaired if needed/the miner software supports it - the actual mining starts.
Read about stale shares here!
Read about invalid shares here!
What does the GPU really do?
The miner receives a block header from the pool - including for example the height, a hash of the block data (transactions), and so on. What needs to be found is a nonce that completes the block header in a way such that the hash of the block header is low enough. Any nonce that gives a low enough header hash can be used to form a block.
So what the miner now do is brute force hashes/nonces in a range that the pool does allow. Once a nonce is found that has the header hash which is “good enough” - is submitted to the pool as a share. The share with a nonce is quite good, but often not good enough to make a block – since the pool difficulty is lower than the network difficulty. The reason is that the pool uses this "almost block nonces" to estimate the speed behind the miner.What is a nonce?
A nonce (number once) is an arbitrary number that can be used just once. It's often a random or pseudo-random number. It's used in the Proof-of-Work system to vary the input to a hash function so as to obtain a hash for a certain input that fulfills certain arbitrary conditions.How does the pool verify the share?
The pool takes the provided nonce and the block header the miner got when it received the work – and does the computation of the hash function including both again. If the result is indeed below the target value, the miner received, it gets accepted. If it's not below, it gets rejected (invalid). For the accepted ones, it will also check if the job corresponds to the current height (Accepted) or not (Stale share, it's valid but too late)
Read about stale shares here!
Read about invalid shares here!