-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a3efb6f
commit 8d6353f
Showing
1 changed file
with
115 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
# BiniBFT - An Optimized BFT on Fabric | ||
|
||
## Evaluation 1 - Report | ||
|
||
### Submitted By: Sahilsher Singh | ||
### Collaborative Learning Program | ||
|
||
**Engagement Details** | ||
|
||
- **Name of Mentee:** Sahilsher Singh | ||
- **Evaluation Period:** 06-07-2023 to 11-08-2023 | ||
- **Task:** Blockchain and RAFT familiarization & an example application implementation using it | ||
- **Date Submitted:** 18-08-2023 | ||
- **Mentor:** Dr. Anasuya Threse Innocent | ||
|
||
--- | ||
|
||
## Tasks, Objectives, and Results | ||
|
||
### Key Outline of the Task | ||
|
||
**Team Introduction:** | ||
Introduce team members, including roles and responsibilities. | ||
|
||
**Project Overview:** | ||
Provide an overview, goals, and objectives of the BiniBFT project. | ||
|
||
**Expectations and Goals:** | ||
Set clear expectations, clarify project goals, and ensure alignment. | ||
|
||
**Setting up Communication Channels:** | ||
Establish effective communication channels (e.g., Slack, email). | ||
|
||
**Kick-off Meeting:** | ||
Hold a kick-off meeting to discuss scope, deliverables, and timeline. | ||
|
||
**Project Planning:** | ||
Initiate project planning, define tasks, milestones, and dependencies. | ||
|
||
**Start learning:** | ||
Explore public blockchain and its consensus algorithms. | ||
|
||
**Research and Background:** | ||
Conduct necessary research to understand the project domain. Discuss Raft consensus algorithm limitations and areas for improvement. | ||
|
||
**Ongoing journey of learning:** | ||
Create small projects to become familiar with public blockchain. | ||
|
||
### Hyperledger Fabric | ||
|
||
- **BFT Consensus Methods and Blockchain Interaction:** | ||
Research existing BFT consensus methods and their interaction with blockchain systems. | ||
|
||
- **Overview of Raft Consensus Algorithm:** | ||
Provide a concise overview of the Raft consensus algorithm, including key components. | ||
|
||
- **Raft Consensus Algorithm Limitations:** | ||
Analyze limitations of Raft consensus algorithm and identify potential areas for improvement. | ||
|
||
- **Hyperledger Labs BDLS:** | ||
Explore Hyperledger Labs BDLS and understand its use with various consensus algorithms. | ||
|
||
- **Architecture of Hyperledger Labs BDLS:** | ||
Examine architecture of Hyperledger Labs BDLS, including components and interactions. | ||
|
||
- **Getting hands dirty:** | ||
Start a project based on research, gaining a better understanding of blockchain and consensus algorithms. | ||
|
||
### Byzantine Fault Tolerance | ||
|
||
- **Byzantine:** | ||
Begin learning about Byzantine and its consensus algorithms. | ||
|
||
### Raft Consensus Algorithm | ||
|
||
- **Raft:** | ||
Start learning about Raft and its consensus algorithms. | ||
|
||
### Paxos Consensus Algorithm | ||
|
||
- **Paxos:** | ||
Start learning about Paxos and its consensus algorithms. | ||
|
||
### Corda Consensus Algorithm | ||
|
||
- **Corda:** | ||
Start learning about Corda and its consensus algorithms. | ||
|
||
### Problems with Raft | ||
|
||
- **Transaction censorship:** | ||
Discuss the issue of transaction censorship in Raft. | ||
|
||
- **Followers trust the leader:** | ||
Highlight the need for followers to trust the leader and the absence of client log verification. | ||
|
||
- **Malicious leader and network recovery:** | ||
Address the lack of mechanisms to recover from a malicious leader. | ||
|
||
- **Leader overwriting follower logs:** | ||
Identify the problem of the leader overwriting follower logs. | ||
|
||
### Task Outline and Assignment | ||
|
||
- Start with public blockchain learning and complete a course in Ethereum development. | ||
- Move to private blockchain, specifically Hyperledger, and read papers on its consensus mechanisms. | ||
- Implement example projects using [fabric-samples](https://github.com/Sandhu-Sahil/fabric-samples) and [Hyperledger Fabric documentation](https://hyperledger-fabric.readthedocs.io/en/latest/). | ||
- Build a mango tracking system using microFab and perform testing. | ||
- Further implementation details can be found in the provided GitHub repositories: [bootstrapping-hyperledger](https://github.com/Sandhu-Sahil/bootstrapping-hyperledger) and [mango-tracking-sys](https://github.com/Sandhu-Sahil/mango-tracking-sys). | ||
|
||
### Raft Implementation | ||
|
||
- Explore the GitHub repository [raft-implementation](https://github.com/Sandhu-Sahil/raft-implementation) for insights into the implementation of the Raft consensus algorithm. | ||
|
||
--- |