Goal
The goal of the project is to implement and integrate a pluggable Consensus Interface for Hyperledger Iroha. Achieving this goal will increase the modularity of Iroha by giving the opportunity to use different consensus algorithms.
Project Scope
- Hyperledger Sawtooth already supports dymanic consensus and has support for lottery and voting based algorithms. The aim is to consider a similar implementation for Hyperledger Iroha.
- In Iroha transactions pass through two interfaces of consensus: Ordering Service and YAC block consensus. Therefore both need to be replaced with the consensus interface.
- Implementation of a YAC component for the new Consensus Interface.
- Consider any architectural changes in Iroha to support this Interface.
Deliverables
- Consensus Interface for the block consensus
- Consensus Interface for the ordering service
- YAC component for the Consensus Interface
- A guide for implementing a consensus component
Project Timeline
Week 1-3
- Understand how Conensus works in Hyperledger Sawtooth.
- Get familiar with Hyperledger Iroha Implementation.
Week 3-6
- Implement Interface for Communication with Sawtooth Consensus Engine.
Week 6-9
- Implement the P2P Network Consensus Interface.
- Update the Ordering Service to Gossip.
Week 9-12
- Implement the Block Creation Component.
- Implement the Block Validation Component.
- Implement the Block Commit.
Methodology
- Quarter basis review according to Hyperledger Internship Programme schedule.
- Internal communication and updates with the mentors using Telegram.
- After every implementation, writing tests and testing.