115 lines
2.9 KiB
Markdown
115 lines
2.9 KiB
Markdown
---
|
|
title: 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](https://github.com/waku-org/nwaku/tags) instead.
|
|
|
|
:::info
|
|
- 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.
|
|
|
|
```mdx-code-block
|
|
import Tabs from '@theme/Tabs';
|
|
import TabItem from '@theme/TabItem';
|
|
```
|
|
|
|
<Tabs>
|
|
<TabItem value="debian" label="Debian and Ubuntu">
|
|
|
|
```bash
|
|
sudo apt-get install build-essential git libpq5
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="fedora" label="Fedora">
|
|
|
|
```bash
|
|
sudo dnf install @development-tools git libpq-devel
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="arch" label="Arch Linux">
|
|
|
|
```bash
|
|
# 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
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="mac" label="MacOS (Homebrew)">
|
|
|
|
```bash
|
|
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
|
|
```
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
## Clone the Repository
|
|
|
|
Get the source code from the GitHub repository. The default branch is `master`, the release candidate for major updates.
|
|
|
|
```bash
|
|
git clone https://github.com/waku-org/nwaku
|
|
cd nwaku
|
|
```
|
|
|
|
:::tip
|
|
You can use `git tag -l` to check specific version tags.
|
|
:::
|
|
|
|
## Build the Binary
|
|
|
|
Build the `nwaku` binary:
|
|
|
|
```bash
|
|
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.
|
|
|
|
```bash
|
|
make update
|
|
```
|
|
|
|
## Run the Binary
|
|
|
|
Nwaku will create the `wakunode2` binary in the `./build/` directory.
|
|
|
|
```bash
|
|
# 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](/guides/run-nwaku-node#run-the-node)
|
|
- [Run Nwaku in a Docker Container](/guides/nwaku/run-docker)
|
|
- [Run Nwaku with Docker Compose](/guides/nwaku/run-docker-compose)
|
|
- [Node Configuration Methods](/guides/reference/node-config-methods)
|
|
|
|
## Run Test Suite
|
|
|
|
Run the tests for Waku:
|
|
|
|
```bash
|
|
make test
|
|
```
|
|
|
|
:::tip Congratulations!
|
|
You have successfully built the `nwaku` binary from the source code. Have a look at the [Nwaku Configuration Examples](/guides/nwaku/configure-nwaku) guide to learn how to configure `nwaku` for different use cases.
|
|
::: |