- Ubuntu 22.04
- GCC 11.4.0
- CMake >=3.14.0
sudo apt-get update
sudo apt-get install -y zip unzip git cmake libtool make autoconf g++-11 zlib1g-dev libgoogle-perftools-dev g++
Please ensure that your internet connection is active and reliable during building process.
git clone https://github.com/iDC-NEU/mass_bft.git
cd mass_bft
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/bin/gcc-11 -DCMAKE_CXX_COMPILER=/usr/bin/g++-11 -B build
cmake --build build -j
-
Uncomment line 46 in
include/peer/core/module_coordinator.h
to enable theSerialCoordinator
, which uses the serial execution engine. -
Uncomment line 44 in
include/peer/core/module_coordinator.h
to activate theCoordinatorImpl
, which implements the Aria concurrency control engine.
-
Uncomment lines 61 and 66 in
include/peer/core/module_factory.h
to switch to theGeoBFT
consensus. -
Uncomment lines 61 and 68 in
include/peer/core/module_factory.h
to use theSteward
consensus. -
Uncomment lines 61 and 69 in
include/peer/core/module_factory.h
to enable the modified HierarchicalISS
consensus. -
Uncomment lines 61 and 65 in
include/peer/core/module_factory.h
to use theBaseline
consensus. -
Uncomment lines 62 in
include/peer/core/module_factory.h
to use thebijective sending approach
.
The modified version of the BFT-SMART source code is available here, and the precompiled binary is here.
Please place BFT-SMART and MassBFT in the same directory
cd ..
wget https://github.com/iDC-NEU/mass_bft/releases/download/dep/nc_bft.zip
unzip -q -o nc_bft.zip
root@iZ6weg2bv7ohyev6mlnzdsZ:~# tree -L 1
.
├── mass_bft
├── nc_bft
└── nc_bft.zip
The HotStuff engine has been designed to provide efficient consensus through a modular architecture. This engine is compiled into a shared object (SO) file. You can find the modifications related to the HotStuff engine in the hotstuff branch of our repository.
The modified HotStuff source code can be downloaded from the release page:
wget https://github.com/iDC-NEU/mass_bft/releases/download/dep/hotstuff.zip
unzip -q -o hotstuff.zip