Git Product home page Git Product logo

cleisthenes's Introduction

Cleisthenes License Language Coverage Status Build Status

Cleisthenes is HBBFT(Honey Badger Byzantine Fault Tolerance) consensus library adaptable to any application.

Documentation

More detail of each component is documented here

  • HoneyBadgerBFT Overview [KO / EN]
  • Reliable Broadcast (RBC) [KO / EN]
  • Byzantine Binary Agreement (BBA) [KO / EN]
  • Threshold Encryption (TE) [KO / EN]

Architecture

Logical View

HoneyBadger (HB) receives transaction from Application and queuing them into its own buffer, HB also manages consensus epoch which helps to distinguish every consensus. Everytime new epoch starts, HB creates batch with its own transactions, then sends it to the ACS to consensus this batch and other nodes' batch.

Asynchronous Common Set (ACS) is main API of Honey Badger BFT where agreement takes place. ACS uses RBC and BBA to consensus its own node batch as well as other nodes' batch who joined to same network.

Reliable Broadcast (RBC) distribute single node's batch to the rest of the nodes in the network. The result of RBC is set of batches of all nodes in the network. RBC guarantees that every node gets the same output, event if the sender or other nodes try to sending different information to different nodes.

Byzantine Binary Agreement (BBA) determines whether or not a batch is included in the set of batches, based on a composite of votes from all nodes in the network. BBA is completed once more than 2/3 of the participating nodes agree on whether to include the batch in the set of batches.

Module View

Contribution

Contribution Guide CONTRIBUTION

CLA Hub

To get started, sign the Contributor License Agreement.

cleisthenes's People

Contributors

agwab avatar boohyunsik avatar gunhee5719 avatar hihiboss avatar hyolin97 avatar junbeomlee avatar zerofruit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cleisthenes's Issues

[docs] PBFT documentations

Based on this youtube plz think about how to implement PBFT protocol.

Write DOCUMENTATION.md based on this page

Plz write down your name before doing your job

  • page 12 >> @zeroFruit
  • page 13 >> @zeroFruit
  • page 14
  • page 15
  • page 16
  • page 17
  • page 18
  • page 19
  • page 20
  • page 21
  • page 22
  • page 23
  • page 24
  • page 29
  • page 30

awesome pbft + swim resource

[docs] background description docs

Subject
docs for basic concept to understand this project

Detail
docs for about membership protocol, gossip style protocol, etc
I want to write about below subject for background
if anyone want to write docs about basic docs, plz comment in this issue.
Then i'll assign you to that item

[Proposal] issue policy

We had set a policy to put issue number on the branch name, but it is pretty ambiguous.
If I switch branch, I have to find issues in github.
so I propose to put issue number in commit message, like,
fix: blah blah [ISSUE-39]

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.