<p>The <a href="https://bitcoin.org/en/developer-documentation">Developer Documentation</a> may also be of use.</p>

CC BY-SA 3.0
2016-05-24T12:47:28.177Z
2016-05-24T12:47:28.177Z
cpsola
<p>You should also check out the free Princeton Bitcoin textbook: <a href="https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf" rel="nofollow">Bitcoin and Cryptocurrency Technologies</a>.</p>

CC BY-SA 3.0
2016-05-25T23:44:59.437Z
2016-05-25T23:44:59.437Z
Jonathan Cross
<p>The book Mastering Bitcoin would be a good solid start (although it might not answer <strong>all</strong> your questions). It is also available for <a href="https://github.com/bitcoinbook/bitcoinbook">free</a>.</p>

CC BY-SA 3.0
2016-05-24T08:50:32.603Z
What a relief! Yes this is exactly what I was looking for! Thank you!
Simanas
CC BY-SA 3.0
2016-05-24T08:39:29.003Z
2016-05-24T08:39:29.003Z
karask
<p>I am a senior Python developer. </p>

<p>Recently I came across to the need of fully understanding how bitcoin works on it's core. The Internet is full of explanations and tutorials for regular folks and even dummies. You can get familiarized with it pretty well if all you care is basic understanding, so that you could start using it. </p>

<p>But I am in a different business here... I want to know exactly what data is being sent to the net on every event of bitcoin currency? How it's being sent? How it's being received? What exact calculations and code is being executed on miners? What code is executed on wallet owners... etc?</p>

<p>Can somebody come up with a decent programmer oriented step by step explanation/tutorial on this?</p>

CC BY-SA 3.0
2016-05-24T16:10:22.210Z
There is still not a formal/complete spec of the protocol :(
MattDavey
CC BY-SA 4.0
2020-02-21T23:11:49.387Z
@MattDavey because there cannot be one. What if one was written, and then the network deviated from it? Depending on a social consensus in this way is something that Bitcoin seeks to avoid. The code itself is the real-time spec, trying to enumerate every implicit consensus rule is likely not possible.
chytrik
CC BY-SA 4.0
2020-02-27T15:18:29.707Z
Isn't your argument self contradictory? You say there cannot be a spec, then you say the code is the spec. If the spec can be expressed in code, it can be expressed in documentation as well.
MattDavey
<bitcoin-core-development><introducing-bitcoin><bitcoin-literature>
Where can I find resources for programmers to understand Bitcoin?
Simanas
# Where can I find resources for programmers to understand Bitcoin?

(Asked by: username_0 on 2016-05-24)

I am a senior Python developer.

Recently I came across to the need of fully understanding how bitcoin works on it's core. The Internet is full of explanations and tutorials for regular folks and even dummies. You can get familiarized with it pretty well if all you care is basic understanding, so that you could start using it.

But I am in a different business here... I want to know exactly what data is being sent to the net on every event of bitcoin currency? How it's being sent? How it's being received? What exact calculations and code is being executed on miners? What code is executed on wallet owners... etc?

Can somebody come up with a decent programmer oriented step by step explanation/tutorial on this?

**Tags:** bitcoin-core-development, introducing-bitcoin, bitcoin-literature

> **Comments:**
> **username_1**: There is still not a formal/complete spec of the protocol :(  
> **username_2**: @username_1 because there cannot be one. What if one was written, and then the network deviated from it? Depending on a social consensus in this way is something that Bitcoin seeks to avoid. The code itself is the real-time spec, trying to enumerate every implicit consensus rule is likely not possible.  
> **username_1**: Isn't your argument self contradictory? You say there cannot be a spec, then you say the code is the spec. If the spec can be expressed in code, it can be expressed in documentation as well.  

---

## 3 answers

### Answer by username_5 on 2016-05-24. Score: 12 | Accepted answer

The book Mastering Bitcoin would be a good solid start (although it might not answer **all** your questions). It is also available for [free](https://github.com/bitcoinbook/bitcoinbook).

> **Comments:**
> **username_0**: What a relief! Yes this is exactly what I was looking for! Thank you!  

---

### Answer by username_3 on 2016-05-24. Score: 8

The [Developer Documentation](https://bitcoin.org/en/developer-documentation) may also be of use.


---

### Answer by username_4 on 2016-05-25. Score: 2

You should also check out the free Princeton Bitcoin textbook: [Bitcoin and Cryptocurrency Technologies](https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf).


---

