mirror of
https://github.com/logos-messaging/docs.waku.org.git
synced 2026-01-02 12:53:12 +00:00
Merge branch 'develop' into chore-add-nwaku-rest-cors-config
This commit is contained in:
commit
7d81802ec8
@ -79,6 +79,7 @@
|
||||
"txid",
|
||||
"baarerstrasse",
|
||||
"FDPIC",
|
||||
"IPFS",
|
||||
],
|
||||
"flagWords": [],
|
||||
"ignorePaths": [
|
||||
|
||||
@ -16,8 +16,8 @@ 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/nwaku/run-node) |
|
||||
| [nwaku-compose](https://github.com/waku-org/nwaku-compose) | Pre-configured Docker Compose setup for running a RLN-enabled `nwaku` node with Grafana metrics dashboard | [Run Nwaku with Docker Compose](/guides/nwaku/run-docker-compose) |
|
||||
| [nwaku](https://github.com/waku-org/nwaku) | Nim-based Waku implementation to run a standalone node and access the network | [Run a Nwaku Node](/guides/nwaku/run-node) |
|
||||
| [nwaku-compose](https://github.com/waku-org/nwaku-compose) | Pre-configured Docker Compose setup for running a RLN-enabled `nwaku` node with Grafana metrics dashboard (recommended) | [Run Nwaku with Docker Compose](/guides/nwaku/run-docker-compose) |
|
||||
| [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
|
||||
@ -46,4 +46,8 @@ Waku provides integrations tailored for mobile applications, enabling Waku to ru
|
||||
| | Description | Documentation |
|
||||
| - | - | - |
|
||||
| [REST API](https://waku-org.github.io/waku-rest-api/) | REST API interface provided by `nwaku` and `go-waku` to interact with the Waku Network | [Waku Node REST API Reference](https://waku-org.github.io/waku-rest-api/) |
|
||||
| [@waku/create-app](https://www.npmjs.com/package/@waku/create-app) | Starter kit to bootstrap your next `@waku/sdk` project from various example templates | [Scaffold DApps Using @waku/create-app](/guides/js-waku/use-waku-create-app) |
|
||||
| [@waku/create-app](https://www.npmjs.com/package/@waku/create-app) | Starter kit to bootstrap your next `@waku/sdk` project from various example templates | [Scaffold DApps Using @waku/create-app](/guides/js-waku/use-waku-create-app) |
|
||||
|
||||
:::tip
|
||||
Check out the [Waku Idea Board](https://ideas.waku.org/) for creative project ideas and explore the limitless possibilities of the Waku protocol.
|
||||
:::
|
||||
@ -26,43 +26,14 @@ const node = await createLightNode({ defaultBootstrap: true });
|
||||
|
||||
## Configure static peers
|
||||
|
||||
To bootstrap a node using [static peers](/learn/concepts/static-peers), first install the `@libp2p/bootstrap` package:
|
||||
|
||||
```mdx-code-block
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
```
|
||||
|
||||
<Tabs groupId="package-manager">
|
||||
<TabItem value="npm" label="NPM">
|
||||
|
||||
```shell
|
||||
npm install @libp2p/bootstrap
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="yarn" label="Yarn">
|
||||
|
||||
```shell
|
||||
yarn add @libp2p/bootstrap
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
Then, use the `bootstrap()` function to provide a list of `multiaddr` to bootstrap the node:
|
||||
To set [static peers](/learn/concepts/static-peers), a list of `multiaddr` to bootstrap the node should be passed to the `bootstrapPeers` parameter of the `createLightNode()` function:
|
||||
|
||||
```js
|
||||
import { createLightNode } from "@waku/sdk";
|
||||
import { bootstrap } from "@libp2p/bootstrap";
|
||||
|
||||
// Bootstrap node using static peers
|
||||
const node = await createLightNode({
|
||||
libp2p: {
|
||||
peerDiscovery: [
|
||||
bootstrap({ list: ["[PEER MULTIADDR]"] }),
|
||||
],
|
||||
},
|
||||
bootstrapPeers: ["[PEER MULTIADDR]"],
|
||||
});
|
||||
```
|
||||
|
||||
@ -77,11 +48,7 @@ const peers = [
|
||||
|
||||
// Bootstrap node using the static peers
|
||||
const node = await createLightNode({
|
||||
libp2p: {
|
||||
peerDiscovery: [
|
||||
bootstrap({ list: peers }),
|
||||
],
|
||||
},
|
||||
bootstrapPeers: peers,
|
||||
});
|
||||
```
|
||||
|
||||
@ -179,11 +146,11 @@ const NODE_REQUIREMENTS = {
|
||||
filter: 3,
|
||||
};
|
||||
|
||||
// Bootstrap node using DNS Discovery
|
||||
// Bootstrap node using DNS Discovery and static peers
|
||||
const node = await createLightNode({
|
||||
libp2p: {
|
||||
bootstrapPeers: peers,
|
||||
peerDiscovery: [
|
||||
bootstrap({ list: peers }),
|
||||
wakuDnsDiscovery(
|
||||
[enrTree["PROD"]],
|
||||
NODE_REQUIREMENTS,
|
||||
|
||||
51
docs/guides/js-waku/faq.md
Normal file
51
docs/guides/js-waku/faq.md
Normal file
@ -0,0 +1,51 @@
|
||||
---
|
||||
title: JavaScript SDK FAQ
|
||||
hide_table_of_contents: true
|
||||
sidebar_label: Frequently Asked Questions
|
||||
---
|
||||
|
||||
import { AccordionItem } from '@site/src/components/mdx'
|
||||
|
||||
<AccordionItem title="How do I install the @waku/sdk package in my project?">
|
||||
You can add the JavaScript SDK to your project using NPM, Yarn, or a CDN. Check out the <a href="/guides/js-waku/#installation">installation guide</a> to get started.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="Why should I use Protocol Buffers for my application's message structure when using Waku?">
|
||||
Protocol Buffers ensure consistent formatting, interoperability, and backward compatibility for your application's messages, with a smaller payload size than JSON. Check out the <a href="/guides/js-waku/#message-structure">installation guide</a> and <a href="https://protobuf.dev/overview/">Protobuf documentation</a> to learn more.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="What are the steps to retrieve historical messages on Waku?">
|
||||
Check out the <a href="/guides/js-waku/store-retrieve-messages">Retrieve Messages Using Store Protocol</a> guide to learn how to retrieve and filter historical messages using the <a href="/learn/concepts/protocols#store">Store protocol</a>.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="How can I prevent Store peers from persisting my messages?">
|
||||
When <a href="/guides/js-waku/light-send-receive#choose-a-content-topic">creating your message encoder</a>, you can configure the <strong>ephemeral</strong> option to prevent Store peers from keeping your messages on the Waku Network.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="How can I encrypt, decrypt, and sign messages in my Waku application?">
|
||||
You can encrypt and decrypt your messages using symmetric, ECIES, and noise encryption methods. Check out the <a href="/guides/js-waku/message-encryption">Encrypt, Decrypt, and Sign Your Messages</a> guide to get started.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="How do I integrate Waku into a React application?">
|
||||
Waku has a specialized SDK designed for building React applications. Check out the <a href="/guides/js-waku/use-waku-react">Build React DApps Using @waku/react</a> guide for instructions on installation and usage.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="How can I bootstrap and discover peers in the Waku Network for browser nodes?">
|
||||
The JavaScript SDK has a <a href="/guides/js-waku/configure-discovery#default-bootstrap-method">default bootstrap method</a> that can be configured with <a href="/learn/concepts/static-peers">Static Peers</a> and <a href="/learn/concepts/dns-discovery">DNS Discovery</a>. Check out the <a href="/guides/js-waku/configure-discovery">Bootstrap Nodes and Discover Peers</a> guide for setting up peer discovery for your node.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="How can I integrate Waku into a NodeJS application?">
|
||||
Though the JavaScript SDK isn't directly usable in NodeJS due to <a href="/guides/js-waku/run-waku-nodejs">certain limitations</a>, we recommend running <a href="/guides/nwaku/run-docker-compose">nwaku in a Docker container</a> and consuming its <a href="https://waku-org.github.io/waku-rest-api/">REST API</a> in a NodeJS application.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="How can I debug my Waku DApp and check WebSocket connections?">
|
||||
Check out the <a href="/guides/js-waku/debug-waku-dapp">Debug Your Waku DApp and WebSocket</a> guide to discover how to use debug logs to troubleshoot your Waku DApp and resolve connection issues with nwaku WebSockets.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="How can I manage unexpected disconnections of my Filter subscription from Waku?">
|
||||
We recommend regularly pinging peers to check for an active connection and reinitiating the subscription when it disconnects. Check out the <a href="/guides/js-waku/manage-filter">Manage Your Filter Subscriptions</a> guide for a detailed explanation and step-by-step instructions.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="How can I send images and videos on the Waku Network?">
|
||||
While it's possible to transmit media such as images as bytes on Waku, we recommend uploading your media to a CDN or a file system like <a href="https://ipfs.tech/">IPFS</a> and then sharing the corresponding URL via Waku.
|
||||
</AccordionItem>
|
||||
@ -21,7 +21,7 @@ await node.start();
|
||||
```
|
||||
|
||||
:::info
|
||||
When the `defaultBootstrap` option is set to `true`, your node will be bootstrapped using the [default bootstrap method](/guides/js-waku/configure-discovery#default-bootstrap-method). Have a look at the [Bootstrap Nodes and Discover Peers](/guides/js-waku/configure-discovery) guide to learn more methods to bootstrap nodes.
|
||||
When the `defaultBootstrap` parameter is set to `true`, your node will be bootstrapped using the [default bootstrap method](/guides/js-waku/configure-discovery#default-bootstrap-method). Have a look at the [Bootstrap Nodes and Discover Peers](/guides/js-waku/configure-discovery) guide to learn more methods to bootstrap nodes.
|
||||
:::
|
||||
|
||||
## Connect to remote peers
|
||||
@ -35,7 +35,7 @@ import { waitForRemotePeer } from "@waku/sdk";
|
||||
await waitForRemotePeer(node);
|
||||
```
|
||||
|
||||
The `protocols` option allows you to specify the [protocols](/learn/concepts/protocols) that the remote peers should have enabled:
|
||||
The `protocols` parameter allows you to specify the [protocols](/learn/concepts/protocols) that the remote peers should have enabled:
|
||||
|
||||
```js
|
||||
import { waitForRemotePeer, Protocols } from "@waku/sdk";
|
||||
@ -62,12 +62,12 @@ const encoder = createEncoder({ contentTopic });
|
||||
const decoder = createDecoder(contentTopic);
|
||||
```
|
||||
|
||||
The `ephemeral` option allows you to specify whether messages should not be stored by [Store peers](/guides/js-waku/store-retrieve-messages):
|
||||
The `ephemeral` parameter allows you to specify whether messages should **NOT** be stored by [Store peers](/guides/js-waku/store-retrieve-messages):
|
||||
|
||||
```js
|
||||
const encoder = createEncoder({
|
||||
contentTopic: contentTopic, // message content topic
|
||||
ephemeral: true, // allows messages not be stored on the network
|
||||
ephemeral: true, // allows messages NOT be stored on the network
|
||||
});
|
||||
```
|
||||
|
||||
|
||||
@ -136,7 +136,7 @@ Message signing helps in proving the authenticity of received messages. By attac
|
||||
Signing messages is only possible when encrypted, but if your application does not require encryption, you can generate a symmetric key through hardcoded or deterministic methods using information available to all users.
|
||||
:::
|
||||
|
||||
The `sigPrivKey` option allows the `Symmetric` and `ECIES` message `encoders` to sign the message before encryption using an `ECDSA` private key:
|
||||
The `sigPrivKey` parameter allows the `Symmetric` and `ECIES` message `encoders` to sign the message before encryption using an `ECDSA` private key:
|
||||
|
||||
```js title="Alice (sender) client"
|
||||
import { generatePrivateKey, getPublicKey } from "@waku/message-encryption";
|
||||
@ -171,15 +171,11 @@ await subscription.subscribe([ECIESEncoder], callback);
|
||||
await node.lightPush.send(ECIESEncoder, { payload });
|
||||
```
|
||||
|
||||
You can extract the `signature` and its public key (`signaturePublicKey`) from the [DecodedMessage](https://js.waku.org/classes/_waku_message_encryption.DecodedMessage.html) and compare it with the expected public key to verify the message origin:
|
||||
|
||||
<!-- or use the `verifySignature()` function -->
|
||||
<!-- if (wakuMessage.verifySignature(alicePublicKey)) { -->
|
||||
You can extract the `signature` and its public key (`signaturePublicKey`) from the [DecodedMessage](https://js.waku.org/classes/_waku_message_encryption.DecodedMessage.html) and compare it with the expected public key or use the `verifySignature()` function to verify the message origin:
|
||||
|
||||
```js title="Bob (receiver) client"
|
||||
import { generatePrivateKey } from "@waku/message-encryption";
|
||||
import { createEncoder } from "@waku/message-encryption/symmetric";
|
||||
import { equals } from "uint8arrays/equals";
|
||||
|
||||
// Generate a random private key for signing messages
|
||||
// For this example, we'll call the receiver of the message Bob
|
||||
@ -201,7 +197,7 @@ const callback = (wakuMessage) => {
|
||||
|
||||
// Verify the message was actually signed and sent by Alice
|
||||
// Alice's public key can be gotten from broadcasting or out-of-band methods
|
||||
if (equals(signaturePublicKey, alicePublicKey)) {
|
||||
if (wakuMessage.verifySignature(alicePublicKey)) {
|
||||
console.log("This message was signed by Alice");
|
||||
} else {
|
||||
console.log("This message was NOT signed by Alice");
|
||||
|
||||
@ -27,7 +27,7 @@ Certain features in `@waku/sdk` are tailored for browsers and might not translat
|
||||
|
||||
## Recommendations
|
||||
|
||||
Before using `@waku/sdk` in a NodeJS environment, take into account these limitations. For a more optimised solution, we recommend [running nwaku in a Docker container](/guides/nwaku/run-docker) and consuming its [REST API](https://waku-org.github.io/waku-rest-api/).
|
||||
Before using `@waku/sdk` in a NodeJS environment, take into account these limitations. For a more optimised solution, we recommend [running nwaku in a Docker container](/guides/nwaku/run-docker-compose) and consuming its [REST API](https://waku-org.github.io/waku-rest-api/).
|
||||
|
||||
## Future developments
|
||||
|
||||
|
||||
@ -294,5 +294,5 @@ To explore the available Store query options, have a look at the [Retrieve Messa
|
||||
:::
|
||||
|
||||
:::tip
|
||||
You have successfully integrated `@waku/sdk` into a React application using the `@waku/react` package. Have a look at the [web-chat](https://github.com/waku-org/js-waku-examples/tree/master/examples/web-chat) example for a working demo.
|
||||
You have successfully integrated `@waku/sdk` into a React application using the `@waku/react` package. Have a look at the [web-chat](https://github.com/waku-org/js-waku-examples/tree/master/examples/web-chat) example for a working demo and the [Building a Tic-Tac-Toe Game with Waku](https://blog.waku.org/tictactoe-tutorial) tutorial to learn more.
|
||||
:::
|
||||
@ -161,7 +161,7 @@ sudo certbot certonly -d <your.domain.name>
|
||||
|
||||
## Configure REST API server
|
||||
|
||||
Nwaku provides a REST API to interact with the node and Waku Network. To enable the REST API, use the following configuration options:
|
||||
Nwaku provides a [REST API](https://waku-org.github.io/waku-rest-api/) to interact with the node and Waku Network. To enable the REST API, use the following configuration options:
|
||||
|
||||
- `rest`: Enables the REST API server on the node (disabled by default).
|
||||
- `rest-address` (optional): Listening address of the REST API server. If you omit this option, it will default to `127.0.0.1`.
|
||||
|
||||
39
docs/guides/nwaku/faq.md
Normal file
39
docs/guides/nwaku/faq.md
Normal file
@ -0,0 +1,39 @@
|
||||
---
|
||||
title: Nwaku FAQ
|
||||
hide_table_of_contents: true
|
||||
sidebar_label: Frequently Asked Questions
|
||||
---
|
||||
|
||||
import { AccordionItem } from '@site/src/components/mdx'
|
||||
|
||||
<AccordionItem title="How can I run a Waku node?">
|
||||
Check out the <a href="/guides/nwaku/run-docker-compose">Run Nwaku with Docker Compose</a> guide to learn the simplest and fastest way to run a node. You can also check the comprehensive <a href="/guides/nwaku/run-node">Run a Nwaku Node</a> guide to explore other options like <a href="/guides/nwaku/run-node#download-the-binary">downloading binaries</a> and <a href="/guides/nwaku/build-source">building from source</a>.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="What are the system requirements for running a node?">
|
||||
We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="How can I interact with my running nwaku node?">
|
||||
You can interact with a running nwaku node using the <a href="https://waku-org.github.io/waku-rest-api/">REST API interface</a> or the <a href="/guides/js-waku/">JavaScript Waku SDK</a>.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="How can I view the logs of a nwaku node running in Docker?">
|
||||
To check your node logs in Docker, use the command: "docker-compose logs -f nwaku"
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="What configuration methods are available for nwaku nodes?">
|
||||
You can configure Nwaku nodes using command line options and flags, environment variables, and TOML configuration files. Check out the <a href="/guides/nwaku/config-methods">Node Configuration Methods</a> guide to understand their usage and priority.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="How can I configure my nwaku node before running?">
|
||||
Check out the <a href="/guides/nwaku/config-options">Node Configuration Options</a> guide for available node configuration options, their default values and descriptions. For examples of common configuration use cases, visit the <a href="/guides/nwaku/configure-nwaku">Node Configuration Examples</a> guide.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="What peer discovery mechanisms are available for nwaku nodes, and how can I configure them?">
|
||||
You can configure peer discovery for nwaku nodes through options like <a href="/learn/concepts/static-peers">Static Peers</a>, <a href="/learn/concepts/dns-discovery">DNS Discovery</a>, <a href="/learn/concepts/discv5">DiscV5</a>, and <a href="/learn/concepts/peer-exchange">Peer Exchange</a>. Check out the <a href="/guides/nwaku/configure-discovery">Configure Peer Discovery</a> guide for setting up your node.
|
||||
</AccordionItem>
|
||||
|
||||
<AccordionItem title="How do I find my nwaku node's addresses for peer discovery?">
|
||||
The node listening and ENR addresses can be found through the node's logs and <a href="https://waku-org.github.io/waku-rest-api/#get-/debug/v1/info">REST API</a>. Check out the <a href="/guides/nwaku/run-node#find-the-node-addresses">Find the node addresses</a> section to understand how to locate your node addresses.
|
||||
</AccordionItem>
|
||||
@ -16,7 +16,7 @@ This guide provides detailed steps to configure, run, monitor, and interact with
|
||||
- [Git](https://git-scm.com/) or [GitHub Desktop](https://desktop.github.com/)
|
||||
- [Docker](https://docs.docker.com/engine/install/) and [Docker Compose](https://docs.docker.com/compose/install/)
|
||||
- [Ethereum Sepolia WebSocket Endpoint](https://github.com/waku-org/nwaku/blob/master/docs/tutorial/pre-requisites-of-running-on-chain-spam-protected-chat2.md#3-access-a-node-on-the-sepolia-testnet-using-infura)
|
||||
- [Wallet with Sepolia Ethereum](https://github.com/waku-org/nwaku/blob/master/docs/tutorial/pre-requisites-of-running-on-chain-spam-protected-chat2.md#2-obtain-sepolia-eth-from-faucet) (less than 0.1 Sepolia ETH)
|
||||
- [Wallet with Sepolia Ethereum](https://github.com/waku-org/nwaku/blob/master/docs/tutorial/pre-requisites-of-running-on-chain-spam-protected-chat2.md#2-obtain-sepolia-eth-from-faucet) (less than 0.01 Sepolia ETH)
|
||||
- A password to protect your RLN membership
|
||||
|
||||
## Clone the repository
|
||||
@ -61,6 +61,12 @@ Start all processes: `nwaku` node, database for storing messages, and Grafana fo
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
View the logs of the node to confirm that it is running correctly:
|
||||
|
||||
```shell
|
||||
docker-compose logs -f nwaku
|
||||
```
|
||||
|
||||
## Interact with the node
|
||||
|
||||
Visit <http://localhost:3000/d/yns_4vFVk/nwaku-monitoring> to view your node metrics in real time.
|
||||
|
||||
@ -8,7 +8,7 @@ Nwaku is a lightweight and robust Nim client for running a Waku node, equipped w
|
||||
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
|
||||
We recommend running a `nwaku` node with at least 2GB of RAM, especially if you have `WSS` enabled. If running just a `Relay` node, 0.5GB of RAM is sufficient.
|
||||
We recommend running a `nwaku` node with at least 2GB of RAM, especially if `WSS` is enabled. If running just a `Relay` node, 0.5GB of RAM is sufficient.
|
||||
:::
|
||||
|
||||
## Get the node binary
|
||||
|
||||
76
docs/rules-of-engagement.md
Normal file
76
docs/rules-of-engagement.md
Normal file
@ -0,0 +1,76 @@
|
||||
---
|
||||
displayed_sidebar: null
|
||||
sidebar_class_name: hidden
|
||||
pagination_prev: null
|
||||
pagination_next: null
|
||||
---
|
||||
|
||||
# Rules of Engagement
|
||||
|
||||
Waku is a nascent technology and the Waku community is still growing. Hence, the Waku team is keen to work closely with projects to help leverage Waku technology to drive the success of their own applications.
|
||||
|
||||
We describe below the expected flow for working with Waku and some rules of engagement to set expectations for project teams interacting with the Waku team.
|
||||
|
||||
## 1. Initial discussion
|
||||
|
||||
We encourage the initial discussion to happen over a video call. However, in-person event or online discussions are also an option.
|
||||
|
||||
During this initial interaction, the project team should present their product and the needs they have in relation to peer-to-peer communication and real time interaction.
|
||||
|
||||
The Waku team will provide an overview of Waku and point to specific protocol and software that should help fulfil such needs.
|
||||
|
||||
Benefits and caveats are highlighted and further documentation and examples will be provided.
|
||||
|
||||
## 2. Solution design
|
||||
|
||||
Projects should review Waku documentations and libraries in their own time; start building a PoC using Waku.
|
||||
|
||||
Projects should start designing over Waku and come up with skeleton design or user flows about specific friction points or complex area (e.g. user experience, scaling).
|
||||
|
||||
Project should appoint one or two Waku SME (Subject Matter Expert) to drive most discussions with Waku team to start acquire expertise on Waku behaviour.
|
||||
|
||||
Project's Waku SMEs should present unresolved design issues to Waku team.
|
||||
|
||||
The Waku team will then review and provide skeleton design solutions on how to overcome said unresolved or complex issues.
|
||||
|
||||
## 3. Commitment
|
||||
|
||||
The project should finalise a design, solution or protocol they will build using Waku.
|
||||
|
||||
If they wish to, they can present this solution to the Waku team to get feedback and identify technical gaps.
|
||||
|
||||
The Waku team can provide feedback, highlight potential caveats, and communicate on delivery timeline for gaps, if any.
|
||||
|
||||
:::note
|
||||
While the Waku team can provide feedback or even design potential solution on how Waku could be integrated in an application.
|
||||
It is the responsibility of the project team to understand the potential caveats and limitations that may incur with such a design.
|
||||
|
||||
The Waku team can provide options, but it is up to the project team to decide on the final solution.
|
||||
:::
|
||||
|
||||
## 4. Building
|
||||
|
||||
The project then start building their MVP using Waku. The Waku team can provide support regarding API usage, bugs encountered, documentation gaps.
|
||||
|
||||
Waku team will use feedback raised by project to improve APIs, fix bugs and enhance documentation. Waku team continues R&D to deliver any committed technical gaps.
|
||||
|
||||
Project delivers their MVP.
|
||||
|
||||
:::note
|
||||
The Waku team is keen to help any usage of Waku library. Please note that code snippets are necessary for preliminary investigations of issues.
|
||||
|
||||
Sometimes, a code snippet is not enough; in this case, a [minimal reproduction repo](https://minimum-reproduction.wtf/) is necessary to allow us to do further investigation.
|
||||
If the project is open-source, then the Waku team might try to further investigate using it, as long as the reproduction steps are easy.
|
||||
|
||||
If no code is provided to help with the investigation, then there is nothing the Waku team can do.
|
||||
|
||||
For any unresolved issue, the project must open an issue on the related GitHub repository under the [waku-org](https://github.com/waku-org) organisation.
|
||||
:::
|
||||
|
||||
# 5. Ongoing relation
|
||||
|
||||
Once the project application is live, the Waku team is keen to maintain regular contact. This can include discussion around performance, bugs found by users, etc.
|
||||
|
||||
The Waku team is keen to regularly present new and upcoming development to project team, highlight items that are particularly relevant.
|
||||
|
||||
If a project wishes to take onboard any new Waku protocol, or decide to extend their product with a new functionality using Waku, the circle can resume from [step 1](#1-initial-discussion).
|
||||
@ -173,6 +173,10 @@ const config = {
|
||||
href: '/privacy-policy',
|
||||
label: 'Privacy Policy',
|
||||
},
|
||||
{
|
||||
href: '/rules-of-engagement',
|
||||
label: 'Rules of Engagement',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@acid-info/docusaurus-fathom": "^1.0.0-alpha.111",
|
||||
"@acid-info/logos-docusaurus-preset": "^1.0.0-alpha.122",
|
||||
"@acid-info/logos-docusaurus-preset": "^1.0.0-alpha.143",
|
||||
"@docusaurus/core": "^2.4.1",
|
||||
"@docusaurus/preset-classic": "^2.4.1",
|
||||
"@docusaurus/theme-mermaid": "^2.4.1",
|
||||
|
||||
12
sidebars.js
12
sidebars.js
@ -12,13 +12,14 @@ const sidebars = {
|
||||
id: "guides/nwaku/run-node",
|
||||
},
|
||||
items: [
|
||||
"guides/nwaku/build-source",
|
||||
"guides/nwaku/run-docker",
|
||||
"guides/nwaku/run-docker-compose",
|
||||
"guides/nwaku/run-docker",
|
||||
"guides/nwaku/build-source",
|
||||
"guides/nwaku/configure-discovery",
|
||||
"guides/nwaku/configure-nwaku",
|
||||
"guides/nwaku/config-methods",
|
||||
"guides/nwaku/config-options",
|
||||
"guides/nwaku/configure-nwaku",
|
||||
"guides/nwaku/faq",
|
||||
{
|
||||
type: 'html',
|
||||
value: '<a href="https://waku-org.github.io/waku-rest-api/" target="_blank" rel="noopener noreferrer" class="menu__link external-link">REST API Reference<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.1918 4H3.42848V2.85715H13.1428V12.5714H11.9999V4.80813L3.83254 12.9755L3.02441 12.1674L11.1918 4Z" fill="white"/></svg>',
|
||||
@ -42,6 +43,7 @@ const sidebars = {
|
||||
"guides/js-waku/run-waku-nodejs",
|
||||
"guides/js-waku/debug-waku-dapp",
|
||||
"guides/js-waku/manage-filter",
|
||||
"guides/js-waku/faq",
|
||||
{
|
||||
type: 'html',
|
||||
value: '<a href="https://examples.waku.org" target="_blank" rel="noopener noreferrer" class="menu__link external-link">@waku/sdk Examples<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.1918 4H3.42848V2.85715H13.1428V12.5714H11.9999V4.80813L3.83254 12.9755L3.02441 12.1674L11.1918 4Z" fill="white"/></svg>',
|
||||
@ -84,6 +86,10 @@ const sidebars = {
|
||||
"learn/research",
|
||||
"learn/waku-vs-libp2p",
|
||||
"learn/glossary",
|
||||
{
|
||||
type: 'html',
|
||||
value: '<a href="https://ideas.waku.org" target="_blank" rel="noopener noreferrer" class="menu__link external-link">Waku Idea Board<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.1918 4H3.42848V2.85715H13.1428V12.5714H11.9999V4.80813L3.83254 12.9755L3.02441 12.1674L11.1918 4Z" fill="white"/></svg>',
|
||||
},
|
||||
],
|
||||
research: [
|
||||
{
|
||||
|
||||
40
yarn.lock
40
yarn.lock
@ -19,10 +19,10 @@
|
||||
satori "^0.10.1"
|
||||
sharp "^0.32.1"
|
||||
|
||||
"@acid-info/docusaurus-og@^1.0.0-alpha.111":
|
||||
version "1.0.0-alpha.111"
|
||||
resolved "https://registry.yarnpkg.com/@acid-info/docusaurus-og/-/docusaurus-og-1.0.0-alpha.111.tgz#0a5f96512f5ad1bf22d632009fe5902b184fb53c"
|
||||
integrity sha512-LrKfnxdG6P0/YtHP2ugz3QMhFCgavfnWLjpuvdlAUA1CWXBDVX33UGvKh4Zt7m5j3tLtpdlEt3Xa3IMgBUJAUg==
|
||||
"@acid-info/docusaurus-og@^1.0.0-alpha.131":
|
||||
version "1.0.0-alpha.131"
|
||||
resolved "https://registry.yarnpkg.com/@acid-info/docusaurus-og/-/docusaurus-og-1.0.0-alpha.131.tgz#316a736455c3c0e542b32ad63f1b34714588b67b"
|
||||
integrity sha512-a0EbvwffHdShC8+bDzLA3VqPW71n2NPy01t0c2Tm8lMu1Xo/JOUEAr23qcuRETfOPbiHWY2DJC/3AGWOffc59g==
|
||||
dependencies:
|
||||
"@docusaurus/core" "^2.4.1"
|
||||
"@docusaurus/module-type-aliases" "^2.4.1"
|
||||
@ -36,14 +36,14 @@
|
||||
satori "^0.10.1"
|
||||
sharp "^0.32.1"
|
||||
|
||||
"@acid-info/logos-docusaurus-preset@^1.0.0-alpha.122":
|
||||
version "1.0.0-alpha.122"
|
||||
resolved "https://registry.yarnpkg.com/@acid-info/logos-docusaurus-preset/-/logos-docusaurus-preset-1.0.0-alpha.122.tgz#17413393d9c7a77db5faf4b9333a8760446feebc"
|
||||
integrity sha512-evBg2XFiU8/F8B78mIA/Ii1oP0zSKZ2qn1eMgx+4t8fyDr0w8VyqCBSInWmWjYkkzOrAEQWDrL0ZxNp/Ct47KA==
|
||||
"@acid-info/logos-docusaurus-preset@^1.0.0-alpha.143":
|
||||
version "1.0.0-alpha.143"
|
||||
resolved "https://registry.yarnpkg.com/@acid-info/logos-docusaurus-preset/-/logos-docusaurus-preset-1.0.0-alpha.143.tgz#492a2765da4cf41ec94c0283cba1f722f03012c9"
|
||||
integrity sha512-LsTurD30hmgdylR3scOPvkBck0H9mCOG8JSmKSzFBrHtqeNKgImcZh13HiDFFAOwv8nWk7vci+cmSfaXXd8AqQ==
|
||||
dependencies:
|
||||
"@acid-info/docusaurus-og" "^1.0.0-alpha.111"
|
||||
"@acid-info/docusaurus-og" "^1.0.0-alpha.131"
|
||||
"@acid-info/logos-docusaurus-search-local" "^1.0.0-alpha.111"
|
||||
"@acid-info/logos-docusaurus-theme" "^1.0.0-alpha.122"
|
||||
"@acid-info/logos-docusaurus-theme" "^1.0.0-alpha.143"
|
||||
"@docusaurus/core" "^2.4.1"
|
||||
"@docusaurus/module-type-aliases" "^2.4.1"
|
||||
"@docusaurus/preset-classic" "^2.4.1"
|
||||
@ -71,13 +71,13 @@
|
||||
"@easyops-cn/docusaurus-search-local" "^0.33.6"
|
||||
lodash "^4.17.21"
|
||||
|
||||
"@acid-info/logos-docusaurus-theme@^1.0.0-alpha.122":
|
||||
version "1.0.0-alpha.122"
|
||||
resolved "https://registry.yarnpkg.com/@acid-info/logos-docusaurus-theme/-/logos-docusaurus-theme-1.0.0-alpha.122.tgz#4da98bf673acb11ebcaad685d8b1cab5f634b26f"
|
||||
integrity sha512-0GKEb94cObPzgfuH21X7MNro7j/zSisI+/7710VMOyidoI9W2OSfe7KwCuIQbW7Y9N+oyw+2YLYKu69RfiLbZg==
|
||||
"@acid-info/logos-docusaurus-theme@^1.0.0-alpha.143":
|
||||
version "1.0.0-alpha.143"
|
||||
resolved "https://registry.yarnpkg.com/@acid-info/logos-docusaurus-theme/-/logos-docusaurus-theme-1.0.0-alpha.143.tgz#5f93b13f623fcf789498aa218675ff1ce3196d67"
|
||||
integrity sha512-KOX65g9/bjsaCmz1jThPCUHcyaQBUT0dgViw5TJXCYA6bmaVIZujlNQsJpffH3n6bJCxmgjb3sW1eonwvsgngQ==
|
||||
dependencies:
|
||||
"@acid-info/docusaurus-og" "^1.0.0-alpha.111"
|
||||
"@acid-info/lsd-react" "^0.1.0-alpha.21"
|
||||
"@acid-info/docusaurus-og" "^1.0.0-alpha.131"
|
||||
"@acid-info/lsd-react" "^0.1.0-beta.1"
|
||||
"@docusaurus/core" "^2.4.1"
|
||||
"@docusaurus/mdx-loader" "^2.4.1"
|
||||
"@docusaurus/module-type-aliases" "^2.4.1"
|
||||
@ -118,10 +118,10 @@
|
||||
three-stdlib "^2.23.4"
|
||||
utility-types "^3.10.0"
|
||||
|
||||
"@acid-info/lsd-react@^0.1.0-alpha.21":
|
||||
version "0.1.0-alpha.21"
|
||||
resolved "https://registry.yarnpkg.com/@acid-info/lsd-react/-/lsd-react-0.1.0-alpha.21.tgz#3a6a6862bc492521197ef354795f1b1fe9bceffe"
|
||||
integrity sha512-zgec9ezT469HBB/rKFzqbgEFiH59Raf8BkWE4XWP4mS9qc2ZQwwYy59TjbJKN5kgwWVnVX/cY1Ryvj9uFcnO8g==
|
||||
"@acid-info/lsd-react@^0.1.0-beta.1":
|
||||
version "0.1.0-beta.3"
|
||||
resolved "https://registry.yarnpkg.com/@acid-info/lsd-react/-/lsd-react-0.1.0-beta.3.tgz#2f211b647d68d6fce163afb60989494f555354be"
|
||||
integrity sha512-lD/x1BZyYdQCUmtMH3YpKSInEO73wRFRxUM6lzbz5UDDUnPfDpj/g4mQrXKL1keV3ujGJbMLaCC36cZT8VgNNw==
|
||||
dependencies:
|
||||
"@datepicker-react/hooks" "^2.8.4"
|
||||
"@emotion/react" "^11.10.5"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user