GithubHelp home page GithubHelp logo

student_17_bftcosi's Introduction

student_17_bftcosi

Consensus omniledger-like

Description

The purpose of this work is to implement a robust and scalable consensus algorithm using CoSi protocol and handling some exceptions. The CoSi tree is a three level tree to make a compromise between the two-level tree, making the root-node vulnerable to DoS, and a more than three level tree, slowing the algorithm because of the RTT between the root node and the leaves.

The tree is composed of a leader (root-node), and some groups of equal size, each having a sub-leader (second level nodes) and members (leaves). The groups composition are defined by the leader.

We want to handle non-responding nodes, no matter where they are in the tree. If a leaf is failing, then it is ignored in the CoSi commitment. If a sub-leader is non-responding, then the leader (root node) recreates the group designing another sub-leader from the group members. And finally, if the leader is failing, the protocol restarts using another leader.

More complex adversaries (modifying messages, non-responding at challenge time, etc.) are not yet handled. The purpose of the project is to test scalability and robustness of this service on a testbed and to have a well-documented reusable code for it.

References

student_17_bftcosi's People

Contributors

ineiti avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.