Storage server for Oxen Service Nodes
Pre-built releases (with system service files) are available for Ubuntu/Debian on https://deb.oxen.io and are recommended for simple deployment and updates on those distributions.
The default build compiles for the current system and requires the following be installed (including headers/dev packages for the libraries):
Requirements:
- a C++20 compiler
- cmake >= 3.18
- pkg-config (any version)
These are used from the system when a new enough version is installed, and otherwise downloaded and built statically as part of the build:
- OpenSSL >= 3
- libsodium >= 1.0.18
- libcurl >= 7.68
- libevent >= 2.1
- libzmq >= 4.3
- sqlite >= 3.35.5
- gnutls and ngtcp2 (required by oxen-libquic)
These are used from the system if found, and otherwise built from the bundled submodules:
- oxen-libquic >= 1.9
- oxen-mq >= 1.3
- oxen-encoding >= 1.5
- nlohmann-json >= 3.11
- CLI11 >= 2.2
jemalloc is linked against when it is found; it isn't required, but is recommended for reduced long-term memory use.
You can instruct the build to ignore system libraries entirely and download and build static
versions of everything by adding the -D BUILD_STATIC_DEPS=ON option to the cmake command below.
That additionally requires autoconf, automake, libtool and patch, and will result in a slower build
and a larger, slower binary, as is typical for static builds.
git submodule update --init --recursive
cmake -B build -S .. -D CMAKE_BUILD_TYPE=Release -G Ninja
cmake --build build --parallel
The build will produce a ./build/oxen-storage binary. You can run it with --help to
see supported run-time options.
Oxen Storage Server is a required component of an Oxen Service Node and needs to talk to a running
oxend in order to join the network. The program defaults are designed to work with a default
oxend, but for advanced configurations (e.g. to run on different ports) you may need to use other
options. Run the program with --help to see all available options.
See https://docs.oxen.io/ for additional details on setting up and running an Oxen Service Node.