2012-04-18

The humble begginings

Over the course of the summer I got further into the topic of Bitcoin. I joined the forum, read some materials here and there, but didn't want to get too much into working on anything until I got the topic of my master thesis. I did, however, manage to overload my wife's computer while mining and playing Terraria at the same time. She wasn't too pleased to say the least and had to go with her first thing in the morning to get a replacement for that. Next time I'll know not to try installing a shiny, new high-powered graphic card into a slightly old PC.

In September I started to work on some code, trying to understand better how Bitcoin works. I managed to create my little online calculator (http://tpbitcalc.appspot.com/), and started working on implementing some Bitcoin-related packages. The amount of information available to the raw workings of Bitcoin wasn't too great, so I had to dig up all the information I could from places like the forum, the wiki, and of course, the Stack Exchange. Discovering that last website was really an interesting experience. It was the first time I stumbled across any of the Stack Exchanges and I found this to be a very valuable tool for a lot of things. Not to mention that it really helped me to learn a lot about Bitcoin and give back to the community (now if I could grind some more reputation...;) ).

But then first hurdles appeared on the road. I guess this is what you get when trying to implement a new concept with some new technology. As it turned out Golang didn't have an implementation of secp256k1 (the ECDSA curve used by Bitcoin), Google App Engine did not want to communicate in any other way than through HTTP, and understanding how to implement the Bitcoin Script was too much for me.

Luckily I was able to work on two Bitcoin sub-projects at once (a Block Explorer and a Pool), which allowed me to take a brake from one and start on the other if things became too hard at times. Too bad starting programming the Pool it turned out that Golang didn't have HTTP JSON RPC implemented...