In this application you will gain an understanding of the technology that makes bitcoin and other cryptocurrencies so popular and secure.
If you do not know what blockchain is, I recommend checking out the links in the resources section before attempting this project, or give just it a shot, up to you.
This is an introductory blockchain application to teach you about blockchain, cryptocurrencies, and the other technologies behind the hype. You will use mathematical hash functions to create private and public keys for the transactions. You will also use the same hash functions to both verify and mine blocks. The hashing will lead to immutable blocks within the chain. At the end of the project you will have your very own fully functioning blockchain application!
To begin we must install everything necessary
- Download Git. This is a useful tool for version control and general programming. You can ensure that everything installed correctly by running
git --version
in the terminal. It would be useful to familiarize yourself within this environment. - Download Node.js. We will use npm to test our application. You can ensure that everything installed correctly by running
node -v
andnpm -v
in the terminal. - Download an IDE that you like. We recommend Visual Studio Code
- Clone the repository (click the green code button and copy the link) then in your terminal execute the command
git clone (link)
you can paste the link in with control + v. - Change directories into your newly cloned repo with
cd diy-blockchain\blockchain-app
and then install the dependecies withnpm install
.
If you have any issue installing anything, google it. Google is a source of infinite knowledge.
- How does a blockchain work - Simply Explained
- But how does bitcoin actually work - 3Blue1Brown
- Khan Academy - Bitcoin Course
- Bitcoin white paper
These will be useful to understand the theory behind what you will be doing in this project. Below are links to contact our organization, feel free to message us in the slack or shoot us an email with any questions!
Blockchain on the most basic level is a way to store information. It is similar to a linked list in the sense that they both store information and the blocks point to each other.
A blockchain (for our use) will store the transactions between people. Each block will house a number of transactions and will be connected with the chain via the previous blocks' hash. The first block, the genesis block, has no previous hash, but all subsequent blocks will reference the hash of the prior block. This is one of the many reasons why the structure is very secure. If you change the hash of one block (the content stored within the block) all of the blocks down the chain will change too.
If any of that sounded like nonsense, I recommend looking at the resources listed above. If you already checked them out, maybe watch them again, or do some reseach further on your own, again, Google is a source of infinite knowledge.
Time to get into the project!
Navigate to the blockchain-app folder above, or click the link to get into the project!