In preparation for the hackathon this week I have been trying to revive our in-house cryptocurrency project, AKA ClarkeCoin
4:15 - 5:15 Each Day
- What are the core technical tools that make a blockchain-based system work?
- What is a hashing algorithm?
- How does public/private key cryptography work?
- How can we utilize these tools ourselves through commonly available libraries?
Tuesday - Hashing Algo Applications -- Hash Tables (Maybe also hash-array tries) (Very common tech interview quesion)
- Before diving into crypotocurrency itself, what are some additional applications of these techniques (HINT: you use them all the time in every programming language!)
- In this session we'll look at Hash Tables, a very common data structure that leverages Hashing for performance and flexibility
- we'll also touch on Git, another ubiquitous system which heavily exploits hashing algorithms
- Now for the meat -- let's talk about how bitcoin and other cryptocurrency systems actually work
- This session is somewhat involved but as we will see it's largely made up of some clever applications of the techniques we've already been looking at
- We'll look at bitcoin's transaction and block structures, discuss the basics of how the network operates, and look at a few node interactions from the perspective of both a normal user and a miner
- Now that we've seen the basic ideas, let's talk about how we approached building our own copy of this system within turing
- we'll look at where the project stands, the existing documentation and tutorials, and discuss some ways to get involved
- We'll try to think of a few different projects that could be approached at different levels of difficulty:
- a command line block browser / explorer
- a web-based block browser / explorer
- a js-based (or cljs!) desktop wallet client
- a non-mining full node
- a complete full node with mining!