Write a bitcoin miner

The current realities of Bitcoin mean it is still a long way off from reaching the write a bitcoin miner. Only the financially included can access the Bitcoin system through the necessary digital connections to the Internet. Bitcoin has had a volatile journey since it was launched in 2009, attracting attention among conventional investors as well as the black market.

One way to comprehend virtual currency is to first understand fiat currency. Fiat currency is any legal tender designated and issued by a central authority that people are willing to accept in exchange for goods and services because it is backed by regulation and because they trust this central authority. For a new user not interested in the mining process, the most popular way to obtain Bitcoins is through a traditional exchange where fiat currency is converted into Bitcoins and then stored in a Bitcoin wallet. Wallets come in many forms, including desktop access, mobile access, and online web-based access. Each has its own risks as both desktop and mobile access are susceptible to hackers, a hard drive crash, or a lost mobile device. Community-Managed Loan Funds: Which Ones Work? Get your basic questions about financial inclusion and microfinance answered.

A few weeks ago, friends of mine were joking about my recent interests and how they don’t understand the point of them. I asked if they would like to hear more about the awesomeness of 8-bit videogame consoles or about the awesomeness of the technical details behind bitcoin mining. One of them joked that they wanted to hear about how to mine bitcoins on an 8-bit game console. A brilliantly useless project such as this cannot be ignored.

While the all the buzz in bitcoin mining is about dedicated ASIC silicon, I was going take inspiration from the Mushroom Kingdom. A few late nights later, this is what I put together. While the challenge is to ‘mine bitcoins on an 8-bit game console’, lets break that down a bit. Bitcoin mining is a process of getting recent bitcoin transaction data from the global bitcoin p2p network, concatenating a random nonce value, SHA256 hashing it twice, checking to see if the resultant hash has a more than a particular number of leading zeros, and relaying positive results back out to the bitcoin network. I’m using bitcoind to do the network communication. This is pretty standard for bitcoin mining, the mining software focuses on doing the hashing and lets bitcoind do the p2p network stuff. There’s a few standard protocols for those two pieces to communicate with varying levels of efficiency, but I’m using the most basic ‘getwork’ protocol because, heh, this isn’t going to be the bottleneck in this operation.