Blockchain Programming
- Descrição
- Currículo
- FAQ
- Revisões
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!
-
1IntroductionVídeo Aula
-
2Python Datatypes: Lists, Dictionaries and TuplesVídeo Aula
-
3Python Basics: Functions, Loops, If Statements and ModulesVídeo Aula
-
4Where's the blockchain!?Vídeo Aula
Some clarification in response to student feedback
-
5Python Basics: ClassesVídeo Aula
-
6Python Basics: InheritanceVídeo Aula
-
7Python Basics: Catching Errors with Try/ExceptVídeo Aula
-
8Asymmetric EncryptionVídeo Aula
We'll discuss asymmetric encryption. At the end of this lecture, you'll be able to explain asymmetric encryption and how it enables secure internet communication.
-
9Digital SignaturesVídeo Aula
In which the connection between asymmetric encryption and digital signatures is explored. At the end of this lecture, you'll know the connection between asymmetric encryption and digital signatures. You'll know why digital signatures cannot be mimicked.
-
10Signatures for CryptocurrenciesVídeo Aula
The connection between digital signatures and cryptocurrency becomes clear. At the end of this lecture, you'll be able to explain why digital signatures are essential for cryptocurrency.
-
11Digital SignaturesQuestionário
-
12Test-driven DevelopmentVídeo Aula
A brief note on coding assignments for this course. At the end of this lecture, you'll be able to explain test-drive development and you'll know how we'll set up assignment for the course.
-
13Installing modules with pipVídeo Aula
A reminder about Python version 3 (not 2.7!) and instructions on installing and using pip. Skip this section if already you have Python 3.x and the cryptography Python module.
Here are instructions for installing the cryptograpy module, in case you learn better by reading it. https://cryptography.io/en/latest/installation/
-
14Assignment: Sign and verifyVídeo Aula
Your first assignment. At the end of this lecture, you'll be able tell whether your functions for digitally signing and verifying statements is correct. Pause at the end of this lecture to work on your first assignment.
Remember, documentation for RSA digitial signatures, including useful code examples for key generation, signing and verifying, can be found here:https://cryptography.io/en/latest/hazmat/primitives/asymmetric/rsa/
-
15Solution: Part 1Vídeo Aula
The solution to your assignment in which we learn that instructors make mistakes, too. Don't start this lecture until you've made a good attempt at completing the assignment yourself.
At the end of this lecture, you'll be generating public-private key pairs and signing and verifying digital signatures with your own python code.
-
16Solution: Part 2Vídeo Aula
-
17Strings or BytesVídeo Aula
Our final lecture on digital signatures. You'll about the Python "bytes" type. You'll be able to convert between bytes and strings in Python and you Signatures module will be able to handle either bytes or ordinary text strings.
-
18Hash functionsVídeo Aula
Hash functions and what makes them useful. At the end of this lecture, you'll be able to list and describe the characteristics of a good cryptographic hash function
-
19Crytographic hashingQuestionário
Testing your knowledge of hash functions and their requirements in crytography
-
20Computing hash functions with PythonVídeo Aula
Hashing with Python. At the end of this lecture, you'll be able to compute the SHA-256 hash of a string using Python
-
21Block ChainsVídeo Aula
Blockchain basics. At the end of this lecture, you'll be able to describe a blockchain, how it is secured by a hash function, and why it's hard to change history recorded on a blockchain.
-
22Assignment: Blockchain for general dataVídeo Aula
-
23SolutionVídeo Aula
-
24TransactionsVídeo Aula
-
25Multiple output addressesVídeo Aula
-
26Multi-signature transactionsVídeo Aula
-
27TransactionsQuestionário
Testing your knowledge of transactions
-
28Assignment: Transaction class Part 1Vídeo Aula
-
29Assignment: Transaction class Part 2Vídeo Aula
-
30Solution: Part 1Vídeo Aula
-
31Solution: Part 2Vídeo Aula
-
38DecentralizationVídeo Aula
-
39The Dark Side of DecentralizationVídeo Aula
-
40Proof-of-WorkVídeo Aula
-
41NoncesVídeo Aula
-
42Proof-of-Work QuizQuestionário
Test your knowledge of proof-of-work mining
-
43Assignment 1: Mining rewardsVídeo Aula
-
44Assignment 1: SolutionVídeo Aula
-
45Assignment 2: Nonce requirementVídeo Aula
-
46Additional Python tips and tricksVídeo Aula
-
47Assignment 2: SolutionVídeo Aula
-
48Dragons!Vídeo Aula
Some sign-posting to let you know where we are and where we're headed next.
-
49Internet basicsVídeo Aula
-
50Client and ServerVídeo Aula
-
51Building a serverVídeo Aula
-
52Building a clientVídeo Aula
-
53Non-blocking serverVídeo Aula
-
54Client-server code alongVídeo Aula
-
55Pickling data for communicationVídeo Aula
-
56Finishing up client-serverVídeo Aula
-
57Miner and WalletVídeo Aula
-
58Building a socket communication utilityVídeo Aula
-
59Assignment: Build a MinerVídeo Aula
-
60SolutionVídeo Aula
-
61Placing the new blockVídeo Aula
-
62Basic ThreadingVídeo Aula
-
63Assignment 1: Test Miner Using ThreadsVídeo Aula
-
64Assignment 1: SolutionVídeo Aula
-
65Assignment 2: Wallet client and serverVídeo Aula
-
66Assignment 2: SolutionVídeo Aula
-
67Coding Best PracticesVídeo Aula
-
68Assignment 3: Saving and Restoring KeysVídeo Aula
-
69Assignment 3: SolutionVídeo Aula
-
70Save and Restore Blocks and TransactionsVídeo Aula