Running the very core of SKL network, SKALE BFT consensus is universal, modern, modular, high-performance, asynchronous, provably-secure, agent-based Proof-of-Stake blockchain consensus engine in C++ 17. Includes provably secure embedded Oracle. Used by SKALE elastic blockchains. Easy and flexible enough to implement your own blockchain or smart contract platform. BLS signatures and Binary Asynchronous Consensus are main building blocks.
Skale-consensus is an implementation of SKALE provable consensus spec as described here https://docs.skale.network/technology/consensus-spec
Key features of of SKALE consensus
Read the spec for more exciting features.
The consensus is under active improvement and research.
SKALE consensus has been built and tested on Ubuntu 18.04 and later.
The preferred build and execution environment is currenty Ubuntu 22.04.
Ensure that the required packages are installed by executing:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install -yq libprocps-dev gcc-9 g++-9 valgrind gawk sed libffi-dev ccache \
libgoogle-perftools-dev flex bison yasm texinfo autotools-dev automake \
python3 python3-pip cmake libtool build-essential pkg-config autoconf wget \
git libargtable2-dev libmicrohttpd-dev libhiredis-dev redis-server openssl \
libssl-dev doxygen libgcrypt20-dev
Steps to build from source:
# clone repo
git clone --recurse-submodules https://github.com/skalenetwork/skale-consensus.git
# build dependencies
cd scripts && ./build_deps.sh
# Configure the Cmake build.
cd .. && cmake . -Bbuild
# now run hunter bug workaround
mkdir -p "${HOME}"/.hunter/_Base/Download/crc32c/1.0.5/dc7fa8c/ && wget -O "${HOME}"/.hunter/_Base/Download/crc32c/1.0.5/dc7fa8c/hunter-1.0.5.tar.gz https://github.com/hunter-packages/crc32c/archive/refs/tags/hunter-1.0.5.tar.gz
# now build all targets using all available CPU cores
cmake --build build -- -j$(nproc)
Navigate to the testing directories and run ./consensusd .
The SKALE consensus is still in active development and contains bugs. This software should be regarded as alpha software. Development is still subject to competing the specification, security hardening, further testing, and breaking changes. This consensus engine has not yet been reviewed or audited for security. Please see SECURITY.md for reporting policies.
If you have any questions please ask our development community on Discord.
Copyright (C) 2018-present SKALE Labs