reorg nwaku binary acquisition

This commit is contained in:
LordGhostX 2023-06-19 18:07:45 +01:00
parent 5e45aad734
commit 8a9ee15a26
No known key found for this signature in database
GPG Key ID: 520CC5DC4F94FCC7
9 changed files with 38 additions and 24 deletions

View File

@ -47,7 +47,8 @@
"myaddr",
"extip",
"staticnode",
"permissioned"
"permissioned",
"Secp"
],
"flagWords": [],
"ignorePaths": [

View File

@ -4,7 +4,7 @@ title: Contribute to Waku
Get involved in Waku's open-source initiatives to improve the protocols, SDKs, developer tools and examples, and documentation. You can contribute by:
- [Operating a node](/guides/nodes-and-sdks#run-a-waku-node) within your application.
- [Running a node](/guides/nodes-and-sdks#run-a-waku-node) within your application.
- [Reporting bugs](#report-a-bug) and [suggesting missing features](#suggest-a-feature) to the development team.
- Inspiring other developers to explore and use Waku for [various use cases](/overview/use-cases).

View File

@ -6,7 +6,7 @@ title: Nodes and SDKs
Waku has risks and limitations as it is still developing and preparing for extensive adoption. However, it is already demonstrating its capabilities by [powering various applications](/powered-by-waku). [Join our community](/community) to stay updated on our progress.
:::
Ready to integrate Waku into your application for private, secure, censorship-free communication? Explore the available SDKs and contribute by operating a node.
Ready to integrate Waku into your application for private, secure, censorship-free communication? Explore the available SDKs and contribute by running a node.
## Run a Waku Node

View File

@ -5,12 +5,13 @@ title: Build Nwaku from Source
This guide provides detailed steps to build a `nwaku` node from the source to access the latest development version or a specific commit or tag of `nwaku`. If you prefer a more stable version, [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`.
- A minimum of 2GB of RAM is required to build `nwaku`.
- Nwaku is available for Linux and macOS, with experimental Windows support.
:::
## Install Dependencies
To clone and build nwaku, you will need the standard developer tools, including a C compiler, Make, Bash, and Git.
To build nwaku, you will need the standard developer tools, including a C compiler, Make, Bash, and Git.
#### Linux

View File

@ -68,5 +68,5 @@ To find your public IP, use:
dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F'"' '{ print $2}'
```
We recommend using explicit port mappings (`-p`) when exposing ports accessible from outside the host (libp2p listening ports, discovery, HTTP server).
We recommend using explicit port mappings (`-p`) when exposing ports accessible from outside the host (listening and discovery ports, API servers).
:::

View File

@ -38,7 +38,7 @@ Here are the available node configuration options, along with their default valu
| Name | Default Value | Description |
| - | - | - |
| `dns-addrs` | `true` | Enable resolution of `dnsaddr`, `dns4` or `dns6` multiaddrs |
| `dns-addrs-name-server` | `@[1.1.1.1, 1.0.0.1]` | DNS name server IPs to query for DNS multiaddrs resolution. Argument may be repeated |
| `dns-addrs-name-server` | `["1.1.1.1", "1.0.0.1"]` | DNS name server IPs to query for DNS multiaddrs resolution. Argument may be repeated |
| `dns4-domain-name` | | The domain name resolving to the node's public IPv4 address |
## Relay Config
@ -64,7 +64,7 @@ Here are the available node configuration options, along with their default valu
| `rln-relay-tree-path` | | Path to the RLN merkle tree sled db (https://github.com/spacejam/sled) |
| `staticnode` | | Peer multiaddr to directly connect with. Argument may be repeated |
| `keep-alive` | `false` | Enable keep-alive for idle connections: true\|false |
| `topic` | `@[/waku/2/default-waku/proto]` | Default topic to subscribe to. Argument may be repeated |
| `topic` | `["/waku/2/default-waku/proto"]` | Default topic to subscribe to. Argument may be repeated |
## Store and Message Store Config
@ -129,7 +129,7 @@ Here are the available node configuration options, along with their default valu
| - | - | - |
| `dns-discovery` | `false` | Enable discovering nodes via DNS |
| `dns-discovery-url` | | URL for DNS node list in format 'enrtree://<key\>@<fqdn\>' |
| `dns-discovery-name-server` | `@[1.1.1.1, 1.0.0.1]` | DNS name server IPs to query. Argument may be repeated |
| `dns-discovery-name-server` | `["1.1.1.1", "1.0.0.1"]` | DNS name server IPs to query. Argument may be repeated |
## Discv5 Config

View File

@ -4,31 +4,37 @@ title: Run a Nwaku Node
Nwaku (formerly `nim-waku`) is a lightweight and robust Nim client for running a Waku node, equipped with tools to monitor and maintain a running node. Nwaku is highly configurable, enabling operators to select the [protocols](/overview/concepts/protocols) they want to support based on their needs, motivations, and available resources.
This guide provides detailed steps to build, configure, and connect a `nwaku` node to the Waku Network. It also includes interacting with the node and finding its addresses.
This guide provides detailed steps to download, build, configure, and connect a `nwaku` node to the Waku Network. It also includes interacting with the node and finding its addresses.
:::info
Nwaku can be built and run on Linux and macOS, while Windows support is currently experimental.
:::
## Get the Node Binary
## Build the Node
To run a node, you must have the `nwaku` binary. Nwaku provides multiple options for acquiring the node binary:
Before running a `nwaku` node, it is necessary to build it. Nwaku provides multiple options for building a node:
#### Download the Binary
| | Description | Documentation |
| - | - | - |
| Precompiled Binary | Download a precompiled binary of the `nwaku` node | [Download Nwaku Binary](https://github.com/waku-org/nwaku/tags) |
| Build Source | Build a `nwaku` node directly from the source code | [Build Nwaku from Source](/guides/nwaku/build-source) |
| Docker Container | Build and run a `nwaku` node in a Docker Container | [Run Nwaku in a Docker Container](/guides/nwaku/run-docker) |
| Docker Compose | Build and run a `nwaku` node with Docker Compose | [Run Nwaku with Docker Compose](/guides/nwaku/run-docker-compose) |
| Nightly Release | Try the latest `nwaku` updates without compiling the binaries | [Download Nightly Release](https://github.com/waku-org/nwaku/releases/tag/nightly) |
#### Build the Binary
You can build the node binary directly from the [nwaku source code](https://github.com/waku-org/nwaku). To learn more, please refer to the [Build Nwaku from Source](/guides/nwaku/build-source) guide.
#### Run the Binary in Docker
| | Description | Documentation |
| - | - | - |
| Docker Container | Run a `nwaku` node in a Docker Container | [Run Nwaku in a Docker Container](/guides/nwaku/run-docker) |
| Docker Compose | Run a `nwaku` node with Docker Compose | [Run Nwaku with Docker Compose](/guides/nwaku/run-docker-compose) |
:::tip
- If you want to try the latest `nwaku` updates without compiling the binaries, [download the nightly release](https://github.com/waku-org/nwaku/releases/tag/nightly).
- You can run `nwaku` binaries and Docker images on cloud service providers like [Google Cloud](https://cloud.google.com/), [Microsoft Azure](https://azure.microsoft.com/), [Amazon Web Services](https://aws.amazon.com/), and [DigitalOcean](https://www.digitalocean.com/).
You can run the `nwaku` binaries and Docker images on cloud service providers like [Google Cloud](https://cloud.google.com/), [Microsoft Azure](https://azure.microsoft.com/), [Amazon Web Services](https://aws.amazon.com/), and [DigitalOcean](https://www.digitalocean.com/).
:::
## Run the Node
Once you have built the `nwaku` node, run it using the [default configuration](/guides/reference/node-config-methods#default-configuration-values):
Once you have gotten the `nwaku` binary, run it using the [default configuration](/guides/reference/node-config-methods#default-configuration-values):
```bash
# Run with default configuration
@ -110,7 +116,7 @@ You can find the addresses of a running node through its logs or by calling the
When starting the node, `nwaku` will display all the public listening and discovery addresses at the `INFO` log level.
:::
### Listening Address(es)
### Listening Addresses
Look for the log entry that begins with `Listening on`, for example:
@ -126,7 +132,7 @@ INF 2023-06-15 16:09:54.448+01:00 Listening on top
/ip4/0.0.0.0/tcp/8000/ws/p2p/16Uiu2HAmQCsH9V81xoqTwGuT3qwkZWbwY1TtTQwpr3DjHU2TSwMn
```
### Discoverable ENR Address(es)
### Discoverable ENR Addresses
A `nwaku` node can encode its addressing information in an [Ethereum Node Record (ENR)](https://eips.ethereum.org/EIPS/eip-778) following the [WAKU2-ENR](https://rfc.vac.dev/spec/31/) specification, primarily for peer discovery.

View File

@ -58,6 +58,10 @@ Mostly offline devices refer to clients who spend most of their time offline or
A node is a device or client that implements Waku [protocols](#protocol) and leverages the [Waku Network](#waku) to enable secure and private peer-to-peer Web3 communication.
### Node Key
A node key is a [Secp256k1](https://en.bitcoin.it/wiki/Secp256k1) (64 char hex string) private key for generating a Waku node public [listening](#transport) and [discovery](#peer-discovery) address.
### Payload
The payload field in a [Waku Message](#waku-message) contains the application data, serving as the business logic message transmitted between clients over Waku. Applications can encrypt the payload or employ encryption methods specified in [Waku Message Payload Encryption](#waku-message-payload-encryption).

View File

@ -63,7 +63,9 @@ def extract_config(config_path: str) -> str:
if line.startswith("defaultValue:"):
default_value = re.split("defaultValue: ", line)[1].strip()
if '""' not in default_value:
default_value = f"`{remove_extra_char(default_value, ',')}`".replace('"', "")
default_value = f"`{remove_extra_char(default_value, ',')}`".replace("@", "")
if "[" not in default_value:
default_value = default_value.replace('"', "")
if "ValidIpAddress.init" in default_value:
default_value = default_value.replace("ValidIpAddress.init(", "").replace(")", "")
row["default"] = default_value