Updated for OpenBSD 7.8
This guide describes how to build bitcoind, command-line utilities, and GUI on OpenBSD.
Run the following as root to install the base dependencies for building.
pkg_add git cmake boost libeventSQLite is required for the wallet:
pkg_add sqlite3To build Bitcoin Core without the wallet, use -DENABLE_WALLET=OFF.
Cap'n Proto is needed for IPC functionality (see multiprocess.md):
pkg_add capnprotoCompile with -DENABLE_IPC=OFF if you do not need IPC functionality.
See dependencies.md for a complete overview.
Clone the Bitcoin Core repository to a directory. All build scripts and commands will run from this directory.
git clone https://github.com/bitcoin/bitcoin.gitBitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install
the necessary parts of Qt, the libqrencode and pass -DBUILD_GUI=ON. Skip if you don't intend to use the GUI.
pkg_add qt6-qtbase qt6-qttoolsThe GUI will be able to encode addresses in QR codes unless this feature is explicitly disabled. To install libqrencode, run:
pkg_add libqrencodeOtherwise, if you don't need QR encoding support, use the -DWITH_QRENCODE=OFF option to disable this feature in order to compile the GUI.
Bitcoin Core can provide notifications via ZeroMQ. If the package is installed, support will be compiled in.
pkg_add zeromqThere is an included test suite that is useful for testing code changes when developing. To run the test suite (recommended), you will need to have Python 3 installed:
pkg_add python py3-zmq # Select the newest version of the python package if necessary.There are many ways to configure Bitcoin Core, here are a few common examples:
This enables wallet support and the GUI, assuming SQLite and Qt 6 are installed.
cmake -B build -DBUILD_GUI=ONRun cmake -B build -LH to see the full list of available options.
cmake --build build # Append "-j N" for N parallel jobs.
ctest --test-dir build # Append "-j N" for N parallel tests.If the build runs into out-of-memory errors, the instructions in this section might help.
The standard ulimit restrictions in OpenBSD are very strict:
data(kbytes) 1572864This is, unfortunately, in some cases not enough to compile some .cpp files in the project,
(see issue #6658).
If your user is in the staff group the limit can be raised with:
ulimit -d 3000000The change will only affect the current shell and processes spawned by it. To
make the change system-wide, change datasize-cur and datasize-max in
/etc/login.conf, and reboot.