<p>Tim S. pretty much covered it, but I wanted to 2 great resources which have been very helpful for myself and many others:</p>

<ol>
<li>Ken Shirriff's blog has a few Bitcoin mining related posts which use Python code to great effectiveness; whilst <a href="http://www.righto.com/2014/02/bitcoin-mining-hard-way-algorithms.html" rel="noreferrer">Bitcoin Mining The Hard Way</a> is probably the most useful, there's also some novel use cases where Ken tries Bitcoin mining by hand and <a href="http://www.righto.com/2015/05/bitcoin-mining-on-55-year-old-ibm-1401.html" rel="noreferrer">using a 55 year old mainframe</a></li>
<li>Not specifically related to mining, but very useful in visualising related concepts is <a href="http://royalforkblog.com" rel="noreferrer">RoyalFork Blog</a></li>
</ol>

CC BY-SA 3.0
2015-06-09T04:52:10.680Z
2015-06-09T04:52:10.680Z
Wizard Of Ozzie
<p>I'm not sure that a guide as basic as you describe is even possible. It depends on what exactly you mean. Mining itself isn't <em>too</em> complicated to <em>read</em> and understand, but <em>writing a start-to-end</em> app that can be used for mining means writing a full node. That is <em>very</em> complicated.</p>

<p>Writing a Bitcoin miner from start to end involves not only collecting transactions, calculating the Merkle root, constructing the block header, and the actual hashing/mining, but also verifying the blockchain and each transaction in it, and communicating with peers in the network to get and send blocks and transaction.</p>

<p>Some good resources for learning more are the <a href="https://bitcoin.org/en/developer-guide" rel="noreferrer">bitcoin.org Developer Guide</a> and the <a href="https://en.bitcoin.it/wiki/Main_Page" rel="noreferrer">Bitcoin Wiki</a>. These might include the basics that you are really after.</p>

CC BY-SA 3.0
2015-06-08T20:08:34.877Z
2015-06-08T20:08:34.877Z
Tim S.
<p>I just want to understand how this mining process works (from the developers point of view from very start to end). Can someone guide me towards a doc or a open source code (I am newbie here so a VERY BASIC one)?
Thanks in advance</p>

<development><mining-technical-details><mining-software>
Want to write my own solo cpu bitcoin miner
evans
# Want to write my own solo cpu bitcoin miner

(Asked by: username_0 on 2015-06-08)

I just want to understand how this mining process works (from the developers point of view from very start to end). Can someone guide me towards a doc or a open source code (I am newbie here so a VERY BASIC one)?
Thanks in advance

**Tags:** development, mining-technical-details, mining-software


---

## 2 answers

### Answer by username_1 on 2015-06-09. Score: 9

username_2. pretty much covered it, but I wanted to 2 great resources which have been very helpful for myself and many others:

1. Ken Shirriff's blog has a few Bitcoin mining related posts which use Python code to great effectiveness; whilst [Bitcoin Mining The Hard Way](http://www.righto.com/2014/02/bitcoin-mining-hard-way-algorithms.html) is probably the most useful, there's also some novel use cases where Ken tries Bitcoin mining by hand and [using a 55 year old mainframe](http://www.righto.com/2015/05/bitcoin-mining-on-55-year-old-ibm-1401.html)
2. Not specifically related to mining, but very useful in visualising related concepts is [RoyalFork Blog](http://royalforkblog.com)


---

### Answer by username_2 on 2015-06-08. Score: 9

I'm not sure that a guide as basic as you describe is even possible. It depends on what exactly you mean. Mining itself isn't *too* complicated to *read* and understand, but *writing a start-to-end* app that can be used for mining means writing a full node. That is *very* complicated.

Writing a Bitcoin miner from start to end involves not only collecting transactions, calculating the Merkle root, constructing the block header, and the actual hashing/mining, but also verifying the blockchain and each transaction in it, and communicating with peers in the network to get and send blocks and transaction.

Some good resources for learning more are the [bitcoin.org Developer Guide](https://bitcoin.org/en/developer-guide) and the [Bitcoin Wiki](https://en.bitcoin.it/wiki/Main_Page). These might include the basics that you are really after.


---

