Hello random people,
I was wondering how many times has this question which I am about to ask, has been asked on this forum. Subsequently I'd be obliged if anyone gave me the links to such resources.
Say I was a fresh high school pass out student and lets say I have acquired the unquenchable thirst for mining Cryptos.
I start with my high end graphics card and then waste my money on ordering some small scale miners.
But it isnt enough for me... so... now I want to build my own hardware.
[THE QUESTION :]
What must I study to get the basic knowledge of developing the modern day Bitcoin mining chips ? What technical knowledge does one need to understand the basic 'design principles' one must follow to EVENTUALLY build his own mining hardware ?
It depends on what knowledge you currently have. Mining is basically calculating a ton of hashes on same small chunk of bytes. The kinda of hash varies with the crypto currency you want to mine. Let's say you are dealing with Bitcoin, therefore it's SHA-256. Grab a book and learn what SHA does. It's basically a series of rounds. Each round does some bit manipulation on a block and then modifies some internal state.
If you want to go into hardware, the first step I recommend is to learn about FGPA. They are affordable. It costs a few 100$ to get an entry level board. Then get familiar with a hardware design language like Verilog structural. You can even try with a simulator if you don't want to invest in a development board.
It's hugely different than a programming language. Essentially, you are going to define the wiring and the logical gates of your FGPA. (Stay clear from Verilog behavior - it won't help you get to hardware).
Then you can "program" the chip - in fact it means that the chip will reconfigure its layout physically to match your design. So you will have to deal with clocks, timings, layout, number of gates, undefined levels and so on.
After that, you can decide if you want to go further and get into ASIC. Unfortunately for ASIC you have to spend 1 million $ but a FGPA would get you far in the right direction. Have fun!
PS: Of course ASIC will beat the crap of your FGPA design because they are not programmable and are built for a given layout. But it's like learning to program by edging 0 & 1 into a CDROM.