Skip to content
Vijay edited this page Feb 13, 2016 · 33 revisions

Zeno, For the Distributed Systems Community

Zeno is an implementation of a consensus protocol that tries to handle the problem of byzantine failures in distributed systems in an elegant manner

Introduction

This tutorial assumes an intermediate level knowledge of Python, basics of distributed systems, concurrency but not much else. The goal is to give you an overview of the consensus protocol technology that helps you overcome the existing concurrency problems in a distributed system. We recommend going through Getting Started

Contributors

This is a collaborative document written by Evernym team. Have something to add? See a typo? Fork and issue a pull request on Github. Any and all contributions are welcome.

Our Solution

Many Byzantine fault tolerant replication protocols are proposed to solve the problem of byzantine faults and failures. "Practical Byzantine Fault Tolerance" (PBFT) algorithm is one such example. PBFT provides high-performance Byzantine state machine replication by processing thousands of requests per second with sub-millisecond latency. But the performance of these BFT protocols degrades marginally when a fault or a failure occurs.

For even the best ones Prime, performance degradation is at least 78%. We have implemented a new approach ABFT (Async Byzantine Fault Tolerant Protocol) to solve above issue. ABFT provides high throughput even in faulty systems, and ABFT protocols performance degradation is as low as 3% (Source: “RBFT: Redundant Byzantine Fault Tolerance”)

In ABFT, On the nodes, we execute multiple instances of the same BFT protocol. All the instances order the requests, but only the requests ordered by one of the instances, called the master instance, are actually executed. To see the Protocol in action, you can go through this tutorial.

Clone this wiki locally