From 8d6353f4416d1e03d97c6cf70758e01989d80d89 Mon Sep 17 00:00:00 2001 From: Sandhu-Sahil Date: Sun, 24 Dec 2023 12:25:32 +0530 Subject: [PATCH] LFX-EVAL01 --- 1-evaluation.md | 115 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 1-evaluation.md diff --git a/1-evaluation.md b/1-evaluation.md new file mode 100644 index 0000000..3047630 --- /dev/null +++ b/1-evaluation.md @@ -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. + +--- \ No newline at end of file