Build a Blockchain & Cryptocurrency using Python
Created by Zakwan Jaroucheh, Last Updated 30-Sep-2020, Language:English
Build a Blockchain & Cryptocurrency using Python
Discover the engineering ideas behind the blockchain technology & build your own blockchain-based bitcoin network
Created by Zakwan Jaroucheh, Last Updated 30-Sep-2020, Language:English
What Will I Get ?
- Students will build their own blockchain from scratch
- Students can practice their Python development skills to build a real-world exciting project
- Students will learn how blockchain technology exactly works
Requirements
- Basic understanding of Python, JavaScript, CSS and HTML
- Curiosity and desire to know about blockchain :)
Description
Want to learn about blockchain and cryptocurrency by building your own blockchain?
Want to practice your Python development skills by building an exciting project? => This course is for you!
Why to Learn Blockchain?
Blockchain developers are in short supply and hot demand. The job of developing blockchain distributed ledgers for businesses was recently ranked first among the top 20 fastest-growing job skills. I believe that the fastest and easiest way to be involved in this fascinating new field is to get enough knowledge and understanding of the basic concepts and then just immediately jump to the implementation and get your hands wet. That way you will be more confident in going deeper in understanding the blockchain technology and its potentials in developing the next generation decentralised applications.
Who's teaching you?
I am a software development engineer with a passion for 'doing things better'. I enjoy setting high standards, constantly learning new things, and sharing that knowledge with others. I have mastered explaining very complex topics in a simple manner that is very understandable. Currently I am a lecturer and researcher in the university. The blockchain technology is one of my main research areas of interest and I am super excited to share my knowledge with you.
What's in the course?
Great question! Basically the course is divided in two parts:
In the first part we are going to explore the blockchain technology and its underlying components:
What is a Blockchain?
Hash Cryptography (SHA256)
Immutable Ledger
Distributed P2P Network
How Mining Works
Consensus Protocol
In the second part we are going to actually build a blockchain and simulate the behaviour of bitcoin network by creating different nodes and different clients sending their transactions to the network:
Create the core Blockchain
Build an API around the Blockchain
Create a P2P network of nodes
Implement a Proof-of-Work system
Create a transaction system for a cryptocurrency
Create a nice Web interface
What are the course prerequisites?
- Basic understanding of Python, JavaScript, CSS and HTML
- Curiosity and desire to know about blockchain :)
Is this course for you?
It's for you if ...
- You're interested in Blockchain, the technology that underpins bitcoin, and you want to learn its core internals in order to be involved in this new promising and fast-growing technology.
- You want to practise your Python development skills.
- You want to broaden your horizon. Want to learn something new? Here you go!
Does that sound good to you? I'd be honoured to welcome you in this course! :-)
Course Content
-
Blockchain Fundamentals
12 Lectures 02:12:35-
Promo
Preview00:03:54 -
Introduction
00:06:06 -
What is Blockchain?
00:08:43 -
Hash Cryptography (SHA256)
00:18:02 -
Immutable Ledger
00:10:46 -
Distributed P2P Network
00:16:39 -
Introduction to Mining
00:07:56 -
How Mining Works
00:21:32 -
Consensus Protocol - First Challenge
00:16:01 -
Consensus Protocol - Second Challenge
00:11:37 -
Blockchain in Action
00:11:19 -
Resources
-
-
Building a Blockchain
30 Lectures 06:03:30-
Introduction to the Implementation Part
00:04:17 -
Demo of the final system
00:04:17 -
Environment Setup
00:04:13 -
Laying out the Project Structure
00:17:47 -
Creating a Block
00:07:15 -
Creating the UI to Generate the Wallet - Part 1
00:15:36 -
Creating the UI to Generate the Wallet - Part 2
00:10:48 -
Implementing the New Wallet Functionality
00:10:47 -
Building the UI that Allows Users to Make Transactions
00:19:16 -
Creating the Resource to Generate a Transaction
00:11:39 -
Generating the Signature
00:11:38 -
Creating the UI to Confirm the Transaction Details
00:10:46 -
Receiving the Transaction by the Node
00:19:30 -
Adding a New Transaction in the Node
00:21:08 -
Signature Verification - Part 1
00:13:15 -
Signature Verification - Part 2
00:08:36 -
Building the UI to Interact with the Node
00:12:47 -
Retrieving the List of Transactions from the Node
00:16:16 -
Implementing the Mining Functionality
00:24:56 -
Displaying the Mined Transactions
00:17:36 -
Implementing the hash Method
00:07:28 -
Implementing the Proof-of-Work
00:14:36 -
Verifying the Blockchain
00:14:40 -
Resolving the Conflict between Nodes
00:12:44 -
Configuring the Network Nodes
00:13:07 -
Building the UI to add Nodes to the Network
00:18:52 -
Finishing off the UI
00:02:45 -
Viewing the Transactions Available in the Node
00:06:29 -
End-to-End Testing & Conclusion
00:10:26 -
Resources
-

Zakwan Jaroucheh
Researcher and Lecturer
I am Zakwan Jaroucheh, a lecturer at Edinburgh Napier University (ENU), UK, and I am super-psyched that you are reading this!
I hold a BSc degree in Computer Science, an MSc degree in Business Information Systems, and a Ph.D. degree in the software engineering domain. In my current role as a lecturer, I am involved in lecturing on software-related subjects at both undergraduate and postgraduate levels. I spent around six years in the industry working with companies such as Canon and Dell as a software developer.
I am a software development engineer with a passion for 'doing things better'. I enjoy setting high standards, constantly learning new things, and sharing that knowledge with others. I have mastered explaining very complex topics in a simple manner that is very understandable.