16 releases

0.2.1 Sep 9, 2020
0.2.0 Sep 2, 2020
0.2.0-alpha.13 May 11, 2020
0.2.0-alpha.11 Apr 29, 2020
0.1.0 Oct 30, 2019

#172 in Algorithms

Download history 67/week @ 2020-05-28 41/week @ 2020-06-04 7/week @ 2020-06-11 26/week @ 2020-06-18 14/week @ 2020-06-25 305/week @ 2020-07-02 330/week @ 2020-07-09 193/week @ 2020-07-16 183/week @ 2020-07-23 150/week @ 2020-07-30 248/week @ 2020-08-06 156/week @ 2020-08-13 47/week @ 2020-08-20 95/week @ 2020-08-27 170/week @ 2020-09-03 187/week @ 2020-09-10

640 downloads per month
Used in muta-apm

MIT license

225KB
5.5K SLoC

Overlord

TravisCI License Minimum rustc version

Overlord consensus protocol.

Intruduction

Overlord is a new consensus protocol that decouple the consensus process from the execution process.

Detaild intruduction: 中文|English

Usage

From cargo

[dependencies]
overlord = "0.2"

Overlord takes turns to become the leader by default. If you want to choose a leader randomly, add the random_leader feature to the dependency as below.

[dependencies]
overlord = { version = "0.2", features = ["random_leader"] }

Example

We simulated a salon scene to show an example of using overlord.

A distributed system for reaching a consensus on the content of a speech is realized by simulating the dialogue between speakers through the communication between threads.

Run the example by cargo run --example salon, and the system will output the agreed speech content in turn. Click here to see the detail.

It will check whether different speakers agree on the content of the speech.

Projects using Overlord

  • Muta, a high-performance blockchain framework.
  • Huobi-chain, the next generation high performance public chain for financial infrastructure.

Dependencies

~6MB
~118K SLoC