Compilation Guide
NOTE: To create a static release, use make release-static
instead of make
in the last step. (Currently not supported on CentOS 7 and 8).
Ubuntu 16/18/20
-
Update system and install prerequisites.
sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get install -y git
-
Install other dependencies.
sudo apt-get install -y g++ pkg-config libtool-bin autoconf automake build-essential cmake pkg-config pcsc-tools pcscd libpcsclite1 libudev-dev libhidapi-dev libzmq3-dev libunbound-dev libboost-all-dev libusb-1.0-0-dev libusb-dev libssl-dev libsodium-dev libcurl4-openssl-dev libminiupnpc-dev libunwind8-dev liblzma-dev libreadline6-dev libldns-dev libexpat1-dev libgtest-dev doxygen graphviz libhidapi-libusb0 libnorm-dev libpgm-dev
-
Clone the repository.
cd ~/ && git clone --recursive https://github.com/xolentum/xolentum -b release
-
Start the build process.
cd xolentum && make
Debian 9/10
-
Update system and install prerequisites.
sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get install -y git
-
Install other dependencies.
sudo apt install -y build-essential cmake pkg-config libboost-all-dev libssl-dev libzmq3-dev libunbound-dev libsodium-dev libunwind8-dev liblzma-dev libreadline6-dev libldns-dev libexpat1-dev doxygen graphviz libpgm-dev qttools5-dev-tools libhidapi-dev libusb-dev libprotobuf-dev protobuf-compiler
-
On Debian
libgtest-dev
only includes sources and headers. You must build the library binary manually.
sudo apt-get install -y libgtest-dev && cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv lib/* /usr/lib/
-
Clone the repository.
cd ~/ && git clone --recursive https://github.com/xolentum/xolentum -b release
-
Start the build process.
cd xolentum && make
CentOS 7
-
Update system and install prerequisites.
sudo yum update -y && sudo yum install -y wget git epel-release centos-release-scl
-
Install other dependencies.
sudo yum install -y devtoolset-8 cmake cmake3 pkgconfig openssl-devel zeromq-devel openpgm-devel unbound-devel libsodium-devel libunwind-devel xz-devel readline-devel ldns-devel expat-devel gtest-devel doxygen graphviz qt5-linguist hidapi-devel libusb-devel protobuf-devel protobuf-compiler
-
Enable devtoolset-8 for newer version of GCC required for compilation.
sudo scl enable devtoolset-8 bash
-
Since we need a higher version of boost than available through the CentOS 7 package manager, we will compile it from source.
wget https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.gz tar xzvf boost_1_68_0.tar.gz && cd boost_1_68_0 ./bootstrap.sh --prefix=/usr/local/ ./b2 -j$(nproc) -d0 install --with-system --with-filesystem --with-thread --with-date_time --with-chrono --with-regex --with-serialization --with-program_options --with-locale
-
Clone the repository.
cd ~/ && git clone --recursive https://github.com/xolentum/xolentum -b release
-
Start the build process.
cd xolentum && cmake3 . && make
The binaries will be in
/bin
directory when complete.
CentOS 8
-
Update system and install prerequisites.
sudo dnf update -y && sudo dnf install -y git epel-release
-
Install the
OKay
repository needed for dependencies.sudo dnf install -y http://repo.okay.com.mx/centos/8/x86_64/release/okay-release-1-2.el8.noarch.rpm
-
Enable the
PowerTools
repository needed for some dependencies.sudo sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/CentOS-PowerTools.repo
-
Install all other dependencies.
sudo dnf install -y python3 make cmake gcc gcc-c++ pkgconfig boost-devel boost-static openssl-devel zeromq-devel openpgm-devel unbound-devel libsodium-devel libunwind-devel xz-devel readline-devel ldns-devel expat-devel gtest-devel doxygen graphviz qt5-linguist hidapi-devel libusb-devel protobuf-devel protobuf-compiler
-
Clone the repository.
cd ~/ && git clone --recursive https://github.com/xolentum/xolentum -b release
-
Start the build process.
cd xolentum && make
Arch Linux
-
Install all requisites and dependencies.
sudo pacman -Su --needed -y base-devel cmake boost openssl zeromq libpgm unbound libsodium libunwind xz readline ldns expat gtest doxygen graphviz qt5-tools hidapi libusb protobuf
-
Clone the repository.
cd ~/ && git clone --recursive https://github.com/xolentum/xolentum -b release
-
Start the build process.
cd xolentum && make
Windows
- Download and install the MSYS2 installer, either the 64-bit or the 32-bit package, depending on your system.
-
Open the MSYS shell via the
MSYS2 Shell
shortcut. -
Update packages using pacman.
pacman -Syu
-
Exit the MSYS shell using
Alt+F4
-
Edit the properties for the
MSYS2 Shell
shortcut changing "msys2_shell.bat" to "msys2_shell.cmd -mingw64" for 64-bit builds or "msys2_shell.cmd -mingw32" for 32-bit builds - Restart MSYS shell via modified shortcut and update packages again using pacman.
pacman -Syu
-
Install the requesite dependencies.
- For 64-bit OS:
pacman -S mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-hidapi
- For 32-bit OS:
pacman -S mingw-w64-i686-toolchain make mingw-w64-i686-cmake mingw-w64-i686-boost mingw-w64-i686-openssl mingw-w64-i686-zeromq mingw-w64-i686-libsodium mingw-w64-i686-hidapi
- For 64-bit OS:
- Open the MingW shell via MinGW-w64-Win64 Shell shortcut on 64-bit Windows or MinGW-w64-Win64 Shell shortcut on 32-bit Windows. Note that if you are running 64-bit Windows, you will have both 64-bit and 32-bit MinGW shells.
- Clone the repository.
git clone --recursive https://github.com/xolentum/xolentum -b release
-
Start the build process.
- For 64-bit OS:
make-win64
- For 32-bit OS:
make-win32
- For 64-bit OS:
Docker
-
Pull the official images.
docker pull xolentum/xolentum
-
Create network bridge so that containers can communicate.
docker network create --driver=bridge xolentum
-
Start the daemon.
docker run -d --rm --name xolentum-daemon \ --net=xolentum \ -v daemon:/data \ -p 13580:13580 \ xolentum/xolentum \ xolentumd \ --data-dir=/data \ --confirm-external-bind \ --non-interactive
-
Start the CLI wallet.
docker run --rm -it --name xolentum-wallet \ --net=xolentum \ -v wallet:/data \ xolentum \ xolentum-wallet-cli \ --trusted-daemon \ --daemon-address xolentum-daemon:13580