Skip to content

Latest commit

 

History

History
115 lines (74 loc) · 3.96 KB

1-evaluation.md

File metadata and controls

115 lines (74 loc) · 3.96 KB

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 and Hyperledger Fabric documentation.
  • Build a mango tracking system using microFab and perform testing.
  • Further implementation details can be found in the provided GitHub repositories: bootstrapping-hyperledger and mango-tracking-sys.

Raft Implementation

  • Explore the GitHub repository raft-implementation for insights into the implementation of the Raft consensus algorithm.