Bitcoin Server (bs) is built from libbitcoin-server and the four
libraries it depends on: libbitcoin-system, libbitcoin-database,
libbitcoin-network and libbitcoin-node. Bitcoin Explorer (bx) is built
from libbitcoin-explorer and the two libraries it depends on:
libbitcoin-system and libbitcoin-network. Each repository's install
script builds and installs its libraries in order, ending with its own.
1. Choosing a build#
| Platform | Build system | Script | Page |
|---|---|---|---|
| Linux | Autotools or CMake | install-gnu.sh, install-cmake.sh, install-presets.sh |
Linux |
| macOS | Autotools or CMake | install-gnu.sh, install-cmake.sh |
macOS |
| Windows | Visual Studio | build-msvc.cmd |
Windows |
The three build systems produce the same bs and bx. CMake and autotools are
equivalent on Linux and macOS. CMake presets select a configuration by
name.
2. Supported platforms#
| x64 | x86 (32-bit) | arm64 | arm32 | s390x (big-endian) | |
|---|---|---|---|---|---|
| Linux | ✔ CI | ✔ CI | ✔ CI | ✔ CI | ✔ CI |
| macOS | ✔ CI | Obsolete | ✔ CI | N/A | N/A |
| Windows | ✔ CI | ✔ CI | ✔ CI | Obsolete | N/A |
- ✔ CI: built and tested on every change.
- Obsolete: no current toolchain targets it.
- N/A: the platform does not exist on that architecture.
bx and the libraries build on every platform above. bs requires
64-bit. BSD and Cygwin are not tested.
Platform coverage compares platforms, compilers and build systems with Bitcoin Core.
3. Supported compilers#
| Platform | Compilers | Build systems |
|---|---|---|
| Linux | GCC, Clang | Autotools, CMake, CMake presets |
| macOS | Apple Clang (Xcode) | Autotools, CMake |
| Windows | MSVC v145 (Visual Studio 2026), Clang (clang-cl, with Visual Studio) | Visual Studio, MSBuild |
4. What every build needs#
- A C++20 compiler. The versions tested in CI are listed in Toolchains.
- Git, to fetch the libbitcoin sources.
Nothing else is required (see Build options).
5. Quick start#
On Linux or macOS, a static release build installed under
~/libbitcoin, optimized for the build machine:
$ git clone https://github.com/libbitcoin/libbitcoin-server
$ cd libbitcoin-server
$ ./builds/gnu/install-gnu.sh --prefix=$HOME/libbitcoin --build-config=release --build-link=static --hardware-optimized
The result is ~/libbitcoin/bin/bs. bx is built the same way from
libbitcoin-explorer:
$ git clone https://github.com/libbitcoin/libbitcoin-explorer
$ cd libbitcoin-explorer
$ ./builds/gnu/install-gnu.sh --prefix=$HOME/libbitcoin --build-config=release --build-link=static --hardware-optimized
The result is ~/libbitcoin/bin/bx. On Windows, see Windows.
6. Hardware options#
By default bs and bx are built for the baseline instruction set of its
architecture (AVX2 by default on Windows, which can be lowered). Options such as --enable-avx2 or --enable-shani make them
faster on CPUs that have those instructions, and unable to run on CPUs
that do not. --hardware-optimized enables all that the build machine
supports, so its builds run only on CPUs with the same extensions. Run
bs --hardware on the target machine to see what it supports, and see
Build options.
7. Pages#
- Linux, macOS and Windows: prerequisites and steps for each platform.
- Build options: the install script options and the build options shared by all three build systems.
- Toolchains: autotools, CMake and Visual Studio, and the compilers tested in CI.
- Platform coverage: platforms, compilers and build systems compared with Bitcoin Core.
- libbitcoin-build: the generator behind the build files, for maintainers.