Skip to content

If you like this project, please ⭐ it on GitHub!!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 fl

License

Notifications You must be signed in to change notification settings

skalenetwork/skale-consensus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SKALE Consensus: a Blockchain Consensus engine in C++

Discord Build and test skale-consensus

SKALE Consensus is an ultra-high-performance blockchain consensus engine written in C++.

Key Features of SKALE Consensus

  • Over 10,000 TPS
  • Byzantine fault tolerant — no block gaps, and stable performance even with up to 1/3 of nodes offline
  • Provably secure
  • Forkless
  • Single-block finality — blocks are immediately finalized upon commitment
  • Resilient to arbitrarily long network disruptions and delays through an asynchronous network model
  • Multiple block proposers per block — ensures protocol stability even when some proposers are offline
  • Secure against MEV and front-running — provably resistant to manipulation

Read the spec for more exciting features https://docs.skale.network/technology/consensus-spec

See visualization of live conseneus https://www.youtube.com/watch?v=0NGCSRjjPkk

Building from Source

The preferred build and execution environment is Ubuntu 22.04.

Later versions of Ubuntu may work, but they are not officially tested.

1. Install packages

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install -yq libprocps-dev gcc-11 g++-11 valgrind gawk sed libffi-dev ccache \
    libgoogle-perftools-dev 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

2. Clone the repo

git clone --recurse-submodules https://github.com/skalenetwork/skale-consensus.git

3. Build dependencies in debug mode

cd skale-consensus/deps && ./build.sh DEBUG=1

4. Configure the CMake build in Debug M ode.

cd .. && cmake . -Bbuild -DCMAKE_BUILD_TYPE=Debug

5. Build All Targets Using All Available CPU Code

cmake --build build -- -j$(nproc) 

Running tests

After the build completes, the build directory contains a test binary named consensust,
which can run a number of consensus tests.

The test subdirectories are located in the tests directory.
To run a specific test, navigate to its corresponding subdirectory.

Examples:

To run one node

cd test/onenode
sudo NO_ULIMIT_CHECK=1 TEST_TIME_S=180 TEST_TRANSACTIONS_PER_BLOCK=10 ../../build/consensust [consensus-basic]  

Contributing

If you have any questions please ask our development community on Discord.

Discord

License

License

Copyright (C) 2018-present SKALE Labs

About

If you like this project, please ⭐ it on GitHub!!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 fl

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages