-
Course Overview 5
-
Lecture1.1
-
Lecture1.2
-
Lecture1.3
-
Lecture1.4
-
Lecture1.5
-
-
Quick Blockchain Refresher !! 10
-
Lecture2.1
-
Lecture2.2
-
Lecture2.3
-
Lecture2.4
-
Lecture2.5
-
Lecture2.6
-
Lecture2.7
-
Lecture2.8
-
Lecture2.9
-
Lecture2.10
-
-
Docker Basics 5
-
Lecture3.1
-
Lecture3.2
-
Lecture3.3
-
Lecture3.4
-
Lecture3.5
-
-
Diving Into Real Life Scenarios 2
-
Lecture4.1
-
Lecture4.2
-
-
Tales To Astonish 2
-
Lecture5.1
-
Lecture5.2
-
-
Moral Of The Stories 5
-
Lecture6.1
-
Lecture6.2
-
Lecture6.3
-
Lecture6.4
-
Lecture6.5
-
-
Chain To The Rescue ! 1
-
Lecture7.1
-
-
So many roads to choose from ! 4
-
Lecture8.1
-
Lecture8.2
-
Lecture8.3
-
Lecture8.4
-
-
The Problem Statement 7
-
Lecture9.1
-
Lecture9.2
-
Lecture9.3
-
Lecture9.4
-
Lecture9.5
-
Lecture9.6
-
Lecture9.7
-
-
Why Hyperledger Fabric? 7
-
Lecture10.1
-
Lecture10.2
-
Lecture10.3
-
Lecture10.4
-
Lecture10.5
-
Lecture10.6
-
Lecture10.7
-
-
Defining a Fabric Network 10
-
Lecture11.1
-
Lecture11.2
-
Lecture11.3
-
Lecture11.4
-
Lecture11.5
-
Lecture11.6
-
Lecture11.7
-
Lecture11.8
-
Lecture11.9
-
Lecture11.10
-
-
Peers, Orderer and Client 10
-
Lecture12.1
-
Lecture12.2
-
Lecture12.3
-
Lecture12.4
-
Lecture12.5
-
Lecture12.6
-
Lecture12.7
-
Lecture12.8
-
Lecture12.9
-
Lecture12.10
-
-
Let's explore further on identities 7
-
Lecture13.1
-
Lecture13.2
-
Lecture13.3
-
Lecture13.4
-
Lecture13.5
-
Lecture13.6
-
Lecture13.7
-
-
Understanding The Fabric Transaction Flow 9
-
Lecture14.1
-
Lecture14.2
-
Lecture14.3
-
Lecture14.4
-
Lecture14.5
-
Lecture14.6
-
Lecture14.7
-
Lecture14.8
-
Lecture14.9
-
-
Bootstrapping the Network 8
-
Lecture15.1
-
Lecture15.2
-
Lecture15.3
-
Lecture15.4
-
Lecture15.5
-
Lecture15.6
-
Lecture15.7
-
Lecture15.8
-
-
Hands-On Exercise! 3
-
Lecture16.1
-
Lecture16.2
-
Lecture16.3
-
-
Assessment-1 1
-
Quiz17.115 questions
-
-
Let's Write A Chaincode 2
-
Lecture18.1
-
Lecture18.2
-
-
The Birth of a Transaction 4
-
Lecture19.1
-
Lecture19.2
-
Lecture19.3
-
Lecture19.4
-
-
Introducing Chaincodes ! 6
-
Lecture20.1
-
Lecture20.2
-
Lecture20.3
-
Lecture20.4
-
Lecture20.5
-
Lecture20.6
-
-
Diving Deep Into Chaincodes 6
-
Lecture21.1
-
Lecture21.2
-
Lecture21.3
-
Lecture21.4
-
Lecture21.5
-
Lecture21.6
-
-
The subtle Art of Writing A Chaincode ! 7
-
Lecture22.1
-
Lecture22.2
-
Lecture22.3
-
Lecture22.4
-
Lecture22.5
-
Lecture22.6
-
Lecture22.7
-
-
Hands-On Excercise 3
-
Lecture23.1
-
Lecture23.2
-
Lecture23.3
-
-
Private Data Collections (PDC) 2
-
Lecture24.1
-
Lecture24.2
-
-
Rich Queries 2
-
Lecture25.1
-
Lecture25.2
-
-
Finishing the Chaincode 1
-
Lecture26.1
-
-
What's new in Hyperledger Fabric 2.x 1
-
Lecture27.1
-
-
Assessment-2 1
-
Quiz28.115 questions
-
-
Writing a Client 3
-
Lecture29.1
-
Lecture29.2
-
Lecture29.3
-
-
Building A Bridge 3
-
Lecture30.1
-
Lecture30.2
-
Lecture30.3
-
-
Understanding the Client 4
-
Lecture31.1
-
Lecture31.2
-
Lecture31.3
-
Lecture31.4
-
-
On with the code 5
-
Lecture32.1
-
Lecture32.2
-
Lecture32.3
-
Lecture32.4
-
Lecture32.5
-
-
Assessment - 3 1
-
Quiz33.115 questions
-
-
Implementing Events in Hyperledger Fabric 5
-
Lecture34.1
-
Lecture34.2
-
Lecture34.3
-
Lecture34.4
-
Lecture34.5
-
-
UI Integration 4
-
Lecture35.1
-
Lecture35.2
-
Lecture35.3
-
Lecture35.4
-
-
Things we need to know 6
-
Lecture36.1
-
Lecture36.2
-
Lecture36.3
-
Lecture36.4
-
Lecture36.5
-
Lecture36.6
-
-
Connecting The Dots 2
-
Lecture37.1
-
Lecture37.2
-
-
" Handling " The UI 7
-
Lecture38.1
-
Lecture38.2
-
Lecture38.3
-
Lecture38.4
-
Lecture38.5
-
Lecture38.6
-
Lecture38.7
-
-
Assessment-4 1
-
Quiz39.115 questions
-
-
RAFT 5
-
Lecture40.1
-
Lecture40.2
-
Lecture40.3
-
Lecture40.4
-
Lecture40.5
-
-
Final Assessment 1
-
Quiz41.120 questions
-
-
Thank You 2
-
Lecture42.1
-
Lecture42.2
-
The General Problem
Long ago, a group of generals from the Byzantine army decided to capture a well-fortified city. Each of the generals commanded various regiments of the army. The city was surrounded by the generals and their regiments. The generals could capture the city only if they attacked at the same time. This meant that the generals had to coordinate among themselves and plan the attack. They communicated via a messenger. The problem is that if there is a traitor among the generals, they can mislead the messenger and sabotage the attack. Therefore there is a need for a reliable mechanism that allows for agreement among the generals, even in the presence of disloyal ones, so that the attack can still take place at the same time.
This is called the Byzantine Generals Problem(Source). It stands as an analogy to distributed systems. Here, the generals can be considered as nodes (participants), the traitors as malicious nodes, and the messenger as a channel of communication among the generals. This was a thought experiment proposed by Lamport and others in 1982. The goal was to create a consensus mechanism that can reach consensus in a distributed network, even in the presence of faulty or malicious nodes. One of the first solutions to this problem was proposed by Castro and Liskov in 1999. They proposed an algorithm called the practical Byzantine Fault Tolerance(pBFT), which can reach consensus even if there are faulty nodes in the network.
The ability of a distributed system to reach consensus in a network even when some of the nodes in the network fail to respond or respond with incorrect information is known as Byzantine Fault Tolerance (BFT). The consensus algorithms that help achieve Byzantine Fault Tolerance is called Byzantine Fault Tolerant Consensus.
So, a BFT consensus can help solve the issue of faulty or malicious nodes in the network. But, what if an attacker tries to tamper with the data in the blockchain? How can we prevent such a scenario? To answer this question, we must look at the “chain” in “blockchain”.