<p>About your new diagram: <a href="https://i.sstatic.net/WNCen.jpg" rel="nofollow noreferrer">https://i.sstatic.net/WNCen.jpg</a></p>
<p>Firstly &quot;execute mining software&quot; implies that you have maybe at least 1% of the network hash and solo mining. Otherwise, the process is just:</p>
<ul>
<li>Use the stratum protocol to receive the block template and the difficulty target</li>
<li>Attempt hashes until the block is valid in hardware.</li>
</ul>
<p>Then every node verifies the block. This would be the bottleneck, so instead it's enough that</p>
<ul>
<li>the block template is valid (done by the pool operator's node)</li>
<li>the difficulty target is reached</li>
</ul>
<p>and checking for the target is done by the hardware, in the mining loop.</p>
<p>So it's the hardware that mines.</p>
<p>Instead of &quot;mining software stores coins into miner's wallet address&quot;, it's the block template that has the destination address. When the generated block is valid, so is the new coinbase transaction, and the coins are minted.</p>

CC BY-SA 4.0
2020-12-28T14:50:38.897Z
2020-12-28T14:50:38.897Z
MCCCS
<blockquote>
<p><strong>Does this flowchart accurately show the step-by-step workings of a typical crypto-miner software?</strong></p>
</blockquote>
<p>No.</p>
<p>Just to take one example of many errors:</p>
<blockquote>
<p>Verification node sends reward (mined coins) to miner's software.</p>
</blockquote>
<p>This is not how Bitcoin mining works at all. The Bitcoin whitepaper does not define Bitcoin nodes that are specifically verification nodes nor does it define Bitcoin nodes with some special power to send mined Bitcoins to Bitcoin miners.</p>
<p>When Bitcoin miners construct a block and hash it, they construct a block with a first transaction that places a mining reward &quot;into&quot; the Bitcoin miner's wallet. There is no need for any third party to do anything. If the hash meets the target criteria (less than current difficulty level) and the other block contents are valid, then the block will be generally accepted by other Bitcoin nodes and other blocks will therefore be built on top of it (i.e. reference it) eventually making it possible for the Bitcoin miner to spend the &quot;coin&quot; in their wallet.</p>
<p>Bitcoin mining pools can be organised any way their creators can dream up. It would be possible to create a Bitcoin mining pool API that separated Bitcoin mining and verification roles and which had verification nodes that distributed shared rewards to pool participants. However there is no necessity for different pools to work the same way as each other.</p>

CC BY-SA 4.0
2020-12-28T11:41:00.303Z
If my previous diagram is wrong, then is my revised flowchart below the correct one now?
https://imgur.com/a/RaRgWEb

I want to understand how mining works so I'm starting from the beginning - that is, mining on my own first. Kinda find the diagram for mining pools really complicated - so I'm starting with this first...
dakkelotenflea
CC BY-SA 4.0
2020-12-27T13:51:01.190Z
2020-12-27T14:32:38.710Z
2020-12-27T14:32:38.710Z
RedGrittyBrick
<p>just got a question here:</p>
<p>Does this flowchart accurately show the step-by-step workings of a typical crypto-miner software?
I'm a newbie in the cryptocurrency business. Though I welcome comments and objections, please be understanding...
<a href="https://i.sstatic.net/AuPLa.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/AuPLa.jpg" alt="software flowchart" /></a></p>

CC BY-SA 4.0
2021-01-08T13:56:26.783Z
I’m voting to close this question because your question is a localized request for proofreading and feedback that is not comprehensively answerable, asks others to do your work for you, and unlikely to be useful to others. This sort of question would be more appropriate on a thread-based forum such as reddit. Here, we expect users to ask concrete questions that can be comprehensively answered.
Murch
CC BY-SA 4.0
2021-01-08T14:00:42.663Z
You could ask about the same topic here by breaking out concrete questions about the mining flow, e.g. "How does an asic verify whether a block is valid?", "how does a miner get paid for mining?", etc.
Murch
<transactions><blockchain><wallet><development>
Does this accurately show how a crypto-currency miner software works?
dakkelotenflea
# Does this accurately show how a crypto-currency miner software works?

(Asked by: username_0 on 2020-12-27)

just got a question here:

Does this flowchart accurately show the step-by-step workings of a typical crypto-miner software?
I'm a newbie in the cryptocurrency business. Though I welcome comments and objections, please be understanding...
[![software flowchart](https://i.sstatic.net/AuPLa.jpg)](https://i.sstatic.net/AuPLa.jpg)

**Tags:** transactions, blockchain, wallet, development

> **Comments:**
> **username_1**: I’m voting to close this question because your question is a localized request for proofreading and feedback that is not comprehensively answerable, asks others to do your work for you, and unlikely to be useful to others. This sort of question would be more appropriate on a thread-based forum such as reddit. Here, we expect users to ask concrete questions that can be comprehensively answered.  
> **username_1**: You could ask about the same topic here by breaking out concrete questions about the mining flow, e.g. "How does an asic verify whether a block is valid?", "how does a miner get paid for mining?", etc.  

---

## 2 answers

### Answer by username_2 on 2020-12-28. Score: 1

About your new diagram: <https://i.sstatic.net/WNCen.jpg>

Firstly "execute mining software" implies that you have maybe at least 1% of the network hash and solo mining. Otherwise, the process is just:

* Use the stratum protocol to receive the block template and the difficulty target
* Attempt hashes until the block is valid in hardware.

Then every node verifies the block. This would be the bottleneck, so instead it's enough that

* the block template is valid (done by the pool operator's node)
* the difficulty target is reached

and checking for the target is done by the hardware, in the mining loop.

So it's the hardware that mines.

Instead of "mining software stores coins into miner's wallet address", it's the block template that has the destination address. When the generated block is valid, so is the new coinbase transaction, and the coins are minted.


---

### Answer by username_3 on 2020-12-27. Score: 0

> **Does this flowchart accurately show the step-by-step workings of a typical crypto-miner software?**

No.

Just to take one example of many errors:

> Verification node sends reward (mined coins) to miner's software.

This is not how Bitcoin mining works at all. The Bitcoin whitepaper does not define Bitcoin nodes that are specifically verification nodes nor does it define Bitcoin nodes with some special power to send mined Bitcoins to Bitcoin miners.

When Bitcoin miners construct a block and hash it, they construct a block with a first transaction that places a mining reward "into" the Bitcoin miner's wallet. There is no need for any third party to do anything. If the hash meets the target criteria (less than current difficulty level) and the other block contents are valid, then the block will be generally accepted by other Bitcoin nodes and other blocks will therefore be built on top of it (i.e. reference it) eventually making it possible for the Bitcoin miner to spend the "coin" in their wallet.

Bitcoin mining pools can be organised any way their creators can dream up. It would be possible to create a Bitcoin mining pool API that separated Bitcoin mining and verification roles and which had verification nodes that distributed shared rewards to pool participants. However there is no necessity for different pools to work the same way as each other.

> **Comments:**
> **username_0**: If my previous diagram is wrong, then is my revised flowchart below the correct one now? https://imgur.com/a/RaRgWEb  I want to understand how mining works so I'm starting from the beginning - that is, mining on my own first. Kinda find the diagram for mining pools really complicated - so I'm starting with this first...  

---

