Blockchain Development — Zero to Hero [Guide]
Who knew, the ability to program money, would be so valuable…
A compilation of everything you ever wanted to know and learn about Blockchain development. 👏
Mega Guide Contents:
- Blockchain 101
A micro-course, where you will learn the basics of blockchain/cryptography, and build your own simple blockchain. Zero to Hero. - Tutorial List
Tutorial implementations for creating blockchains and smart contracts avaliable in various programming languages. - Papers to Read
Get your study on, read papers that expand your understanding and improve your abilties. +5 smart points - What the Guides don’t tell you
In practice things are done a little different compared to the example chains you’ve been learning with. The devil is in the details. - Free Courses
A list of free blockchain courses from some reputable institutions, including Stanford and Berkley, that you can gloat about all over LinkedIn. - Discord and Telegram
Join me, aswell as other blockchain developers/learners on discord and telegram.
Blockchain 101
If you complete this micro-course, you will be able to explain to your friends (who probably didn’t ask,) the mechanics of blockchains, and show-off one you just built.
Introduction:
- 1)📼 How does bitcoin work (26 mins) — by 3Brown1Blue
Cryptography:
- 2)📼Hash Functions (10 mins) — by Khan Academy
- 3)📼Digital Signatures (10 mins) — by Khan Academy
- 4)📼Proof-of-Work (11 mins) — by Khan Academy
- 5)📼Transaction Security (15 mins) —Khan Academy
Application:
- 6)📃Building a Basic Blockchain 1[JAVA Tutorial] — by Me
- 7)📃Building a Basic Blockchain 2[JAVA Tutorial] — by Me
Netoworking:
- 8)📼Peer-to-Peer Networking (2 mins) — by Lisk
- 9)📼Consensus (8 mins)— by Blockgeeks
Smart Contracts:
- 10)📼 What is a Smart Contract (25 mins) — by Systems Innovation
- 11)📃Build your first Smart Contract — by Crypto Currently
- 12)📼Attacks on Smart Contracts (31 mins) — by David Wong
Enterprise:
- 13)📼Enterprise blockchain platforms(14 mins) — by Berkley
Tutorial List
Theory sucks, we need to learn by doing (i.e. mindlessly copying and pastings from tutorials and complaining that the code wont compile in the comments)! I recommend the first tutorial, as it covers the most ground.
Blockchain:
- 📃[GO] Blockchain in Go — by Mauricio M. Ribeiro
- 📃[JAVA] Blockchain from scratch — by Me
- 📃[GO] Blockchain 200 lines of code — by Coral Health
- 📃[PYTHON] Learn Blockchain By building one — by Hackernoon
- 📃[C++] Build a blockchain with C++ — by Dave Nash
- 📃[C#] Blockchain C# implementation — By Czako Zoltan
- 📃[Javascript] Blockchain in Javascript — Mohammad Azam
Smart Contracts:
- 📼[Solidity] Build your First Ethereum App — by freeCodeCamp
- 📃[GO] Hyperledger Chaincode — by Vishal
- 📃[C++] EOS Smart contract — by Abhishek Sharma
- 📼[C#] NEO Tutorial — by Hardly Difficult
Blockchain 101 Papers to Read
Oh damn! You wanna go big brain mode and read some papers. Well, there is really only one paper you need to read. You wont be needing your big brain for it either, it’s very well written and accessible…
- A Peer-to-Peer Digital Cash system — By Satoshi Nakamoto
A list of other papers can be found on our discord.
What the Guides don’t tell you…
There are a good few things these guides don’t tell you. These aren’t hard concepts, but are often glossed over or replaced with a more convenient learning example.
…About Mining
In practice, mining isn’t really about looking for a hash starting with serval ‘0’ bits. Mining actually requires finding a hash that has a numerical value is less than a target (this results in a number of ‘0’ bits). That target hash can be calculated from the difficulty. (Bitcoin wiki page on difficulty)
// pseudo code
hash = sha256(block)
if big_endian(hash) < big_endian(target_hash):
mined = true
…about adjusting difficulty
Difficulty must be adjusted to keep up with the changing hash rate of the network (to keep a block time around, say, 10 mins). The easiest way is to adjust the current target based on how much faster or longer it took to mine X blocks.
// pseudo code
target_hash = diff_to_target(difficulty)
quotient = epoch_duration / expected_duration
new_target_hash = target_hash * quotientdifficulty = target_to_diff(new_target_hash)
Free Courses
It’s Freeloader paradise! Full courses, by some top institutes without having a penny.
- Blockchain Technology — by Berkley
- Bitcoin and Blockchain — by Khan Academy
- Cryptography Course — by Stanford
- Blockchain Fundamentals — by Plural sight
- Blockchain Principles and Practices — by Plural sight
- Hyperledger Blockchain Technologies — by Linux Foundation
- Introduction to Fin Tech — by Hong Kong University
Wishing you the best of luck on your Blockchain development Journey.
Discord | Telegram | kasscrypto@gmail.com | 👏 so others can find this
😉 Smartest way to create a currency coinmechanic.io