Skip to content

ABBA Consensus is a high-performance, provably secure, EVM-compatible protocol that achieves single-block finality. It powers the SKL Gas-Free Network and the FAIR MEV-Free Network. Built on asynchronous Byzantine Binary Agreement (ABBA), BLS signatures, and threshold encryption, the implementation is available on GitHub. Ask ChatGPT

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

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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) 

Testing

SKALE Consensus includes comprehensive test suites covering unit tests, integration tests, and end-to-end scenarios.

Quick Test Run

After building, you can run a basic test:

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

Running Specific Tests

Tests are organized with a multi-dimensional tagging system:

# Run RLP unit tests that only test correctness (ignores safety and performance tests)
./build/consensust [rlp][unit][correctness]

# Run all crypto tests
./build/consensust [crypto]

# Run performance tests
./build/consensust [performance]

Multi-Node Testing

For more detailed testing scenarios, including 4-node and 16-node tests with SGX simulation, see our comprehensive Testing Guide.

The testing guide covers:

  • Detailed test organization and tagging
  • SGX simulation setup with Docker
  • Performance testing procedures

Contributing

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

Discord

License

License

Copyright (C) 2018-present SKALE Labs

About

ABBA Consensus is a high-performance, provably secure, EVM-compatible protocol that achieves single-block finality. It powers the SKL Gas-Free Network and the FAIR MEV-Free Network. Built on asynchronous Byzantine Binary Agreement (ABBA), BLS signatures, and threshold encryption, the implementation is available on GitHub. Ask ChatGPT

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 12