Fantom-foundation / lachesis-rs

Lachesis BFT consensus for permission-less networks, in Rust
MIT License
34 stars 5 forks source link

lachesis-rs

Build Status

Lachesis BFT consensus for permission-less networks, in Rust.

RFCs

https://github.com/Fantom-foundation/fantom-rfcs

Architecture

Each layer will have 1 or more library crates, for shared functionality and traits. Square borders refer to crates, rounded borders refers to logical distinctions, with a shared interface.

Crate relationship

Developer guide

Install the latest version of Rust. We tend to use nightly versions. CLI tool for installing Rust. Also install LLVM-7 development package.

We use rust-clippy linters to improve code quality.

There are plenty of IDEs and other Rust development tools to consider.

Step-by-step guide

# Install Rust (nightly)
$ curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly
# Install cargo-make (cross-platform feature-rich reimplementation of Make)
$ cargo install --force cargo-make
# Install rustfmt (Rust formatter)
$ rustup component add rustfmt
# Install llvm-7 development package.
# NB: this command is for Ubuntu 18.04, adjust it according to your system
$ apt install llvm-7-dev
# Clone this repo
$ git clone https://github.com/Fantom-foundation/lachesis-rs && cd lachesis-rs
# Run tests
$ cargo test
# Format, build and test
$ cargo make