Efficient runtime for BFT systems (Master project)

Introduction

Current BFT protocols are often implemented in ad-hoc manners, either by reusing existing code, or implementing the system from scratch. Mostly, C/C++ is the language of choice for BFT developer, although there are some examples of using Java. In most cases, implementation is a single-threaded application.

The problem with this approach is that there is no correlation between pseudo-code and implemented code. Furthermore, implementations may suffer from performance problems, due to poorly written code. Finally, comparison of different algorithms is now affected by different implementation strategies.

In order to give a common platform to implement high-performance BFT systems, we propose implementing a multithreaded runtime for running BFT protocol implementation.

Goals of the Project

The project would consist of:

  1. Modeling the components of BFT systems.
  2. Modifying mongrel2 or userver (efficient event-based web-server) to process requests.
  3. Evaluation of different protocol implementations on new platform.

Technical Details

Responsible: Nikola Knežević (firstname.lastname@epfl.ch)

Faculty/laboratory: IC/LPD

Programming language: C/C++

This project is still available