restructure guides section

This commit is contained in:
LordGhostX 2023-11-23 02:32:37 +01:00
parent 47a27b1abe
commit 3164349f58
No known key found for this signature in database
GPG Key ID: 520CC5DC4F94FCC7
25 changed files with 58 additions and 64 deletions

View File

@ -83,7 +83,7 @@
"yarn.lock",
"tsconfig.json",
"node_modules/**",
"docs/guides/reference/node-config-options.md"
"docs/guides/nwaku/config-options.md"
],
"patterns": [
{

View File

@ -1,18 +0,0 @@
```mermaid
%%{init: { 'gitGraph': {'showBranches': true, 'showCommitLabel': true, 'mainBranchName': 'HISTORY'}} }%%
gitGraph
commit id:"2013"
commit id:"2015" tag:"R&D"
commit id:"2018" tag:"R&D" type: HIGHLIGHT
branch v1
checkout v1
commit id:"2020" tag:"release"
checkout HISTORY
merge v1
branch v2
checkout v2
commit id:"2021" tag:"release"
checkout HISTORY
merge v2
commit id:"🔥"
```

View File

@ -1,9 +1,11 @@
---
title: Nodes and SDKs
title: Getting Started
hide_table_of_contents: true
slug: /
---
:::caution
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.
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. [Join our community](https://waku.org/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 running a node.
@ -14,7 +16,7 @@ The Waku Network is a decentralised, permissionless system where anyone can run
| | Description | Documentation |
| - | - | - |
| [nwaku](https://github.com/waku-org/nwaku) | Nim-based Waku implementation to run a standalone node and access the network (recommended) | [Run a Nwaku Node](/guides/run-nwaku-node) |
| [nwaku](https://github.com/waku-org/nwaku) | Nim-based Waku implementation to run a standalone node and access the network (recommended) | [Run a Nwaku Node](/guides/nwaku/run-node) |
| [go-waku](https://github.com/waku-org/go-waku) | Golang-based Waku implementation to run a standalone node and access the network | COMING SOON |
## Integrate Using SDKs

View File

@ -1,11 +1,12 @@
---
title: Bootstrap Nodes and Discover Peers
hide_table_of_contents: true
---
This guide provides detailed steps to bootstrap your your node using [Static Peers](/learn/concepts/static-peers) and discover peers in the Waku Network using [DNS Discovery](/learn/concepts/dns-discovery).
:::tip
Until [node incentivisation](/learn/research-in-progress#prevention-of-denial-of-service-dos-and-node-incentivisation) is in place, you should [operate extra nodes](/guides/nodes-and-sdks#run-a-waku-node) alongside the ones provided by the Waku Network. When running a node, we recommend using the [DNS Discovery and Static Peers](#configure-dns-discovery-and-static-peers) configuration to connect to both the Waku Network and your node.
Until [node incentivisation](/learn/research#prevention-of-denial-of-service-dos-and-node-incentivisation) is in place, you should [operate extra nodes](/#run-a-waku-node) alongside the ones provided by the Waku Network. When running a node, we recommend using the [DNS Discovery and Static Peers](#configure-dns-discovery-and-static-peers) configuration to connect to both the Waku Network and your node.
:::
## Default Bootstrap Method

View File

@ -1,8 +1,9 @@
---
title: Debug Your Waku DApp and WebSocket
hide_table_of_contents: true
---
This guide provides detailed steps to enable and use debug logs to troubleshoot your Waku DApp, whether in a NodeJS or browser environment and check your WebSocket connections in [nwaku](/guides/run-nwaku-node).
This guide provides detailed steps to enable and use debug logs to troubleshoot your Waku DApp, whether in a NodeJS or browser environment and check your WebSocket connections in [nwaku](/guides/nwaku/run-node).
## Enabling Debug Logs
@ -44,7 +45,7 @@ To view debug logs in your browser's console, modify the local storage and add t
## Checking WebSocket Setup
[Nwaku](/guides/run-nwaku-node) provides native support for WebSocket (`ws`) and WebSocket Secure (`wss`) protocols. These are the only [transports](/learn/concepts/transports) supported for connecting to the Waku Network via browsers.
[Nwaku](/guides/nwaku/run-node) provides native support for WebSocket (`ws`) and WebSocket Secure (`wss`) protocols. These are the only [transports](/learn/concepts/transports) supported for connecting to the Waku Network via browsers.
It's important to note that browsers impose certain limitations on WebSocket usage:

View File

@ -1,5 +1,6 @@
---
title: JavaScript Waku SDK
hide_table_of_contents: true
---
The [JavaScript Waku SDK](https://github.com/waku-org/js-waku) (`@waku/sdk`) provides a TypeScript implementation of the [Waku protocol](/) designed for web browser environments. Developers can seamlessly integrate Waku functionalities into web applications, enabling efficient communication and collaboration among users using the `@waku/sdk` package.
@ -88,11 +89,11 @@ Have a look at the quick start guide and comprehensive tutorials to learn how to
| [Scaffold DApps Using @waku/create-app](/guides/js-waku/use-waku-create-app) | Learn how to use the [@waku/create-app](https://www.npmjs.com/package/@waku/create-app) package to bootstrap your next `@waku/sdk` project from various example templates |
| [Bootstrap Nodes and Discover Peers](/guides/js-waku/configure-discovery) | Learn how to bootstrap your node using [Static Peers](/learn/concepts/static-peers) and discover peers using [DNS Discovery](/learn/concepts/dns-discovery) |
| [Run @waku/sdk in a NodeJS Application](/guides/js-waku/run-waku-nodejs) | Learn our suggested approach for using the `@waku/sdk` package within a NodeJS application |
| [Debug Your Waku DApp and WebSocket](/guides/js-waku/debug-waku-dapp) | Learn how to troubleshoot your Waku DApp using debug logs and check [WebSocket](/learn/concepts/transports) connections in [nwaku](/guides/run-nwaku-node) |
| [Debug Your Waku DApp and WebSocket](/guides/js-waku/debug-waku-dapp) | Learn how to troubleshoot your Waku DApp using debug logs and check [WebSocket](/learn/concepts/transports) connections in [nwaku](/guides/nwaku/run-node) |
| [Manage Your Filter Subscriptions](/guides/js-waku/manage-filter) | Learn how to manage [filter subscriptions](/learn/concepts/protocols#filter) and handle node disconnections in your application |
:::tip
Until [node incentivisation](/learn/research-in-progress#prevention-of-denial-of-service-dos-and-node-incentivisation) is in place, you should [operate extra nodes](/guides/nodes-and-sdks#run-a-waku-node) alongside the ones provided by the Waku Network. When running a node, we recommend using the [DNS Discovery and Static Peers](/guides/js-waku/configure-discovery#configure-dns-discovery-and-static-peers) configuration to connect to both the Waku Network and your node.
Until [node incentivisation](/learn/research#prevention-of-denial-of-service-dos-and-node-incentivisation) is in place, you should [operate extra nodes](/#run-a-waku-node) alongside the ones provided by the Waku Network. When running a node, we recommend using the [DNS Discovery and Static Peers](/guides/js-waku/configure-discovery#configure-dns-discovery-and-static-peers) configuration to connect to both the Waku Network and your node.
:::
## Get Help and Report Issues

View File

@ -1,5 +1,6 @@
---
title: Send and Receive Messages Using Light Push and Filter
hide_table_of_contents: true
---
This guide provides detailed steps to start using the `@waku/sdk` package by setting up a [Light Node](/learn/glossary#light-node) to send messages using the [Light Push protocol](/learn/concepts/protocols#light-push), and receive messages using the [Filter protocol](/learn/concepts/protocols#filter). Have a look at the [installation guide](/guides/js-waku/#installation) for steps on adding `@waku/sdk` to your project.

View File

@ -1,5 +1,6 @@
---
title: Manage Your Filter Subscriptions
hide_table_of_contents: true
---
This guide provides detailed steps to manage [Filter](/learn/concepts/protocols#filter) subscriptions and handle node disconnections in your application. Have a look at the [Filter guide](/guides/js-waku/light-send-receive) for receiving messages with the `Light Push` and `Filter` protocol.

View File

@ -1,5 +1,6 @@
---
title: "Run @waku/sdk in a NodeJS Application"
hide_table_of_contents: true
---
While the `@waku/sdk` package is primarily designed for browser environments, you can use it in a NodeJS application. However, there are certain limitations and considerations to keep in mind. This guide provides a comprehensive overview of using `@waku/sdk` in NodeJS.
@ -12,7 +13,7 @@ While the `@waku/sdk` package is primarily designed for browser environments, yo
### Protocol Implementation
`@waku/sdk` focuses on the client side of the [Request/Response protocol](/learn/concepts/network-domains#requestresponse-domain). We'll have to replicate all the functionalities added to [nwaku](/guides/run-nwaku-node) to implement extra features.
`@waku/sdk` focuses on the client side of the [Request/Response protocol](/learn/concepts/network-domains#requestresponse-domain). We'll have to replicate all the functionalities added to [nwaku](/guides/nwaku/run-node) to implement extra features.
### Codebase Complexity
@ -30,4 +31,4 @@ Before using `@waku/sdk` in a NodeJS environment, take into account these limita
## Future Developments
There are plans to release a NodeJS package based on [nwaku](/guides/run-nwaku-node) to streamline the process of using Waku Network features in NodeJS applications. You can track the progress and updates here: <https://github.com/waku-org/nwaku/issues/1332>.
There are plans to release a NodeJS package based on [nwaku](/guides/nwaku/run-node) to streamline the process of using Waku Network features in NodeJS applications. You can track the progress and updates here: <https://github.com/waku-org/nwaku/issues/1332>.

View File

@ -1,5 +1,6 @@
---
title: Retrieve Messages Using Store Protocol
hide_table_of_contents: true
---
This guide provides detailed steps to create a Light Node for retrieving and filtering historical messages using the [Store protocol](/learn/concepts/protocols#store).

View File

@ -1,5 +1,6 @@
---
title: "Scaffold DApps Using @waku/create-app"
hide_table_of_contents: true
---
This guide provides detailed steps to bootstrap your next `@waku/sdk` project from [various example templates](https://github.com/waku-org/js-waku-examples/tree/master/examples) using the [@waku/create-app](https://www.npmjs.com/package/@waku/create-app) package.

View File

@ -1,5 +1,6 @@
---
title: "Build React DApps Using @waku/react"
hide_table_of_contents: true
---
The [@waku/react](https://www.npmjs.com/package/@waku/react) package provides components and UI adapters to integrate `@waku/sdk` into React applications effortlessly. This guide provides detailed steps for using `@waku/react` in your project.

View File

@ -1,5 +1,6 @@
---
title: Build Nwaku from Source
hide_table_of_contents: true
---
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.
@ -97,10 +98,10 @@ Nwaku will create the `wakunode2` binary in the `./build/` directory.
To learn more about running nwaku, have a look at these guides:
- [Run a Nwaku Node](/guides/run-nwaku-node#run-the-node)
- [Run a Nwaku Node](/guides/nwaku/run-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)
- [Node Configuration Methods](/guides/nwaku/config-methods)
## Run Test Suite
@ -111,5 +112,5 @@ 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.
You have successfully built the `nwaku` binary from the source code. Have a look at the [Node Configuration Examples](/guides/nwaku/configure-nwaku) guide to learn how to configure `nwaku` for different use cases.
:::

View File

@ -1,5 +1,6 @@
---
title: Node Configuration Methods
hide_table_of_contents: true
---
Waku nodes can be configured using a combination of the following methods:
@ -15,7 +16,7 @@ Take note of the precedence order: Each configuration method overrides the one b
## Command Line Options
Node configuration is primarily done using command line options, which override other methods. Specify [configuration options](/guides/reference/node-config-options) by providing them in this format after the binary name:
Node configuration is primarily done using command line options, which override other methods. Specify [configuration options](/guides/nwaku/config-options) by providing them in this format after the binary name:
```bash
./build/wakunode2 --tcp-port=65000
@ -58,7 +59,7 @@ topic = ["/waku/2/default-waku/proto"]
metrics-logging = false
```
The `config-file` [configuration option](/guides/reference/node-config-options) lets you specify the configuration file path:
The `config-file` [configuration option](/guides/nwaku/config-options) lets you specify the configuration file path:
```bash
./build/wakunode2 --config-file=[TOML CONFIGURATION FILE]
@ -89,12 +90,12 @@ The default configuration is used when no other options are specified. By defaul
- Enable the `Relay` protocol for relaying messages.
- Enable the `Store` protocol as a client, allowing it to query peers for historical messages but not store any message itself.
To see the default values of all [configuration options](/guides/reference/node-config-options), run `wakunode2 --help`:
To see the default values of all [configuration options](/guides/nwaku/config-options), run `wakunode2 --help`:
```bash
./build/wakunode2 --help
```
:::tip
To explore the available node configuration options, have a look at the [Node Configuration Options](/guides/reference/node-config-options) guide.
To explore the available node configuration options, have a look at the [Node Configuration Options](/guides/nwaku/config-options) guide.
:::

View File

@ -1,5 +1,6 @@
---
title: Node Configuration Options
hide_table_of_contents: true
---
Here are the available node configuration options, along with their default values and descriptions:
@ -163,5 +164,5 @@ Here are the available node configuration options, along with their default valu
| `websocket-secure-cert-path` | | Secure websocket Certificate path: '/path/to/cert.txt' |
:::tip
To configure your node using the provided configuration options, have a look at the [Node Configuration Methods](/guides/reference/node-config-methods) guide.
To configure your node using the provided configuration options, have a look at the [Node Configuration Methods](/guides/nwaku/config-methods) guide.
:::

View File

@ -1,5 +1,6 @@
---
title: Configure Peer Discovery
hide_table_of_contents: true
---
This guide provides detailed steps to configure a `nwaku` node to discover and connect with peers in the Waku Network.
@ -108,5 +109,5 @@ For example, consider two `nwaku` nodes configured as a `server` (peer exchange
```
:::info
`nwaku` provides a [`relay-peer-exchange`](/guides/reference/node-config-options#relay-config) option via `libp2p` for peer exchange, allowing network growth through neighbouring nodes. However, this feature can compromise security and network robustness, so we recommend only using it in high-trust environments.
`nwaku` provides a [`relay-peer-exchange`](/guides/nwaku/config-options#relay-config) option via `libp2p` for peer exchange, allowing network growth through neighbouring nodes. However, this feature can compromise security and network robustness, so we recommend only using it in high-trust environments.
:::

View File

@ -1,5 +1,6 @@
---
title: Nwaku Configuration Examples
title: Node Configuration Examples
hide_table_of_contents: true
---
This guide provides detailed steps to configure a `nwaku` node for different use cases.

View File

@ -1,5 +1,6 @@
---
title: Run Nwaku with Docker Compose
hide_table_of_contents: true
---
`nwaku-compose` is a ready-to-use Docker Compose setup that runs the following:
@ -27,7 +28,7 @@ cd nwaku-compose
## Configure the Setup
Modify the `run_node.sh` file to customise your [node's configuration](/guides/reference/node-config-options) and `docker-compose.yml` to specify particular [Docker image](https://hub.docker.com/r/statusteam/nim-waku/tags) tag. Next, export your Ethereum Sepolia configuration and membership password:
Modify the `run_node.sh` file to customise your [node's configuration](/guides/nwaku/config-options) and `docker-compose.yml` to specify particular [Docker image](https://hub.docker.com/r/statusteam/nim-waku/tags) tag. Next, export your Ethereum Sepolia configuration and membership password:
```shell
export ETH_CLIENT_ADDRESS=wss://sepolia.infura.io/ws/v3/[INFURA API KEY]
@ -96,5 +97,5 @@ curl --location 'http://127.0.0.1:8645/store/v1/messages?contentTopics=%2Fmy-app
```
:::tip Congratulations!
You have successfully started a `nwaku` node with `RLN` enabled using Docker Compose. Have a look at the [Nwaku Configuration Examples](/guides/nwaku/configure-nwaku) and [Advanced Configuration](https://github.com/waku-org/nwaku-compose/blob/master/ADVANCED.md) guides to learn how to configure `nwaku` for different use cases.
You have successfully started a `nwaku` node with `RLN` enabled using Docker Compose. Have a look at the [Node Configuration Examples](/guides/nwaku/configure-nwaku) and [Advanced Configuration](https://github.com/waku-org/nwaku-compose/blob/master/ADVANCED.md) guides to learn how to configure `nwaku` for different use cases.
:::

View File

@ -1,5 +1,6 @@
---
title: Run Nwaku in a Docker Container
hide_table_of_contents: true
---
This guide provides detailed steps to build and run a `nwaku` node in a Docker container. If you prefer a pre-configured setup with a monitoring dashboard, see the [Run Nwaku with Docker Compose](/guides/nwaku/run-docker-compose) guide.
@ -33,7 +34,7 @@ docker run [OPTIONS] [IMAGE] [ARG...]
- `OPTIONS` are your selected [Docker options](https://docs.docker.com/engine/reference/commandline/run/#options)
- `IMAGE` is the image and tag you pulled from the registry or built locally
- `ARG...` is the list of arguments for your [node configuration options](/guides/reference/node-config-options)
- `ARG...` is the list of arguments for your [node configuration options](/guides/nwaku/config-options)
Run `nwaku` using the most typical configuration:
@ -57,5 +58,5 @@ We recommend using explicit port mappings (`-p`) when exposing ports accessible
:::
:::tip Congratulations!
You have successfully built and started a `nwaku` node in a Docker container. Have a look at the [Nwaku Configuration Examples](/guides/nwaku/configure-nwaku) guide to learn how to configure `nwaku` for different use cases.
You have successfully built and started a `nwaku` node in a Docker container. Have a look at the [Node Configuration Examples](/guides/nwaku/configure-nwaku) guide to learn how to configure `nwaku` for different use cases.
:::

View File

@ -1,5 +1,6 @@
---
title: Run a Nwaku Node
hide_table_of_contents: true
---
Nwaku 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](/learn/concepts/protocols) they want to support based on their needs, motivations, and available resources.
@ -38,7 +39,7 @@ You can run the `nwaku` binaries and Docker images on cloud service providers li
## Run the Node
Once you have gotten the `nwaku` binary, 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/nwaku/config-methods#default-configuration-values):
```bash
# Run with default configuration
@ -49,7 +50,7 @@ Once you have gotten the `nwaku` binary, run it using the [default configuration
```
:::tip
To learn how to customise the configuration of a `nwaku` node, have a look at the [Node Configuration Methods](/guides/reference/node-config-methods) and [Node Configuration Options](/guides/reference/node-config-options) guides.
To learn how to customise the configuration of a `nwaku` node, have a look at the [Node Configuration Methods](/guides/nwaku/config-methods) and [Node Configuration Options](/guides/nwaku/config-options) guides.
:::
## Bootstrap the Node
@ -158,5 +159,5 @@ enr:-IO4QDxToTg86pPCK2KvMeVCXC2ADVZWrxXSvNZeaoa0JhShbM5qed69RQz1s1mWEEqJ3aoklo_7
```
:::tip Congratulations!
You have successfully started, configured, and connected a `nwaku` node to the Waku Network. Have a look at the [Nwaku Configuration Examples](/guides/nwaku/configure-nwaku) guide to learn how to configure `nwaku` for different use cases.
You have successfully started, configured, and connected a `nwaku` node to the Waku Network. Have a look at the [Node Configuration Examples](/guides/nwaku/configure-nwaku) guide to learn how to configure `nwaku` for different use cases.
:::

View File

@ -3,7 +3,7 @@ title: Static Peers
hide_table_of_contents: true
---
Waku applications have the flexibility to embed bootstrap node addresses directly into their codebase. Developers can either use static peers operated by Status or [run a node](/guides/nodes-and-sdks#run-a-waku-node).
Waku applications have the flexibility to embed bootstrap node addresses directly into their codebase. Developers can either use static peers operated by Status or [run a node](/#run-a-waku-node).
#### Pros

View File

@ -111,7 +111,7 @@ Resource-limited refers to environments or devices restricting available resourc
RLN Relay is an extension of the [Relay protocol](#relay) that uses [Rate Limit Nullifiers (RLN)](#rate-limit-nullifiers) to prevent spam economically by enforcing a rate limit on messages over time, imposing penalties, and facilitating network removal for spammers.
### [SDK](/guides/nodes-and-sdks)
### [SDK](/)
SDKs are tools, libraries, and resources to integrate Waku's private, secure, and censorship-free communication features into various applications.

View File

@ -7,7 +7,7 @@ Since Waku is built on top of libp2p, they share a lot of concepts and terminolo
## Waku as a Service Network
Waku intends to incentivise mechanisms to run nodes, but it is not part of libp2p's scope. Additionally, users or developers do not have to deploy their infrastructure as a prerequisite to use Waku. It is a service network. However, you are encouraged to [run a node](/guides/nodes-and-sdks#run-a-waku-node) to support and decentralise the network.
Waku intends to incentivise mechanisms to run nodes, but it is not part of libp2p's scope. Additionally, users or developers do not have to deploy their infrastructure as a prerequisite to use Waku. It is a service network. However, you are encouraged to [run a node](/#run-a-waku-node) to support and decentralise the network.
## Waku as a Turnkey Solution

View File

@ -93,11 +93,11 @@ const config = {
title: "Guides",
items: [
{
to: "/guides/nodes-and-sdks",
label: "Nodes and SDKs",
to: "/",
label: "Getting Started",
},
{
to: "/guides/run-nwaku-node",
to: "/guides/nwaku/run-node",
label: "Run a Nwaku Node",
},
{

View File

@ -3,20 +3,22 @@
/** @type {import("@docusaurus/plugin-content-docs").SidebarsConfig} */
const sidebars = {
guides: [
"guides/nodes-and-sdks",
"guides/getting-started",
{
type: "category",
label: "Run a Nwaku Node",
link: {
type: "doc",
id: "guides/run-nwaku-node",
id: "guides/nwaku/run-node",
},
items: [
"guides/nwaku/build-source",
"guides/nwaku/run-docker",
"guides/nwaku/run-docker-compose",
"guides/nwaku/configure-discovery",
"guides/nwaku/configure-nwaku"
"guides/nwaku/configure-nwaku",
"guides/nwaku/config-methods",
"guides/nwaku/config-options",
]
},
{
@ -45,15 +47,6 @@ const sidebars = {
},
]
},
{
type: "category",
label: "Reference",
collapsed: false,
items: [
"guides/reference/node-config-methods",
"guides/reference/node-config-options",
]
},
],
learn: [
"learn/waku-network",