Blockchain Programming Learn everything you always wanted

Blockchain Programming Learn everything you always wanted



Blockchain Programming

Build a blockchain and cryptocurrency from scratch using Python

What you'll learn

Build a crypto coin from scratch using Python

Digitally sign messages and verify signatures

Design and build a tamper-proof blockchain to store any kind of data.

Secure your blockchain with a proof-of-work requirement.

Open sockets to communicate transactions and block with peers
Build a wallet and miner for your crypto coin.



-------------------------------------------------------------------------------
Description
You'll learn the ins and outs of blockchain-like only a blockchain programmer knows. Using only a few Python libraries, we'll build a cryptocurrency from the ground up. Even if you have very little programming experience we can help you through it!

You'll learn about digital signatures, hashing, and proof-of-work mining. We'll design and build a scheme for decentralized consensus including communicating over TCP/IP sockets. Bring your basic knowledge of Python, and you'll emerge on the other side with a grasp of cryptocurrencies better than 99% of your peers and with a working prototype you can build on. 
You'll make smarter cryptocurrency investment decisions, launch a career in blockchain programming, or just be the smartest crypto-junkie in the room. Clear your weekend, click the enroll button and let's go!
---------------------------------------------------------------------------

Course content

9 sections • 83 lectures • 13h 55m total length

Python Basics: Functions, Loops, If Statements and Modules
08:55
Python Basics: Classes
07:21
Python Basics: Inheritance
05:46
Python Basics: Catching Errors with Try/Except
04:13
Signatures for Cryptocurrencies
01:07
Digital Signatures
1 question
Installing modules with pip
01:54
Solution: Part 2
04:03
Strings or Bytes
04:45
Hash functions
03:13
Crytographic hashing
2 questions
Computing hash functions with Python
03:02
Block Chains
01:42
Assignment: Blockchain for general data
08:53
Solution
11:37
Transactions
01:48
Multiple output addresses
00:58
Multi-signature transactions
01:50
Transactions
1 question
Assignment: Transaction class Part 1
09:10
Assignment: Transaction class Part 2
07:04
Solution: Part 1
09:40
Solution: Part 2
09:36
Securing a public transactions ledger
03:19
Assignment 1: Save and restore with pickle
08:15
Assignment 1: Solution
18:13
Assignment 2: The TxBlock class
14:18
Assignment 2: Solution
16:03
Decentralization
01:36
The Dark Side of Decentralization
01:53
Proof-of-Work
05:18
Nonces
06:13
Proof-of-Work Quiz
4 questions
Assignment 1: Mining rewards
09:27
Assignment 1: Solution
13:24
Assignment 2: Nonce requirement
07:42
Additional Python tips and tricks
11:11
Assignment 2: Solution
29:13
Dragons!
01:24
Internet basics
06:08
Client and Server
02:45
Building a server
03:59
Building a client
00:52
Non-blocking server
03:42
Client-server code along
19:28
Pickling data for communication
06:11
Finishing up client-server
08:40
Miner and Wallet
02:37
Building a socket communication utility
07:18
Assignment: Build a Miner
17:10
Solution
26:13
Placing the new block
12:34
Basic Threading
13:41
Assignment 1: Test Miner Using Threads
16:59
Assignment 1: Solution
09:24
Assignment 2: Wallet client and server
17:40
Assignment 2: Solution
23:11
Coding Best Practices
11:09
Assignment 3: Saving and Restoring Keys
07:42
Assignment 3: Solution
14:32
Save and Restore Blocks and Transactions
13:47
Potpourri
03:02
Assignment 1: Load and save states
15:11
Assignment 1: Solution
30:35
Assignment 2: Limit block size
15:51
Assignment 2: Solution
12:29
Assignment 3: Checking account balances
06:12
Assignment 3: Solution
13:25
Assignment 4: Blockchain branching
09:58
Assignment 4: Solution
10:28
Assignment 5: Replay Attacks
17:17
Assignment 5: Solution
01:19:53
Approaches to replay attacks
07:28
Assignment 6: Multiple miners
14:58
Assignment 6: Solution
30:19
Hardness and emission rate
10:56
Hardness quiz
4 questions
Final code base










Comments