You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
matejpavlovic opened this issue
Sep 12, 2022
· 0 comments
Labels
projectBig task that can be addressed as a small stand-alone projectSDKDebugging and analytics tools, e.g., creation / inspection of event logs, profiling...
The Mir project aims at developing a production-quality implementation of:
a general framework for easily implementing distributed protocols
a Byzantine fault-tolerant consensus protocol using the framework.
This implementation (in the Go language) will be available as the open-source mir library.
Our aim is integration with the Eudico Filecoin client,
specifically its ordering service.
Being framed as a library, however, Mir's goal is also to serve as a general-purpose high-performance BFT component of other projects.
The first fault-tolerant consensus protocol implemented within mir is a variant of ISS (next generation of the MirBFT consensus protocol, that appeared at EuroSys22 as State Machine Replication Scalability Made Simple). However, the framework is general enough to facilitate the implementation of other distributed protocols in the future. The framework is highly modular, allowing the developer of the distributed protocol to focus on the protocol logic, without having to care about network transport, storage, and cryptographic primitives, etc.
At the same time, the high modularity facilitates creating custom protocol implementations tailored to the consumer's needs. Mir hopes to be a building block of a next generation of distributed systems.
The mir library is still in development. This project is one of the ways to improve it by adding support for easily analyzing and testing protocols developed with mir.
The mircat Diagnostics Tool
Part of the mir framework are tools that facilitate implementation and diagnostics of distributed protocols. The main such tool, mircat, should be able to record traces of events occurring at a node in the distributed network, analyze those traces, edit them (or even construct new artificial ones), and replay them to a node in debug mode. Such a tool greatly improves the development, testing and debugging of protocols built using mir.
Currently, mircat only has very rudimentary features: printing a list of events, potentially applying a simple filter on it. The goal of this project is to extend mircat by the above-mentioned features.
To implement the missing features of mircat, it is necessary need to:
Become familiar with the existing code base and understand the event-handling mechanism of mir.
Identify concrete features for analyzing traces of these events.
Implement those features.
Extend the main mir code to support replaying recorded events in a way that maximizes the insights into the inner workings of mir and protocols built on top of it.
Expected Outcomes
The mircat analysis tool that can:
Display the event trace in an insightful manner (basic functionality already present, the focus here is on "insightful").
Simulate the occurrence of these events to a mir node (rudimentary implementation present, improvement required).
Create / edit artificial event traces to test the node's behavior in specific scenarios, expecially in presence of a malicious adversary.
Skills
Required:
Experience in programming in the Go programming language
Basic knowledge of the usage of the Git version control system.
Understanding of distributed systems theory and consensus protocols
projectBig task that can be addressed as a small stand-alone projectSDKDebugging and analytics tools, e.g., creation / inspection of event logs, profiling...
Background: The Mir Project
The Mir project aims at developing a production-quality implementation of:
This implementation (in the Go language) will be available as the open-source
mir
library.Our aim is integration with the Eudico Filecoin client,
specifically its ordering service.
Being framed as a library, however, Mir's goal is also to serve as a general-purpose high-performance BFT component of other projects.
The first fault-tolerant consensus protocol implemented within
mir
is a variant of ISS (next generation of the MirBFT consensus protocol, that appeared at EuroSys22 as State Machine Replication Scalability Made Simple). However, the framework is general enough to facilitate the implementation of other distributed protocols in the future. The framework is highly modular, allowing the developer of the distributed protocol to focus on the protocol logic, without having to care about network transport, storage, and cryptographic primitives, etc.At the same time, the high modularity facilitates creating custom protocol implementations tailored to the consumer's needs. Mir hopes to be a building block of a next generation of distributed systems.
The
mir
library is still in development. This project is one of the ways to improve it by adding support for easily analyzing and testing protocols developed withmir
.The
mircat
Diagnostics ToolPart of the
mir
framework are tools that facilitate implementation and diagnostics of distributed protocols. The main such tool,mircat
, should be able to record traces of events occurring at a node in the distributed network, analyze those traces, edit them (or even construct new artificial ones), and replay them to a node in debug mode. Such a tool greatly improves the development, testing and debugging of protocols built usingmir
.Currently,
mircat
only has very rudimentary features: printing a list of events, potentially applying a simple filter on it. The goal of this project is to extendmircat
by the above-mentioned features.To implement the missing features of
mircat
, it is necessary need to:mir
.mir
code to support replaying recorded events in a way that maximizes the insights into the inner workings ofmir
and protocols built on top of it.Expected Outcomes
The
mircat
analysis tool that can:mir
node (rudimentary implementation present, improvement required).Skills
Required:
Contact Info
The text was updated successfully, but these errors were encountered: