I've been working my way through a lot of information as I setup hardware, learn about finance, dig into the mechanics etc.
I'm a programmer at heart and have been desiring a deeper understanding of the underlying code responsible for mining.
I've lived most my life doing back-end, so I get a bit lost in UI programming
![Wink](https://bitcointalk.org/Smileys/default/wink.gif)
any help pointing me to the underlying code would be greatly appreciated.
I've already through the P2P discovery bit, but I'm really more interested in the following code locations:
- Where does new difficulty get calculated?
- Where is the code that propagates new difficulty to the mining nodes?
- Where is the code that deals with nuts and bolts of mining live? (Blockchain processing)
Any help or assistance would be hugely appreciated as I would love to knock the green off my understanding of the overall process
![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif)
Also I will be sequence diagramming this code (and probably some other code) and documenting the functions. I would be happy to share this with the dev community. Is there a preferred place or should I just use the regular bitcoin wiki?
I may also be doing local classes for developers (and some non-developers) and possible some online courses. I will most likely be putting the curriculum into public domain.
Thanks