#consensus #bft #malachite #discovery #engine #protocols #networking

informalsystems-malachitebft-discovery

Discovery protocol for the Malachite BFT consensus engine

1 unstable release

new 0.0.1 Dec 19, 2024

#6 in #malachite

Apache-2.0

110KB
2.5K SLoC

Malachite

Flexible BFT Consensus Engine in Rust
Includes state-of-the-art library implementing the Tendermint consensus algorithm


Build Status Quint tests MBT tests Code coverage Apache 2.0 Licensed Rust Stable Rust 1.82+ Quint 0.18

Telegram Chat

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.

Bundled with Malachite comes a state-of-the-art library implementing the Tendermint consensus algorithm. Tendermint is a BFT consensus algorithm that is optimistically responsive and therefore exhibits high-performance. Additionally, this algorithm found adoption in many decentralized systems through its implementation in Go as part of CometBFT. CometBFT has been battle-tested for years, and many of the lessons and experiences of maintaining CometBFT inspired key design decisions that we took in Malachite.

[!IMPORTANT] Malachite is pre-alpha software and still under heavy development. At this stage, it is not meant for use in production. The software is provided "as is" and has not been externally audited, use at your own risk.

Overview

Repository

The repository is split in three areas, each covering one of the important areas of this project:

  1. code: Comprises the Rust implementation of the Tendermint consensus algorithm, split across multiple Rust crates.
  2. docs: Comprises Architectural Decision Records (ADRs) and other documentation, such as the 2018 paper describing the core consensus algorithm.
  3. specs: English and Quint specifications.

Building with Malachite

As a guiding point to understand how to use Malachite, please read ARCHITECTURE.md.

You can also check out the examples for a more in-depth experience.

Contributing

If you would like to contribute to the Malachite open-source codebase, please see CONTRIBUTING.md. We invite all contributors.

Requirements

Join Us

Malachite is developed by Informal Systems.

If you'd like to work full-time on challenging problems of and distributed systems and decentralization, we're always looking for talented people to join!

License

Copyright © 2024 Informal Systems Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use the files in this repository except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Dependencies

~17–54MB
~898K SLoC