Skip to content

Commit

Permalink
LFX-EVAL01
Browse files Browse the repository at this point in the history
  • Loading branch information
Sandhu-Sahil committed Dec 24, 2023
1 parent a3efb6f commit 8d6353f
Showing 1 changed file with 115 additions and 0 deletions.
115 changes: 115 additions & 0 deletions 1-evaluation.md
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.

---

0 comments on commit 8d6353f

Please sign in to comment.