Description
We would like to explore the option of following the example of HL Sawtooth in their approach to keeping the consensus module pluggable. In the best case scenario result, we will be able to reuse a consensus from Sawtooth in Iroha. This will increase HL projects interoperability and make Iroha more flexible.
Additional Information
In HL Sawtooth, the consensus module is separated by a consensus endpoint: https://sawtooth.hyperledger.org/docs/core/nightly/1-2/sysadmin_guide/about_dynamic_consensus.html
HL Iroha currently includes a unique consensus algorithm called YAC: https://arxiv.org/pdf/1809.00554.pdf. It has 2 modes of operation: CFT and BFT, but the latter only under an assumption of non-malicious ordering service. These modes are controlled in the source code, which is not flexible.
Learning Objectives
Architectural vision of a flexible blockchain platform. Experience of integration of open source projects.
Expected Outcome
The result of this project is a reworked source code of Iroha that provides a simple API for plugging different consensus modules found in other projects, along with some consensus modules that can work with Iroha.
Relation to Hyperledger
HL Iroha, HL Sawtooth
Education Level
Skills
C++, basic understanding of consensus in distributed systems.
Future plans
Seamless reusability of consensus providers across HL projects.
Preferred Hours and Length of Internship
Full time preferred, but part time also possible.
Mentors Names and Contact Info
Andrei Lebedev (andrei@soramitsu.co.jp, Telegram: lebdron),
Mikhail Boldyrev (boldrev@soramitsu.co.jp, Telegram: mboldyrev).