Displaying 1 to 18 from 18 results

Atomix - Scalable, fault-tolerant distributed systems protocols and primitives for the JVM

  •    Java

Atomix is an event-driven framework for coordinating fault-tolerant distributed systems built on the Raft consensus algorithm. It provides the building blocks that solve many common distributed systems problems including group membership, leader election, distributed concurrency control, partitioning, and replication.

awesome-consensus - Awesome list for Paxos and friends


A curated selection of artisanal consensus algorithms and hand-crafted distributed lock services.

Copycat - A novel implementation of the Raft consensus algorithm

  •    Java

Copycat is a fault-tolerant state machine replication framework. Built on the Raft consensus algorithm, it handles replication and persistence and enforces strict ordering of inputs and outputs, allowing developers to focus on single-threaded application logic. Its event-driven model allows for efficient client communication with replicated state machines, from simple key-value stores to wait-free locks and leader elections. You supply the state machine and Copycat takes care of the rest, making it easy to build robust, safe distributed systems.

exonum - Exonum core repository

  •    Rust

Exonum is an extensible open-source framework for creating blockchain applications. Exonum can be used to create cryptographically powered distributed ledgers in virtually any problem domain, including FinTech, GovTech, and LegalTech. The Exonum framework is oriented towards creating permissioned blockchains, that is, blockchains with the known set of blockchain infrastructure providers. See individual projects' readme for the details.

Raft - C implementation of the Raft consensus protocol

  •    C

Fully asynchronous C implementation of the Raft consensus protocol. The library has modular design: its core part implements only the core Raft algorithm logic, in a fully platform independent way. On top of that, a pluggable interface defines the I/O implementation for networking (send/receive RPC messages) and disk persistence (store log entries and snapshots).

distributed-consensus-reading-list - List of academic papers on distributed consensus


This markdown file contains a list of academic papers (and other works) in the field of distributed consensus. Many of the papers listed below fit into more than one section. However, for simplicity, each paper is listed only in the most relevant section. Where possible, open access links for each paper have been provided. Contributions are welcome. This section lists theoretical results relating to distributed consensus.

ibm_blockchain - A mini blockchain application in pure Python

  •    Python

The application should be up and running at http://localhost:5000. To play around by spinning off multiple custom nodes, use the add_nodes/ endpoint to register a new node. To update the node with which the application syncs, change CONNECTED_NODE_ADDRESS field in the views.py file.

hbbft - Practical implementation of the Honey Badger Byzantine Fault Tolerance consensus algorithm written in Go

  •    Go

Practical implementation of the Honey Badger Byzantine Fault Tolerance consensus algorithm written in Go. Uses reedsolomon erasure encoding to disseminate an ecrypted set of transactions.

awesome-raft - Raft is gaining popularity in distributed systems as a simple and powerful consensus algorithm


A curated resources of raft consensus algorithm and its friends. Beside Raft, there are some other consensus algorithms that are frequently discussed.

skinny - The Skinny Distributed Lock Service

  •    Go

Skinny comes with few code dependencies. A Skinny instance is started by running skinnyd, preferably with the --config option.

bully-algorithm - [Go] - Bully algorithm visualization & implementation written in Golang.

  •    Go

This repository contains source code of an implementation of the bully algorithm written in Go and a small browser visualization tool. This has been made for learning purposes about distributed algorithms, Bully algorithm being the simplest leader election algorithm to implement.

nanochain - A minimal viable blockchain

  •    Haskell

A minimal viable blockchain to demonstrate simple blockchain principles. Otherwise, the program with fail with addMembership: failed (Unknown error -1) error from the Multicast module when attempting to add the node to the multicast group.

UNetwork - U Network Public Blockchain

  •    Go

UNetwork is a decentralized distributed network protocol based on blockchain technology and is implemented in Golang. Through peer-to-peer network, UNetwork can be used to digitize assets and provide financial service, including asset registration, issuance, transfer, etc. Clone the UNetwork repository into the appropriate $GOPATH/src directory.

erlang-hbbft - Erlang implementation of HoneyBadgerBFT

  •    Erlang

Erlang implementation of HoneyBadgerBFT's protocols. The protocols are implemented in a somewhat unconventional way, they are implemented as pure data structures that take inputs (messages) and (sometimes) return outputs or results. They have no notion themselves of networking, time or actor identity (actors are simply numbered 0..N-1).

python_blockchain_app - Tutorial for implementing a mini blockchain application implemented in Python from scratch

  •    Python

A simple tutorial for developing a blockchain application from scratch in Python. The application should be up and running at http://localhost:5000.

dp - Distributed Programming Abstractions

  •    Go

A pure Go implementation of Introduction to Reliable and Secure Distributed Programming abstractions. WARNING: The API is not stable yet and can change without notice.

avalanche - A educational / research implementation of the Avalanche consensus algorithm written in Rust

  •    Rust

A research implementation of the Avalanche consensus written in Rust. README will be updated soon..

We have large collection of open source products. Follow the tags from Tag Cloud >>

Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.