I'm interested in exploring both Bitcoin miner and client development... I've been engineering software and programming for many years now, but Bitcoin is a "new frontier" for me. For me, the best way to learn how Bitcoin works at its lowest level is to get my hands dirty writing some software to co-exist with the system/network. And what could be more fun than writing your own miner and client?!
But since I'm new to cryptography and a new-comer to the Bit-conomy, I'm not sure
what I need to be learning and
where to obtain the proper educational materials... For me to write a working miner or client I need to understand how the
entire system works. Right now I only have a very fundamental/mechanical understanding of how things work... I do not truly understand the encryption or networking technology at play here. So how does one go about learning this, and where?
What miner and client implementations should I look at? Are there any good tutorials about writing a bare-bones miner or client (C, C++, C#, pseudo, etc?)? How does one learn more about SHA-256 and cryptography? Basically, I need a "study guide"...
Thanks,
--ATC--
P.S. -- Been in DirectX development for many years, and I'm wondering if I could write a compute shader to mine Bitcoin?