Skip to content

Commit

Permalink
more; main readme
Browse files Browse the repository at this point in the history
  • Loading branch information
adizere committed Dec 19, 2024
1 parent f8411f1 commit f924dda
Showing 1 changed file with 28 additions and 6 deletions.
34 changes: 28 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,35 @@

## About

Malachite is a Byzantine-fault tolerant (BFT) consensus library implemented in Rust.
The goal is to enable developers to decentralize whatever the future may bring—sequencers, social networks, Layer 1s, etc.
Malachite is a Byzantine-fault tolerant (BFT) consensus engine implemented in Rust.

Bundled with Malachite comes a state-of-the-art implementation of the Tendermint consensus algorithm.
Tendermint is a BFT consensus algorithm that is [optimistically responsive][responsive] and therefore exhibits high-performance.
Additionally, this algorithm found adoption in many decentralized systems through its implementation in Go as part of [CometBFT](https://github.com/cometbft/cometbft/).
CometBFT has been battle-tested for years, and many of the lessons and experiences of maintaining CometBFT inspired key [design decisions][announcement] that we took in Malachite.
### Goals

The goal is for Malachite to enable developers to decentralize whatever the future may bring—sequencers, social networks, Layer 1s, etc.
Therefore, Malachite addresses a particular void in the market: The lack of flexible and secure distributed systems foundations, such as BFT consensus libraries.

### Features

**Tendermint library.**
Bundled with Malachite comes a state-of-the-art implementation of the Tendermint BFT consensus algorithm.
Tendermint is an [optimistically responsive][responsive] consensus algorithm, and therefore exhibits high-performance, and has found adoption in many decentralized systems through its implementation in Go as part of [CometBFT](https://github.com/cometbft/cometbft/).


**Design.**
Key [design decisions][announcement] in Malachite are heavily inspired from lessons and experiences of maintaining CometBFT throughout the years.
We addressed in Malachite numerous points of technical debt in the design of consensus engines, to obtain a lean, flexible, and reliable solution.

**Reliability and Performance.**
Parts of Malachite were co-designed with their formal specification and model checking, notably for the Tendermint algorithm, which improved the confidence and reliability of this core library.

Early experiments with Malachite showed average finalization latency of 780 ms at a scale of 100 validators with 1MB blocks.
Depending on scale, Malachite can clear up to 2.5 blocks per second; or can finalize up to 13.5 MB/s -- or around 50,000 transactions per second (TPS).

**Use-cases.**
Malachite originated as a consensus core for use in the Starknet L2 decentralized sequencer.
Malachite is also being used for Farcaster’s newest backend layer called [Snapchain](https://github.com/farcasterxyz/snapchain-v0/).
A numbers of others are building and exploring in private.
Please reach-out if interested, we would love to speak with more teams.

> [!IMPORTANT]
> Malachite is pre-alpha software and still under heavy development.
Expand Down

0 comments on commit f924dda

Please sign in to comment.