docs.waku.org/docs/guides/nwaku/build-source.md

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.
:::