Build Nwaku from Source
This guide provides detailed steps to build a nwaku
node from the source code to access the latest development version or a specific commit or release of nwaku
. For your convenience, you may want to download a pre-compiled binary instead.
- A minimum of 2GB of RAM is required to build
nwaku
. - Nwaku is available for Linux and macOS, with experimental Windows support.
Prerequisites
To build nwaku
, you need the standard developer tools, including a C compiler, GNU Make, Bash, Git, Rustup, and PostgreSQL client library.
- Debian and Ubuntu
- Fedora
- Arch Linux
- MacOS (Homebrew)
sudo apt-get install build-essential git libpq5
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
sudo dnf install @development-tools git libpq-devel
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Using your favoured AUR helper
sudo [AUR HELPER] -S base-devel git postgresql-libs
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
brew install cmake git postgresql@15 rustup-init
# Create a symbolic link to libpq.5.dylib in /usr/local/lib/
sudo mkdir -p /usr/local/lib/
sudo ln -s /opt/homebrew/opt/postgresql@15/lib/libpq.5.dylib /usr/local/lib/libpq.dylib
Clone the repository
Get the source code from the GitHub repository. The default branch is master
, the release candidate for major updates.
git clone https://github.com/waku-org/nwaku
cd nwaku
You can use git tag -l
to check specific version tags.
Build the binary
Build the nwaku
binary:
make wakunode2
The first make
invocation updates to all Git submodules. After each git pull
, run make update
to keep the submodules updated in the future.
make update
Run the binary
Nwaku will create the wakunode2
binary in the ./build/
directory.
# Run with default configuration
./build/wakunode2
# See available command line options
./build/wakunode2 --help
To learn more about running nwaku, have a look at these guides:
- Run a Nwaku Node
- Run Nwaku in a Docker Container
- Run Nwaku with Docker Compose
- Node Configuration Methods
Run test suite
Run the tests for Waku:
make test
You have successfully built the nwaku
binary from the source code. Have a look at the Node Configuration Examples guide to learn how to configure nwaku
for different use cases.