In case of solo mining - how are Monero blocks found and confirmed? If using monerod
- let's say solo mining is started with start_mining somewalletaddress threadcount
. What is the principle of block finding and confirmation? It would be nice to see a simplified step by step process.
1 Answer
It's pretty similar to Bitcoin:
First, a block template is created. This is a block skeleton, which looks like a block but is not actually valid due to not having a PoW hash which matches the current difficulty. This block template includes a coinbase tx to the address you specified, and a Merkle tree of the transations it includes.
Then, a loop will increment a nonce in the block and hash to see if the resulting hash comes within the difficulty limit. If yes, you found a block. If not, you continue. If you've searched the whole nonce space without finding a block and the chain still hasn't moved, you have to change something else (the set of transactions to include, or the block timestamp), then you can repeat over the nonce again.
Once a block is found, it's relayed to other nodes, and you resume mining on top of that new block.
If the chain changes while you're mining, you update according to the rules, ten resuming mining on top of the new chain tip.
-
So this process is done only by
monerod
daemon(s)? And all the network consist only of these daemons/nodes? Commented Mar 19, 2018 at 18:01 -
Yes. Pools are a daemon making the template, sending it to miners, and miners sending back block candidates (a bit more, but the pool software filters). Commented Mar 19, 2018 at 18:29