-
Урок 1.
00:01:52
Introduction
-
Урок 2.
00:05:08
What is Python?
-
Урок 3.
00:03:12
Setting Up Python
-
Урок 4.
00:05:06
Writing our First Python Code
-
Урок 5.
00:06:49
What is the Blockchain?
-
Урок 6.
00:04:42
Course Outline
-
Урок 7.
00:03:59
Python Alternatives
-
Урок 8.
00:02:23
Understanding the Python Versions
-
Урок 9.
00:03:29
How To Get The Most Out Of This Course
-
Урок 10.
00:02:17
Module Introduction
-
Урок 11.
00:04:26
Understanding the REPL and Data Types
-
Урок 12.
00:04:47
Working with Variables
-
Урок 13.
00:05:37
Working with Numbers
-
Урок 14.
00:03:49
Using Operators
-
Урок 15.
00:03:36
Understanding a "Special" Behaviour when Working with Numbers
-
Урок 16.
00:02:19
Working with Strings
-
Урок 17.
00:05:10
Working with Lists
-
Урок 18.
00:03:03
Adding & Removing List Items
-
Урок 19.
00:02:03
Preparing the Blockchain - The Theory
-
Урок 20.
00:05:18
Installing our IDE
-
Урок 21.
00:06:46
Using Functions to Add List Items
-
Урок 22.
00:03:25
Accessing the Last List Item
-
Урок 23.
00:02:37
Adding Arguments to Functions
-
Урок 24.
00:03:58
Understanding the "return" Keyword
-
Урок 25.
00:04:07
Using Default Arguments
-
Урок 26.
00:03:00
Working with Keyword Arguments
-
Урок 27.
00:03:01
Using the "input" Function
-
Урок 28.
00:02:08
Avoiding Repetitive Code Execution
-
Урок 29.
00:06:50
Understanding the Variable Scope
-
Урок 30.
00:02:26
Exploring the Official Documentation
-
Урок 31.
00:04:21
Adding Comments and Doc Strings
-
Урок 32.
00:01:57
Structuring Multi Line Code in Python
-
Урок 33.
00:03:29
Wrap Up
-
Урок 34.
00:01:39
Module Introduction
-
Урок 35.
00:02:56
Understanding Loops - Theory
-
Урок 36.
00:03:03
Creating a "for" Loop
-
Урок 37.
00:03:34
Creating a "while" Loop
-
Урок 38.
00:02:02
Understanding Conditionals - Theory
-
Урок 39.
00:07:46
Adding "if-else" to our Blockchain
-
Урок 40.
00:03:44
Working with "elif"
-
Урок 41.
00:03:32
Understanding "break" & "continue"
-
Урок 42.
00:06:40
Improving our Code with Loops & Conditionals
-
Урок 43.
00:03:38
Understanding Boolean Operators - "is" & "in"
-
Урок 44.
00:01:18
The "not" Keyword
-
Урок 45.
00:02:27
Understanding "and" and "or"
-
Урок 46.
00:03:23
Grouping Conditionals
-
Урок 47.
00:00:42
What About "switch" in Python?
-
Урок 48.
00:13:11
Verifying our Blockchain
-
Урок 49.
00:01:57
Using Conditions inside the "while" Loop
-
Урок 50.
00:02:08
Using "else" in Loops
-
Урок 51.
00:07:10
Adding the "range" Function
-
Урок 52.
00:02:32
Wrap Up
-
Урок 53.
00:02:51
Module Introduction
-
Урок 54.
00:07:04
Understanding the Required Data Structure for our Blockchain
-
Урок 55.
00:05:03
Working with Iterables
-
Урок 56.
00:02:56
Choosing the Right Datastructure
-
Урок 57.
00:07:47
Transactions with Dictionaries & Tuples
-
Урок 58.
00:03:21
Unpacking the Tuple
-
Урок 59.
00:06:18
Mining Blocks
-
Урок 60.
00:06:24
Hashing Previous Blocks
-
Урок 61.
00:05:49
Understanding List Comprehensions
-
Урок 62.
00:01:40
And What are Dict Comprehensions?
-
Урок 63.
00:02:54
Combining List Comprehensions & "if"
-
Урок 64.
00:08:21
Improving the Blockchain Validation Logic
-
Урок 65.
00:03:34
Managing a List of Participants in the Blockchain
-
Урок 66.
00:07:47
Calculating Balances
-
Урок 67.
00:03:24
Rewarding the Miners of our Blockchain
-
Урок 68.
00:05:46
Verifying Transactions
-
Урок 69.
00:07:08
Understanding Reference vs Value Copying
-
Урок 70.
00:05:43
Working with the Range Selector
-
Урок 71.
00:02:43
Understanding Shallow vs Deep Copies
-
Урок 72.
00:01:37
Comparing "is" & "=="
-
Урок 73.
00:07:28
Diving Deeper Into Iterable Methods
-
Урок 74.
00:07:36
Understanding the "all" & "any" Functions
-
Урок 75.
00:06:47
Comparing Iterables
-
Урок 76.
00:03:18
Wrap Up
-
Урок 77.
00:01:31
Module Introduction
-
Урок 78.
00:03:58
Comparing Strings & Lists
-
Урок 79.
00:08:12
Understanding the "format" Method
-
Урок 80.
00:01:48
Escaping Characters
-
Урок 81.
00:01:28
Formatting Strings Conveniently with "f"
-
Урок 82.
00:02:01
Adding String Formatting to our Project
-
Урок 83.
00:02:54
Understanding the "map" Function
-
Урок 84.
00:02:14
Working with Lambda Functions
-
Урок 85.
00:07:41
Reducing Lists
-
Урок 86.
00:06:33
Unpacking Function Arguments
-
Урок 87.
00:04:14
Fixing a Bug
-
Урок 88.
00:01:31
Wrap Up
-
Урок 89.
00:01:44
Module Introduction
-
Урок 90.
00:02:13
Exploring the Python Standard Library
-
Урок 91.
00:04:19
Importing Packages - Theory
-
Урок 92.
00:07:15
Importing "hashlib" to Create a Unique Hash
-
Урок 93.
00:01:48
Using Other Import Syntaxes
-
Урок 94.
00:06:54
The "Proof of Work"
-
Урок 95.
00:05:49
Adding the Proof of Work to our Blockchain
-
Урок 96.
00:07:50
Including the Proof of Work in our Mining Function
-
Урок 97.
00:06:23
Fixing a Hash Order Fault
-
Урок 98.
00:04:34
Splitting Up our Code
-
Урок 99.
00:02:03
Wrap Up
-
Урок 100.
00:01:45
Module Introduction
-
Урок 101.
00:05:45
Handling File Access
-
Урок 102.
00:02:34
Reading Data From a File
-
Урок 103.
00:05:53
Reading Multi-Line Content
-
Урок 104.
00:02:58
Using the "with" Block Statement
-
Урок 105.
00:08:40
Adding File Access to our Blockchain
-
Урок 106.
00:16:02
Converting Strings Into Python Objects
-
Урок 107.
00:06:06
Storing Data with Pickle
-
Урок 108.
00:01:06
Comparing Pickle & JSON
-
Урок 109.
00:02:31
Changing the Project Back to JSON
-
Урок 110.
00:00:47
Why we need Proper Error Handling
-
Урок 111.
00:01:18
Wrap Up
-
Урок 112.
00:00:58
Module Introduction
-
Урок 113.
00:05:54
Finding Logical Errors with the Debugger
-
Урок 114.
00:01:41
Finding Syntax Errors
-
Урок 115.
00:04:34
Using "try" to Find Runtime Errors
-
Урок 116.
00:03:02
Which Errors Should you Handle?
-
Урок 117.
00:02:33
Adding Error Handlers to our Blockchain
-
Урок 118.
00:01:50
Wrap Up
-
Урок 119.
00:01:14
Module Introduction
-
Урок 120.
00:02:13
What is Object Oriented Programming?
-
Урок 121.
00:01:25
Understanding Classes
-
Урок 122.
00:05:10
Creating a Class
-
Урок 123.
00:02:45
Comparing Classes, Instances & Dictionaries
-
Урок 124.
00:03:38
Understanding Class Attributes
-
Урок 125.
00:04:22
Constructor & Instance Attributes
-
Урок 126.
00:06:05
Printing Classes with Special Methods
-
Урок 127.
00:04:40
Private & Public Attributes
-
Урок 128.
00:08:47
Understanding Inheritance
-
Урок 129.
00:01:33
Planning Blockchain Classes
-
Урок 130.
00:11:08
Adding a "Block" Class to the Blockchain
-
Урок 131.
00:04:50
Saving Custom Class Objects via .json
-
Урок 132.
00:17:47
Adding a "Transaction" Class
-
Урок 133.
00:05:44
Inheritance in Action
-
Урок 134.
00:10:04
Adding a "Verification" Helper Class
-
Урок 135.
00:04:52
Initialising the "Node" Class
-
Урок 136.
00:07:31
Turning the Blockchain Into a Class
-
Урок 137.
00:11:12
Adding a "Node" Class
-
Урок 138.
00:03:40
Understanding "Instance" vs "Class" vs "Static Methods" & "Attributes"
-
Урок 139.
00:03:45
Using "Static" & "Class" Methods on the "Verification" Class
-
Урок 140.
00:03:44
Using Private Attributes in the Blockchain
-
Урок 141.
00:05:21
Properties vs Attributes
-
Урок 142.
00:02:16
Wrap Up
-
Урок 143.
00:01:42
Module Introduction
-
Урок 144.
00:04:41
Creating Packages - Module Bundles
-
Урок 145.
00:00:44
The "pycache" Folder
-
Урок 146.
00:00:52
Module Docstrings
-
Урок 147.
00:05:37
Controlling Exports
-
Урок 148.
00:04:12
Understanding Execution Context & "__name__"
-
Урок 149.
00:04:26
Why we Need a Private & Public Key Transaction Protection
-
Урок 150.
00:06:24
Using Anaconda to Install Third Party Packages
-
Урок 151.
00:06:22
Generating Keys with a Third Party Package
-
Урок 152.
00:06:16
Connecting the Node & the Wallet
-
Урок 153.
00:04:07
Generating Keys on the Node
-
Урок 154.
00:08:25
Saving & Loading Keys to Files
-
Урок 155.
00:06:25
Creating Transaction Signatures
-
Урок 156.
00:02:43
Adding a Signature to our Transactions
-
Урок 157.
00:06:50
Verifying Signatures
-
Урок 158.
00:05:42
Improving the Verification Logic
-
Урок 159.
00:01:22
Wrap Up
-
Урок 160.
00:02:05
Module Introduction
-
Урок 161.
00:05:41
HTTP Requests - The Basics
-
Урок 162.
00:03:33
Understanding API-Endpoints/ URLs
-
Урок 163.
00:03:19
Data Formats
-
Урок 164.
00:02:06
Planning our API
-
Урок 165.
00:10:09
Setting Up our Environment with Flask
-
Урок 166.
00:10:10
Adding our First Route
-
Урок 167.
00:02:22
Installing Postman
-
Урок 168.
00:07:22
Adding a POST Request
-
Урок 169.
00:08:24
Setting Up Routes to Manage our Wallet
-
Урок 170.
00:05:44
Returning Funds
-
Урок 171.
00:11:27
Adding Transactions
-
Урок 172.
00:03:15
Fetching Open Transactions
-
Урок 173.
00:01:47
Testing the Public Key
-
Урок 174.
00:02:42
Adding a User Interface
-
Урок 175.
00:13:18
Optional: Configuring our UI - Creating a Wallet
-
Урок 176.
00:11:59
Optional: Configuring our UI - Loading a Wallet and Adding Mining & Transactions
-
Урок 177.
00:02:46
Exploring our UI
-
Урок 178.
00:01:53
Wrap Up
-
Урок 179.
00:01:43
Module Introduction
-
Урок 180.
00:07:19
Adding Node Management Methods to the Blockchain
-
Урок 181.
00:07:41
Setting Up Routes to Add Nodes
-
Урок 182.
00:05:18
Adding a Remove Node Route
-
Урок 183.
00:01:20
Adding "get_Nodes" to get all Nodes
-
Урок 184.
00:11:08
Attaching a Node User Interface
-
Урок 185.
00:11:20
Running Multiple Nodes
-
Урок 186.
00:10:37
Sending Requests from within Python
-
Урок 187.
00:12:07
Broadcasting Transactions - Adding the Function & Route
-
Урок 188.
00:05:52
Broadcasting Transactions - Testing & Fixing Errors
-
Урок 189.
00:11:13
Broadcasting New Blocks: Adding the Function & Route
-
Урок 190.
00:09:54
Broadcasting New Blocks: Informing the Peer Nodes
-
Урок 191.
00:03:29
Broadcasting Transactions: Testing
-
Урок 192.
00:05:34
Solving Conflicts
-
Урок 193.
00:03:29
Understanding Consensus
-
Урок 194.
00:09:35
Finding Conflicts
-
Урок 195.
00:17:21
Implementing a Consensus Algorithm
-
Урок 196.
00:05:50
Testing Consensus
-
Урок 197.
00:01:02
Wrap Up
-
Урок 198.
00:00:47
Module Introduction
-
Урок 199.
00:02:47
Don't Forget PEP 8
-
Урок 200.
00:08:30
Using PEP 8
-
Урок 201.
00:01:02
Using Comments
-
Урок 202.
00:05:08
Diving Deeper Into Python
-
Урок 203.
00:10:03
Improving the Blockchain
-
Урок 204.
00:00:58
Congratulations