US -> UK English rewrite (#99)

* rewrite US to UK English

* unpublish react guide
This commit is contained in:
LordGhostX 2023-08-01 20:39:04 +01:00 committed by GitHub
parent 677718fd12
commit 11f3ae9037
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
39 changed files with 147 additions and 144 deletions

View File

@ -1,35 +1,35 @@
{
"version": "0.2",
"$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/master/cspell.schema.json",
"language": "en",
"language": "en-GB",
"words": [
"linkability",
"Unlinkability",
"unlinkability",
"waku",
"gossipsub",
"incentivized",
"incentivizing",
"incentivised",
"incentivising",
"incentivisation",
"RAILGUN",
"nwaku",
"deanonymization",
"deanonymisation",
"ECIES",
"enrtree",
"Discv5",
"Gossipsub",
"LIGHTPUSH",
"gossipsub",
"lightpush",
"pubtopic1",
"proto",
"multiaddr",
"multiaddrs",
"keyturn",
"Protobuf",
"protobuf",
"supercrypto",
"QUIC",
"Dappnode",
"dappnode",
"gameplay",
"Smol",
"Datagram",
"Graphcast",
"smol",
"datagram",
"graphcast",
"permissionless",
"Royer",
"Secureum",
@ -43,7 +43,7 @@
"myaddr",
"extip",
"staticnode",
"Secp",
"secp",
"libpq",
"dylib",
"uncompromised",
@ -53,6 +53,9 @@
"Václav",
"Pavlín",
"Revuelta",
"trilemma",
"Alvaro",
"keyturn",
],
"flagWords": [],
"ignorePaths": [

View File

@ -72,11 +72,11 @@ presets: [
This should suffice since Logos plugins will handle other configurations linked to the designated business unit. However, if you encounter any inaccuracies in the data provided by Logos Plugins, please visit the [Logos Docusaurus Plugins](https://github.com/acid-info/logos-docusaurus-plugins) page and submit an issue.
## Customization
## Customisation
You can find the instructions on adding more documentation sections, localization, and versioning on the [Docusaurus](https://docusaurus.io/docs) website.
You can find the instructions on adding more documentation sections, localisation, and versioning on the [Docusaurus](https://docusaurus.io/docs) website.
> Note that theme customization is limited; for further instructions on customizing your theme, head over to [Logos Docusaurus Theme](https://github.com/acid-info/logos-docusaurus-plugins/tree/main/packages/logos-docusaurus-theme/).
> Note that theme customisation is limited; for further instructions on customizing your theme, head over to [Logos Docusaurus Theme](https://github.com/acid-info/logos-docusaurus-plugins/tree/main/packages/logos-docusaurus-theme/).
## Troubleshooting

View File

@ -17,12 +17,12 @@ sequenceDiagram
```
1. DNS Discovery protocol is executed.
2. Alice's retrieves Bob's ENR (Ethereum Node Record) from DNS Server.
3. Alice executes Discv5 protocol with Bob using UDP connection details from ENR.
2. Alice retrieves Bob's ENR (Ethereum Node Record) from DNS Server.
3. Alice executes the Discv5 protocol with Bob using UDP connection details from ENR.
4. Bob returns Carol's, David's and Erin's ENRs to Alice.
5. Alice Decodes ENRs and extracts Carol's, David's and Erin's TCP and UDP connections details.
6. Alice executes Discv5 protocol with Carol using UDP connection details from ENR.
5. Alice decodes ENRs and extracts the details of Carol, David, and Erin's TCP and UDP connections.
6. Alice executes the Discv5 protocol with Carol using UDP connection details from ENR.
7. Carol returns Frank's, Gwen's and Harry's ENRs to Alice.
8. Alice Decodes ENRs and extracts Frank's, Gwen's and Harry's TCP and UDP connections details.
8. Alice decodes ENRs and extracts Frank's, Gwen's and Harry's TCP and UDP connection details.
9. Alice selects to dial David, Frank and Gwen.
10. Alice dials David, Frank and Gwen over libp2p using TCP connections details from ENRs.
10. Alice dials David, Frank and Gwen over libp2p using TCP connection details from ENRs.

View File

@ -10,9 +10,9 @@ sequenceDiagram
```
1. DNS lookup query to retrieve TXT data stored on `example.com` domain.
2. `entree-root` is returned, value of `e` is the `enr-root`, root hash of the node subtree.
2. `enrtree-root` is returned, and the value of `e` is the `enr-root`, the root hash of the node subtree.
3. DNS lookup query to retrieve TXT data stored on `<enr-root>.example.com` domain.
4. `entree-branch` is returned, this tree contains hashes of node subtrees.
5. DNS lookup query to retrieve TXT data stored on, `DU...VQ.example.com` domain, the first leaf of `entree-branch`.
4. `enrtree-branch` is returned; this tree contains hashes of node subtrees.
5. DNS lookup query to retrieve TXT data stored on `DU...VQ.example.com` domain, the first leaf of `enrtree-branch`.
6. `enr` record is returned.
7. Returned value is decoded, peer connection details such as ip address and port are learned.
7. Returned value is decoded, and peer connection details such as IP address and port are learned.

View File

@ -12,10 +12,10 @@ sequenceDiagram
```
1. DNS Discovery protocol is executed.
2. Alice's retrieves Bob's websocket multiaddr from DNS Server.
2. Alice retrieves Bob's websocket multiaddr from DNS Server.
3. Alice dials Bob using libp2p protocols.
4. Alice executes a Peer Exchange Query to Bob.
4. Alice executes a Peer Exchange query to Bob.
5. Bob returns Carol's and David's ENR to Alice.
6. Alice Decodes ENRs and extracts Carol's and David's websocket multiaddrs.
6. Alice decodes ENRs and extracts Carol's and David's websocket multiaddrs.
7. Alice dials Carol and David.
8. Alice can now drop the connection with Bob (bootstrap node), Alice has 2 connections to the Waku Network.
8. Alice can now drop the connection with Bob (bootstrap node); Alice has 2 connections to the Waku Network.

View File

@ -25,6 +25,6 @@ The Pub/Sub topic `pubtopic1` serves as a means of routing messages (the network
1. Node A creates a WakuMessage `msg1` with [Content Topic](/overview/concepts/content-topics) `contentTopic1`.
2. Node F requests to get messages filtered by Pub/Sub topic `pubtopic1` and Content Topic `contentTopic1`. Node D subscribes F to this filter and will forward messages that match that filter in the future.
3. Node A publishes `msg1` on `pubtopic1`. The message is sent from Node A to Node B and then forwarded to Node D.
4. Node D, upon receiving `msg1` both stores the message for future retrieval by other nodes and forwards it to Node C.
4. Node D, upon receiving `msg1`, stores the message for future retrieval by other nodes and forwards it to Node C.
5. Node D also pushes `msg1` to Node F, informing it about the arrival of a new message.
6. At a later time, Node E comes online and requests messages matching `pubtopic1` and `contentTopic1` from Node D. Node D responds with `msg1` and potentially other messages that match the query.

View File

@ -2,7 +2,7 @@
title: Join Our Community
---
Welcome to the Waku Community! Whether you are interested in building with Waku, contributing to the network, expanding your knowledge, or staying up-to-date with our progress, we have something for everyone.
Welcome to the Waku Community! Whether you are interested in building with Waku, contributing to the network, expanding your knowledge, or staying abreast of our progress, we have something for everyone.
## [Discord](https://discord.waku.org/)
@ -10,7 +10,7 @@ Connect with like-minded individuals in the Waku ecosystem! Introduce yourself,
## [Twitter](https://twitter.com/waku_org)
Stay informed and updated with the latest news and insights from Waku. [Follow us on Twitter](https://twitter.com/waku_org) now for all the exciting updates!
Stay informed and updated with the latest news and insights from Waku. [Follow us on Twitter](https://twitter.com/waku_org) now for all the thrilling updates!
## [Telegram](https://t.me/waku_org)

View File

@ -6,7 +6,7 @@ Get involved in Waku's open-source initiatives to improve the protocols, SDKs, d
- [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.
- Completing [Waku Bounties](#complete-waku-bounties) and participating in our [Bug Bounty Program](#submit-security-bug-reports).
- Completing [Waku Bounties](#complete-waku-bounties) and participating in our [Bug Bounty Programme](#submit-security-bug-reports).
- Inspiring other developers to explore and use Waku for [various use cases](/overview/use-cases).
Begin your journey by visiting the [Nodes and SDKs](/guides/nodes-and-sdks) guide and start building on Waku today!
@ -17,7 +17,7 @@ To report a bug, create an issue in the appropriate [GitHub repository](https://
## Suggest a Feature
To suggest a new feature, create an issue in the appropriate [GitHub repository](https://github.com/waku-org). Ensure no issue exists about the feature and specify the use cases the feature can enable, allowing us to investigate and prioritize accordingly.
To suggest a new feature, create an issue in the appropriate [GitHub repository](https://github.com/waku-org). Ensure no issue exists about the feature and specify the use cases the feature can enable, allowing us to investigate and prioritise accordingly.
## Make Pull Requests
@ -25,13 +25,13 @@ Community pull requests (PRs) are highly encouraged, but we recommend [suggestin
## Complete Waku Bounties
To promote community contributions, we encourage members to complete bounties that benefit Waku and earn rewards while positively impacting the network. Join the bounty program at: <https://github.com/waku-org/bounties>.
To promote community contributions, we encourage members to complete bounties that benefit Waku and earn rewards while positively impacting the network. Join the bounty programme at: <https://github.com/waku-org/bounties>.
## Submit Security Bug Reports
To improve Waku's security, we invite researchers to collaborate in identifying and resolving potential vulnerabilities and earn rewards for their efforts. To participate, please review our bug bounty program's details and submit your reports at: <https://hackenproof.com/status-dot-im/waku>.
To improve Waku's security, we invite researchers to collaborate in identifying and resolving potential vulnerabilities and earn rewards for their efforts. To participate, please review our bug bounty programme's details and submit your reports at: <https://hackenproof.com/status-dot-im/waku>.
## Contribute to Waku Research
Waku Research is an innovative R&D project dedicated to developing modular peer-to-peer protocols for communication that prioritize privacy, security, and censorship resistance. Explore Waku's ongoing challenges and experimental code at <https://github.com/waku-org/research>.
Waku Research is an innovative R&D project dedicated to developing modular peer-to-peer protocols for communication that prioritise privacy, security, and censorship resistance. Explore Waku's ongoing challenges and experimental code at <https://github.com/waku-org/research>.

View File

@ -77,15 +77,16 @@ import "https://cdn.jsdelivr.net/npm/protobufjs@latest/dist/protobuf.min.js";
## Getting Started
Check out the quick start guide and comprehensive tutorials to learn how to build applications using `@waku/sdk`:
Have a look at the quick start guide and comprehensive tutorials to learn how to build applications using `@waku/sdk`:
| Guide | Description |
| - | - |
| [Send and Receive Messages Using Light Push and Filter](/guides/js-waku/light-send-receive) | Learn how to send and receive messages on light nodes using the [Light Push](/overview/concepts/protocols#light-push) and [Filter](/overview/concepts/protocols#filter) protocols |
| [Retrieve Messages Using Store](/guides/js-waku/store-retrieve-messages) | Learn how to retrieve and filter historical messages on light nodes using the [Store](/overview/concepts/protocols#store) protocol |
| [Build React DApps Using @waku/react](/guides/js-waku/use-waku-react) | Learn how to use the [@waku/react](https://www.npmjs.com/package/@waku/react) package seamlessly integrate `@waku/sdk` into a React application |
| [Bootstrap 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 |
<!-- | [Build React DApps Using @waku/react](/guides/js-waku/use-waku-react) | Learn how to use the [@waku/react](https://www.npmjs.com/package/@waku/react) package seamlessly integrate `@waku/sdk` into a React application | -->
## Get Help and Report Issues
To engage in general discussions, seek assistance, or stay updated with the latest news, visit the `#support` and `#js-waku-contribute` channels on the [Waku Discord](https://discord.waku.org).

View File

@ -2,7 +2,7 @@
title: Send and Receive Messages Using Light Push and Filter
---
This guide provides detailed steps to start using the `@waku/sdk` package by setting up a Light Node to send messages using the [Light Push protocol](/overview/concepts/protocols#light-push), and receive messages using the [Filter protocol](/overview/concepts/protocols#filter). Check out the [installation guide](/guides/js-waku/#installation) for steps on adding `@waku/sdk` to your project.
This guide provides detailed steps to start using the `@waku/sdk` package by setting up a Light Node to send messages using the [Light Push protocol](/overview/concepts/protocols#light-push), and receive messages using the [Filter protocol](/overview/concepts/protocols#filter). Have a look at the [installation guide](/guides/js-waku/#installation) for steps on adding `@waku/sdk` to your project.
## Create a Light Node
@ -89,7 +89,7 @@ const ChatMessage = new protobuf.Type("ChatMessage")
```
:::info
Check out the [Protobuf installation](/guides/js-waku/#message-structure) guide for adding the `protobufjs` package to your project.
Have a look at the [Protobuf installation](/guides/js-waku/#message-structure) guide for adding the `protobufjs` package to your project.
:::
## Send Messages Using Light Push
@ -104,12 +104,12 @@ const protoMessage = ChatMessage.create({
message: "Hello, World!",
});
// Serialize the message using Protobuf
const serializedMessage = ChatMessage.encode(protoMessage).finish();
// Serialise the message using Protobuf
const serialisedMessage = ChatMessage.encode(protoMessage).finish();
// Send the message using Light Push
await node.lightPush.send(encoder, {
payload: serializedMessage,
payload: serialisedMessage,
});
```
@ -135,5 +135,5 @@ const unsubscribe = await node.filter.subscribe([decoder], callback);
```
:::tip Congratulations!
You have successfully sent and received messages over the Waku Network using the `Light Push` and `Filter` protocols. Check out the [light-js](https://github.com/waku-org/js-waku-examples/tree/master/examples/light-js) and [light-chat](https://github.com/waku-org/js-waku-examples/tree/master/examples/light-chat) examples for working demos.
You have successfully sent and received messages over the Waku Network using the `Light Push` and `Filter` protocols. Have a look at the [light-js](https://github.com/waku-org/js-waku-examples/tree/master/examples/light-js) and [light-chat](https://github.com/waku-org/js-waku-examples/tree/master/examples/light-chat) examples for working demos.
:::

View File

@ -84,7 +84,7 @@ const storeQuery = node.store.queryGenerator([decoder]);
// Process the messages
for await (const messagesPromises of storeQuery) {
// Fulfill the messages promises
// Fulfil the messages promises
const messages = await Promise.all(messagesPromises
.map(async (p) => {
const msg = await p;
@ -193,9 +193,9 @@ const storeQuery = node.store.queryGenerator([decoder, options]);
```
:::info
The `timeFilter` option significantly reduces message retrieval performance. To optimize it, consider resuming message retrieval using a [cursor](#cursor) that starts from the last seen message.
The `timeFilter` option significantly reduces message retrieval performance. To optimise it, consider resuming message retrieval using a [cursor](#cursor) that starts from the last seen message.
:::
:::tip Congratulations!
You have successfully retrieved and filtered historical messages on a Light Node using the `Store` protocol. Check out the [store-js](https://github.com/waku-org/js-waku-examples/tree/master/examples/store-js) and [store-reactjs-chat](https://github.com/waku-org/js-waku-examples/tree/master/examples/store-reactjs-chat) examples for working demos.
You have successfully retrieved and filtered historical messages on a Light Node using the `Store` protocol. Have a look at the [store-js](https://github.com/waku-org/js-waku-examples/tree/master/examples/store-js) and [store-reactjs-chat](https://github.com/waku-org/js-waku-examples/tree/master/examples/store-reactjs-chat) examples for working demos.
:::

View File

@ -6,7 +6,7 @@ This guide provides detailed steps to bootstrap your next `@waku/sdk` project fr
## Usage
Initialize a new `@waku/sdk` template using any of the following methods:
Initialise a new `@waku/sdk` template using any of the following methods:
```mdx-code-block
import Tabs from '@theme/Tabs';
@ -30,7 +30,7 @@ yarn create @waku/app [PROJECT DIRECTORY]
</TabItem>
</Tabs>
Next, select a template to initialize your app from:
Next, select a template to initialise your app from:
![waku create app demo](/img/waku-create-app-demo.gif)

View File

@ -224,9 +224,9 @@ function App() {
```
:::info
To explore the available query options, check out the [Store Query Options](/guides/js-waku/store-retrieve-messages#store-query-options) guide.
To explore the available query options, have a look at the [Store Query Options](/guides/js-waku/store-retrieve-messages#store-query-options) guide.
:::
:::tip
You have successfully integrated `@waku/sdk` into a React application using the `@waku/react` package. Check out 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.
:::

View File

@ -10,7 +10,7 @@ Ready to integrate Waku into your application for private, secure, censorship-fr
## Run a Waku Node
The Waku Network is a decentralized, permissionless system where anyone can run nodes, use the network, and contribute to its support.
The Waku Network is a decentralised, permissionless system where anyone can run nodes, use the network, and contribute to its support.
| | Description | Documentation |
| - | - | - |
@ -43,6 +43,6 @@ Waku provides integrations tailored for mobile applications, enabling Waku to ru
| | Description | Documentation |
| - | - | - |
| JSON-RPC API | `JSON-RPC` API interface provided by `nwaku` and `go-waku` to interact with the Waku Network | COMING SOON |
| [@waku/react](https://www.npmjs.com/package/@waku/react) | React components and UI adapters designed for seamless integration with `@waku/sdk` | [Build React DApps Using @waku/react](/guides/js-waku/use-waku-react) |
| [@waku/react](https://www.npmjs.com/package/@waku/react) | React components and UI adapters designed for seamless integration with `@waku/sdk` | COMING SOON |
| [@waku/create-app](https://www.npmjs.com/package/@waku/create-app) | Starter kit to bootstrap your next `@waku/sdk` project from various example templates | [Bootstrap DApps Using @waku/create-app](/guides/js-waku/use-waku-create-app) |
| [nwaku-compose](https://github.com/alrevuelta/nwaku-compose) | Pre-configured Docker Compose setup for running and monitoring a `nwaku` node using Prometheus and Grafana | [Run Nwaku with Docker Compose](/guides/nwaku/run-docker-compose) |

View File

@ -2,7 +2,7 @@
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, [download a pre-compiled binary](https://github.com/waku-org/nwaku/tags) instead.
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`.
@ -36,7 +36,7 @@ sudo dnf install @development-tools git libpq-devel
<TabItem value="arch" label="Arch Linux">
```bash
# Using your favorite AUR helper
# Using your favoured AUR helper
sudo [AUR HELPER] -S base-devel git postgresql-libs
```
@ -92,7 +92,7 @@ Nwaku will create the `wakunode2` binary in the `./build/` directory.
./build/wakunode2 --help
```
To learn more about running nwaku, check out these guides:
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)

View File

@ -86,7 +86,7 @@ When Discv5 is enabled and used with [DNS Discovery](#configure-dns-discovery),
To enable [Peer Exchange](/overview/concepts/peer-exchange) in a `nwaku` node, use the following configuration options:
- `peer-exchange`: Enables `Peer Exchange` on the node as a responder (disabled by default).
- `peer-exchange-node` (optional): Multiaddr for bootstrap node that has the peer exchange protocol enabled.
- `peer-exchange-node` (optional): Multiaddr for bootstrap node with the peer exchange protocol enabled.
```bash
./build/wakunode2 \
@ -108,5 +108,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 neighboring 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/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.
:::

View File

@ -21,7 +21,7 @@ cd nwaku-compose
## Configure the Setup
Modify the `docker-compose.yml` file to customize your node's configuration, including the [Docker image](https://hub.docker.com/r/statusteam/nim-waku/tags) and [nwaku arguments](/guides/reference/node-config-options).
Modify the `docker-compose.yml` file to customise your node's configuration, including the [Docker image](https://hub.docker.com/r/statusteam/nim-waku/tags) and [nwaku arguments](/guides/reference/node-config-options).
## Run Docker Compose

View File

@ -96,5 +96,5 @@ To see the default values of all [configuration options](/guides/reference/node-
```
:::tip
To explore the available node configuration options, check out 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/reference/node-config-options) guide.
:::

View File

@ -163,5 +163,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, check out 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/reference/node-config-methods) guide.
:::

View File

@ -19,7 +19,7 @@ To run a node, you must have the `nwaku` binary. Nwaku provides multiple options
#### Build the Binary
You can build the node binary directly from the [nwaku source code](https://github.com/waku-org/nwaku). Check out the [Build Nwaku from Source](/guides/nwaku/build-source) guide to learn more.
You can build the node binary directly from the [nwaku source code](https://github.com/waku-org/nwaku). Have a look at the [Build Nwaku from Source](/guides/nwaku/build-source) guide to learn more.
#### Run Nwaku in Docker
@ -45,7 +45,7 @@ Once you have gotten the `nwaku` binary, run it using the [default configuration
```
:::tip
For more advanced configurations like enabling other protocols or maintaining a consistent `PeerID`, check out the [Node Configuration Methods](/guides/reference/node-config-methods) guide.
For more advanced configurations like enabling other protocols or maintaining a consistent `PeerID`, have a look at the [Node Configuration Methods](/guides/reference/node-config-methods) guide.
:::
## Bootstrap the Node

View File

@ -2,7 +2,7 @@
title: Content Topics
---
`Content Topics` are metadata strings set by developers on outgoing messages to facilitate protocol-level features like selectively processing incoming messages ([Relay](/overview/concepts/protocols#relay) or [Filter](/overview/concepts/protocols#filter)) and retrieving historical messages ([Store](/overview/concepts/protocols#store)) that meet specific filtering criteria. Check out the [WAKU2-TOPICS](https://rfc.vac.dev/spec/23/#content-topics) specification to learn more.
`Content Topics` are metadata strings set by developers on outgoing messages to facilitate protocol-level features like selectively processing incoming messages ([Relay](/overview/concepts/protocols#relay) or [Filter](/overview/concepts/protocols#filter)) and retrieving historical messages ([Store](/overview/concepts/protocols#store)) that meet specific filtering criteria. Have a look at the [WAKU2-TOPICS](https://rfc.vac.dev/spec/23/#content-topics) specification to learn more.
## Naming Format
@ -10,26 +10,26 @@ Here is the recommended format for content topics:
`/{application-name}/{version}/{content-topic-name}/{encoding}`
- `application-name`: This is the unique name of your decentralized application (dApp) to prevent conflicts with other dApps.
- `application-name`: This is the unique name of your decentralised application (DApp) to prevent conflicts with other DApps.
- `version`: Typically starting at `1`, this field helps track breaking changes in your messages.
- `content-topic-name`: The specific name of the content topic used for filtering.
- `encoding`: The message encoding or serialization format, with [Protocol Buffers](https://protobuf.dev/) (`proto`) being the recommended choice.
- `encoding`: The message encoding or serialisation format, with [Protocol Buffers](https://protobuf.dev/) (`proto`) being the recommended choice.
For example, if your dApp is called `SuperCrypto` and it allows users to receive notifications and send private messages, you can consider using the following content topics:
For example, if your DApp is called `SuperCrypto` and it allows users to receive notifications and send private messages, you can consider using the following content topics:
- `/supercrypto/1/notification/proto`
- `/supercrypto/1/private-message/proto`
:::tip
While you can choose any encoding format for your `Content Topic`, we highly recommend using Protocol Buffers (`proto`) because of its efficiency. Choosing a lightweight format ensures optimal performance of your dApp.
While you can choose any encoding format for your `Content Topic`, we highly recommend using Protocol Buffers (`proto`) because of its efficiency. Choosing a lightweight format ensures optimal performance of your DApp.
:::
## Naming Considerations
When choosing a content topic, it is crucial to consider privacy implications. The `Filter`, `Store`, and `Light Push` protocols disclose content topics to peers, enabling said peer to link ip and content topic interests. `Relay` provides recipient anonymity thanks to `GossipSub`, but this may be lost if the content topic reveals information about the user.
When choosing a content topic, it is crucial to consider privacy implications. The `Filter`, `Store`, and `Light Push` protocols disclose content topics to peers, enabling said peer to link IP and content topic interests. `Relay` provides recipient anonymity thanks to `GossipSub`, but this may be lost if the content topic reveals information about the user.
:::info
Waku is developing privacy-preserving features like [Anonymous Filter Subscription](https://rfc.vac.dev/spec/12/#future-work) for the `Filter` protocol and [Anonymous Query](https://rfc.vac.dev/spec/13/#future-work) for the `Store` protocol to hide content topics from potential adversaries.
Waku is developing privacy preserving features like [Anonymous Filter Subscription](https://rfc.vac.dev/spec/12/#future-work) for the `Filter` protocol and [Anonymous Query](https://rfc.vac.dev/spec/13/#future-work) for the `Store` protocol to hide content topics from potential adversaries.
:::
You can preserve the anonymity of individual identities by increasing [k-anonymity](https://www.privitar.com/blog/k-anonymity-an-introduction/), where k is proportional to the network size (number of subscribers). This involves using a single content topic across the entire application or specific features such as notifications or private messages, allowing multiple users to share it.

View File

@ -2,11 +2,11 @@
title: Discv5
---
`Discv5` is a decentralized and efficient peer discovery mechanism for the Waku Network. It uses a [Distributed Hash Table (DHT)](https://en.wikipedia.org/wiki/Distributed_hash_table) for storing `ENR` records, providing resistance to censorship. `Discv5` offers a global view of participating nodes, enabling random sampling for load distribution. It uses bootstrap nodes as an entry point to the network, providing randomized sets of nodes for mesh expansion. Check out the [Discv5](https://rfc.vac.dev/spec/33/) specification to learn more.
`Discv5` is a decentralised and efficient peer discovery mechanism for the Waku Network. It uses a [Distributed Hash Table (DHT)](https://en.wikipedia.org/wiki/Distributed_hash_table) for storing `ENR` records, providing resistance to censorship. `Discv5` offers a global view of participating nodes, enabling random sampling for load distribution. It uses bootstrap nodes as an entry point to the network, providing randomised sets of nodes for mesh expansion. Have a look at the [Discv5](https://rfc.vac.dev/spec/33/) specification to learn more.
#### Pros
- Decentralized with random sampling from a global view.
- Decentralised with random sampling from a global view.
- Continuously researched and improved.
#### Cons

View File

@ -2,9 +2,9 @@
title: DNS Discovery
---
Built upon the foundation of [EIP-1459: Node Discovery via DNS](https://eips.ethereum.org/EIPS/eip-1459), DNS Discovery allows the retrieval of an `ENR` tree from the `TXT` field of a domain name. This innovative approach enables the storage of essential node connection details, including IP, port, and multiaddr, using the standardized [ENR format](https://rfc.vac.dev/spec/31/).
Built upon the foundation of [EIP-1459: Node Discovery via DNS](https://eips.ethereum.org/EIPS/eip-1459), DNS Discovery allows the retrieval of an `ENR` tree from the `TXT` field of a domain name. This innovative approach enables the storage of essential node connection details, including IP, port, and multiaddr, using the standardised [ENR format](https://rfc.vac.dev/spec/31/).
This bootstrapping method allows anyone to register and publish a domain name for the network, promoting increased decentralization.
This bootstrapping method allows anyone to register and publish a domain name for the network, promoting increased decentralisation.
#### Pros

View File

@ -2,7 +2,7 @@
title: Network Domains
---
Waku is a unified and cohesive entity that offers a rich ecosystem with three distinct network interaction domains. These domains serve specialized purposes and contribute to the robust functionality of Waku, forming its foundation.
Waku is a unified and cohesive entity that offers a rich ecosystem with three distinct network interaction domains. These domains serve specialised purposes and contribute to the robust functionality of Waku, forming its foundation.
## Discovery Domain
@ -16,7 +16,7 @@ Waku employs gossiping through [Relay](/overview/concepts/protocols#relay) to di
## Request/Response Domain
Waku provides a set of protocols to optimize its performance in resource-limited environments like low bandwidth or mostly offline scenarios for multiple purposes.
Waku provides a set of protocols to optimise its performance in resource-limited environments like low bandwidth or mostly offline scenarios for multiple purposes.
- [Store](/overview/concepts/protocols#store) enables the retrieval of historical messages.
- [Filter](/overview/concepts/protocols#filter) efficiently retrieves a subset of messages to conserve bandwidth.

View File

@ -2,7 +2,7 @@
title: Peer Discovery
---
When initializing a Waku node, it must connect with other peers to enable message sending, receiving, and retrieval. To achieve this, a discovery mechanism is employed to locate other peers in the network. This process is known as bootstrapping.
When initialising a Waku node, it must connect with other peers to enable message sending, receiving, and retrieval. To achieve this, a discovery mechanism is employed to locate other peers in the network. This process is known as bootstrapping.
Once a connection is established, the node must actively seek out additional peers to have:

View File

@ -2,16 +2,16 @@
title: Peer Exchange
---
The primary objective of this protocol is to facilitate peer connectivity for resource-limited devices without relying on `Discv5`. The peer exchange protocol enables light nodes to request peers from other nodes within the network. Check out the [Peer Exchange](https://rfc.vac.dev/spec/34/) specification to learn more.
The primary objective of this protocol is to facilitate peer connectivity for resource-limited devices without relying on `Discv5`. The peer exchange protocol enables light nodes to request peers from other nodes within the network. Have a look at the [Peer Exchange](https://rfc.vac.dev/spec/34/) specification to learn more.
:::info
`Peer Exchange` enables requesting random peers from other network nodes without revealing information about their connectivity or neighborhood.
`Peer Exchange` enables requesting random peers from other network nodes without revealing information about their connectivity or neighbourhood.
:::
#### Pros
- Low resource requirements.
- Decentralized with random sampling of nodes from a global view using `Discv5`.
- Decentralised with random sampling of nodes from a global view using `Discv5`.
#### Cons

View File

@ -10,14 +10,14 @@ Waku takes a modular approach, providing a range of protocols that enable applic
## [RLN Relay](https://rfc.vac.dev/spec/17/)
`RLN Relay` protocol extends the `Relay` protocol by using [Rate Limit Nullifiers (RLN)](https://rfc.vac.dev/spec/32/) to provide efficient and economic spam prevention. It enforces a rate limit on messages over time for all peers in the network, economically preventing spam, and imposes financial penalties and network removal for spammers. You can find more details in the [RLN Relay blog post](https://vac.dev/rln-relay).
`RLN Relay` protocol extends the `Relay` protocol by using [Rate Limit Nullifiers (RLN)](https://rfc.vac.dev/spec/32/) to provide efficient and economic spam-prevention. It enforces a rate limit on messages over time for all peers in the network, economically preventing spam, and imposes financial penalties and network removal for spammers. You can find more details in the [RLN Relay blog post](https://vac.dev/rln-relay).
## [Filter](https://rfc.vac.dev/spec/12/)
`Filter` protocol allows light nodes to selectively subscribe to specific messages relayed by other peers using [content topics](/overview/concepts/content-topics). It is designed to be a lightweight alternative for accessing the `Relay` network, particularly tailored for devices with limited bandwidth.
:::info
`Filter` protocol helps optimize bandwidth usage, but it has fewer privacy guarantees as it must disclose the content topic to its peers to retrieve messages.
`Filter` protocol helps optimise bandwidth usage, but it has fewer privacy guarantees as it must disclose the content topic to its peers to retrieve messages.
:::
## [Store](https://rfc.vac.dev/spec/13/)
@ -25,12 +25,12 @@ Waku takes a modular approach, providing a range of protocols that enable applic
`Store` protocol is responsible for storing messages relayed in the network, making it possible to query and retrieve them later. This functionality benefits offline peers by enabling them to retrieve missed messages upon reconnection.
:::info
Using `Relay` and `Filter` protocols is recommended when a node is online, as `Store` does not guarantee data availability. The `Store` protocol is suitable for retrieving messages when connecting to the network, like when a dApp starts.
Using `Relay` and `Filter` protocols is recommended when a node is online, as `Store` does not guarantee data availability. The `Store` protocol is suitable for retrieving messages when connecting to the network, like when a DApp starts.
:::
## [Light Push](https://rfc.vac.dev/spec/19/)
`Light Push` is a [Request/Response](/overview/concepts/network-domains#requestresponse-domain) protocol for nodes with limited bandwidth and short connection windows. It allows a client to receive an acknowledgment when sending messages, indicating that at least one peer has received them. Subsequently, the remote peer forwards these messages to the `Relay` network.
`Light Push` is a [Request/Response](/overview/concepts/network-domains#requestresponse-domain) protocol for nodes with limited bandwidth and short connection windows. It allows a client to receive an acknowledgement when sending messages, indicating that at least one peer has received them. Subsequently, the remote peer forwards these messages to the `Relay` network.
:::info
While the `Light Push` protocol acknowledges the receipt by the remote peer, it does not guarantee network-wide propagation.

View File

@ -12,10 +12,10 @@ import History from "@site/diagrams/_history.md";
### 2013
The Ethereum White Paper was published, unveiling the holy trinity of Web3, comprising:
The Ethereum White Paper was published, unveiling the holy trinity of web3, comprising:
- Ethereum for consensus.
- Swarm for decentralized storage.
- Swarm for decentralised storage.
- Whisper for peer-to-peer messaging.
### 2015-2018
@ -24,7 +24,7 @@ The development of the Whisper protocol lagged behind the advancements made by t
### 2018
Due to the lack of progress made on Whisper and growing concerns around scalability, [Vac](https://vac.dev/) was established to focus on researching and developing more scalable peer-to-peer messaging solutions.
Owing to the lack of progress made on Whisper and growing concerns around scalability, [Vac](https://vac.dev/) was established to focus on researching and developing more scalable peer-to-peer messaging solutions.
### 2020
@ -32,7 +32,7 @@ Due to the lack of progress made on Whisper and growing concerns around scalabil
- Enhanced performance.
- Better scalability.
- Ability to work in resource-limited environments.
- Capability to work in resource-limited environments.
- And many more.
### 2021
@ -41,4 +41,4 @@ Due to the lack of progress made on Whisper and growing concerns around scalabil
### Present Day
Waku has continued to evolve and enhance itself, enabling privacy-focused and uncompromised Web3 communication at scale.
Waku has continued to evolve and enhance itself, enabling privacy-focused and uncompromised web3 communication at scale.

View File

@ -7,15 +7,15 @@ slug: /
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 is a family of robust and censorship-resistant communication protocols enabling privacy-focused messaging for Web3 applications. It is designed to operate in resource-limited environments but can also be used as a node or desktop application.
Waku is a family of robust and censorship resistant communication protocols enabling privacy-focused messaging for web3 applications. It is designed to operate in resource-limited environments but can also be used as a node or desktop application.
Waku protocols ensure that users communication remains censorship-resistant and privacy-preserving, giving them complete control over their data. By integrating Waku into your dApp, you can add decentralized communication features to your application without compromising security or privacy.
Waku protocols ensure that users' communication remains censorship resistant and privacy preserving, giving them complete control over their data. By integrating Waku into your DApp, you can add decentralised communication features to your application without compromising security or privacy.
## Motivation and Goals
The Waku family of protocols is designed for diverse applications due to their properties, such as:
### Generalized
### Generalised
Waku aims to solve the problem of ephemeral messaging between subsystems and nodes through a flexible, secure, and private protocol. It supports human-to-human and machine-to-machine messaging scenarios but is not designed for data storage.
@ -31,7 +31,7 @@ Waku is suitable for applications that require a peer-to-peer approach, offering
Waku can run on any platform or environment, even settings with limited resources like bandwidth, CPU, memory, disk, battery, etc. It can also function when the nodes are not publicly connected or are mostly offline.
### Privacy-Preserving
### Privacy Preserving
Waku can cater to applications that require privacy guarantees, such as:
@ -41,7 +41,7 @@ Waku can cater to applications that require privacy guarantees, such as:
### Modular Design
Waku nodes are adaptive and can be customized based on the application's requirements and environment. Users can adjust multiple parameters, such as:
Waku nodes are adaptive and can be customised based on the application's requirements and environment. Users can adjust multiple parameters, such as:
- Low privacy/low resource usage vs. high privacy/increased latency + bandwidth usage.
- Providing resources to the network vs. consuming resources.
@ -52,11 +52,11 @@ These options are part of the [Anonymity Trilemma](https://eprint.iacr.org/2017/
### Service Network
Waku provides developers with a convenient solution for building decentralized communication systems, eliminating the need to build a peer-to-peer network from scratch. Node operators can offer multiple services, such as:
Waku provides developers with a convenient solution for building decentralised communication systems, eliminating the need to build a peer-to-peer network from scratch. Node operators can offer multiple services, such as:
- Storing messages for offline devices.
- Enabling bandwidth-saving access to the [Relay](/overview/concepts/protocols#relay) network through [Light Push](/overview/concepts/protocols#light-push) and [Filter](/overview/concepts/protocols#filter) protocols.
- Implementing spam prevention and DoS mitigation features.
- Implementing spam-prevention and DoS-mitigation features.
- Providing a resilient and shared [Relay](/overview/concepts/protocols#relay) infrastructure that applications can leverage to enhance reliability and efficiency.
## How Does Waku Work?
@ -67,7 +67,7 @@ The [Relay](/overview/concepts/protocols#relay) protocol is the foundation of th
2. Providing solutions for encrypted communication, such as symmetric encryption, ECIES/asymmetric encryption, and noise handshake-based key turns.
3. Preserving bandwidth usage for resource-limited environments.
4. Implementing economic spam protection (rate limits) while ensuring privacy.
5. Developing methods to protect against mass deanonymization (currently being researched).
5. Developing methods to protect against mass deanonymisation (currently being researched).
6. Designing strategies to scale `Relay/GossipSub` securely.
If you want to learn more about how Waku works, the [WAKU2 RFC](https://rfc.vac.dev/spec/10/) provides an in-depth look under the hood.

View File

@ -16,7 +16,7 @@ A content topic is a string attached to [messages](#waku-message) to enable [pro
### [Dappnode](https://dappnode.com/)
Dappnode is an open-source platform that simplifies the hosting and management of decentralized applications and blockchain nodes, including [Waku](#waku).
Dappnode is an open-source platform that simplifies the hosting and management of decentralised applications and blockchain nodes, including [Waku](#waku).
### [Discv5](/overview/concepts/discv5)
@ -24,7 +24,7 @@ Discv5 is a [peer discovery](#peer-discovery) mechanism using a Distributed Hash
### [DNS Discovery](/overview/concepts/dns-discovery)
DNS discovery is a [peer discovery](#peer-discovery) mechanism that allows the retrieval of an [ENR](#enr) tree from the TXT field of a domain name, enabling the storage of [node](#node) connection details and promoting decentralization.
DNS discovery is a [peer discovery](#peer-discovery) mechanism that allows the retrieval of an [ENR](#enr) tree from the TXT field of a domain name, enabling the storage of [node](#node) connection details and promoting decentralisation.
### [ENR](https://rfc.vac.dev/spec/31/)
@ -36,11 +36,11 @@ Filter is a [protocol](#protocol) that enables [light nodes](#light-node) to sel
### [GossipSub](/overview/concepts/network-domains#gossip-domain)
GossipSub is a [protocol](#protocol) for efficient and scalable information dissemination in decentralized networks commonly used in blockchain systems.
GossipSub is a [protocol](#protocol) for efficient and scalable information dissemination in decentralised networks commonly used in blockchain systems.
### [Libp2p](https://libp2p.io/)
Libp2p is a modular network stack and protocol suite that allows developers to build decentralized, peer-to-peer applications across various network protocols.
Libp2p is a modular network stack and protocol suite that allows developers to build decentralised, peer-to-peer applications across various network protocols.
### Light Node
@ -48,7 +48,7 @@ A light node is a [resource-limited](#resource-limited) device or client that le
### [Light Push](/overview/concepts/protocols#light-push)
Light push is a protocol enabling [light nodes](#light-node) to send [messages](#waku-message) to the [Relay](#relay) network and receive acknowledgments confirming that a [peer](#peer) has received them.
Light push is a protocol enabling [light nodes](#light-node) to send [messages](#waku-message) to the [Relay](#relay) network and receive acknowledgements confirming that a [peer](#peer) has received them.
### Mostly Offline
@ -56,7 +56,7 @@ Mostly offline devices are clients who spend most of their time offline or disco
### Node
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.
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
@ -100,7 +100,7 @@ Rate Limit Nullifiers (RLN) are a construct based on zero-knowledge proofs that
### [Relay](/overview/concepts/protocols#relay)
Relay is a [protocol](#protocol) that extends the [GossipSub protocol](#gossipsub) to enable secure and censorship-resistant [message](#waku-message) sending and receiving among [peers](#peer) while preserving privacy. It also scales the [Waku Network](#waku) to accommodate many nodes efficiently.
Relay is a [protocol](#protocol) that extends the [GossipSub protocol](#gossipsub) to enable secure and censorship resistant [message](#waku-message) sending and receiving among [peers](#peer) while preserving privacy. It also scales the [Waku Network](#waku) to accommodate many nodes efficiently.
### Resource-Limited
@ -124,7 +124,7 @@ A transport is a network mechanism that establishes connections between [peers](
### Waku
Waku is a family of private, secure, decentralized, and peer-to-peer Web3 communication [protocols](#protocol) designed to operate in [resource-limited](#resource-limited) environments and suitable for [node](#node) or desktop application use. Additionally, these protocols collectively form the Waku Network.
Waku is a family of private, secure, decentralised, and peer-to-peer web3 communication [protocols](#protocol) designed to operate in [resource-limited](#resource-limited) environments and suitable for [node](#node) or desktop application use. Additionally, these protocols collectively form the Waku Network.
### [Waku Message](/overview/concepts/protocols#waku-message)

View File

@ -6,15 +6,15 @@ The following features are currently experimental and under research and initial
## Economic Spam Resistance
We aim to enable an incentivized spam protection technique to enhance `Relay` by using [Rate Limit Nullifiers (RLN)](https://rfc.vac.dev/spec/32/). In this advanced method, peers are limited to a certain messaging rate per epoch, and an immediate financial penalty is enforced for spammers who break this rate. You can find more details in the [RLN Relay blog post](https://vac.dev/rln-relay).
We aim to enable an incentivised spam protection technique to enhance `Relay` by using [Rate Limit Nullifiers (RLN)](https://rfc.vac.dev/spec/32/). In this advanced method, peers are limited to a certain messaging rate per epoch, and an immediate financial penalty is enforced for spammers who break this rate. You can find more details in the [RLN Relay blog post](https://vac.dev/rln-relay).
We have prepared a PoC implementation of this method in JS: <https://examples.waku.org/rln-js/>
## Prevention of Denial of Service (DoS) and Node Incentivization
## Prevention of Denial of Service (DoS) and Node Incentivisation
Denial of service signifies the case where an adversarial peer exhausts another node's service capacity (e.g., by making a large number of requests) and makes it unavailable to the rest of the system. RnD on DoS attack mitigation can tracked from here: <https://github.com/vacp2p/research/issues/148>.
In a nutshell, peers have to pay for the service they obtain from each other. In addition to incentivizing the service provider, accounting also makes DoS attacks costly for malicious peers. The accounting model can be used in `Store` and `Filter` to protect against DoS attacks.
In a nutshell, peers have to pay for the service they obtain from each other. In addition to incentivising the service provider, accounting also makes DoS attacks costly for malicious peers. The accounting model can be used in `Store` and `Filter` to protect against DoS attacks.
Additionally, along with RLN, this gives node operators who provide a useful service to the network an incentive to perform that service. Read more here: <https://vac.dev/building-privacy-protecting-infrastructure>

View File

@ -19,7 +19,7 @@ Anonymity means an adversary cannot connect an actor to their actions or data. T
## [Spam Protection](https://rfc.vac.dev/spec/10/#spam-protection)
The spam protection feature in `Relay` ensures that no adversary can flood the system with many messages, intentionally or not, regardless of the content's validity or usefulness. This protection is achieved through the [scoring mechanism](https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/gossipsub-v1.1.md#spam-protection-measures) of `GossipSub v1.1`. Peers assign scores to their connections based on their behavior and remove peers with low scores.
The spam protection feature in `Relay` ensures that no adversary can flood the system with many messages, intentionally or not, regardless of the content's validity or usefulness. This protection is achieved through the [scoring mechanism](https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/gossipsub-v1.1.md#spam-protection-measures) of `GossipSub v1.1`. Peers assign scores to their connections based on their behaviour and remove peers with low scores.
Ongoing research is being conducted, including developing [Rate Limit Nullifiers (RLN)](/overview/concepts/protocols#rln-relay), which can be explored further at: <https://github.com/vacp2p/research/issues/148>.

View File

@ -6,7 +6,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 incentivize mechanisms to run nodes, but it is not part of libp2p's scope. Additionally, users or developers do not have to deploy their infra 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 decentralize 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](/guides/nodes-and-sdks#run-a-waku-node) to support and decentralise the network.
## Waku as a Keyturn Solution

View File

@ -2,11 +2,11 @@
title: Use Cases
---
Waku is a decentralized communication network, facilitating secure and private person-to-person and machine-to-machine communication without a central authority. It supports various use cases, including but not limited to:
Waku is a decentralised communication network, facilitating secure and private person-to-person and machine-to-machine communication without a central authority. It supports various use cases, including but not limited to:
### Chat Messengers
Waku can be used as the communication layer when building a private, decentralized, and censorship-resistant messenger.
Waku can be used as the communication layer when building a private, decentralised, and censorship resistant messenger.
#### Demos
@ -14,7 +14,7 @@ Waku can be used as the communication layer when building a private, decentraliz
### Polls
With Waku, you can create, answer, and view censorship-resistant polls, promoting a democratic and transparent voting environment immune to manipulation and censorship.
With Waku, you can create, answer, and view censorship resistant polls, promoting a democratic and transparent voting environment immune to manipulation and censorship.
#### Demos
@ -42,19 +42,19 @@ To save on gas fees, votes for proposals submitted on the blockchain can be exch
### Signature Exchange for Multi-Signature Wallets
Waku can enable multiple owners of a given multi-signature wallet to exchange signatures in a decentralized, private, and censorship-resistant manner, allowing for the approval of transactions.
Waku can enable multiple owners of a given multi-signature wallet to exchange signatures in a decentralised, private, and censorship resistant manner, allowing for the approval of transactions.
### Game Mechanics Communication
Waku can be used as the communication layer for a peer-to-peer, decentralized game, eliminating the need for a centralized infrastructure for gameplay communications.
Waku can be used as the communication layer for a peer-to-peer, decentralised game, eliminating the need for a centralised infrastructure for gameplay communications.
#### Demos
* [Super Card Game](https://github.com/fjij/ethonline-2021)
### dApp to Wallet Communication
### DApp to Wallet Communication
dApp operators can use communication between a user's wallet and their dApp to notify users (e.g., governance token holders can be notified to vote on a proposal) or to request transaction signatures from the wallet.
DApp operators can use communication between a user's wallet and their DApp to notify users (e.g., governance token holders can be notified to vote on a proposal) or to request transaction signatures from the wallet.
#### Demos
@ -65,7 +65,7 @@ dApp operators can use communication between a user's wallet and their dApp to n
Waku can broadcast and aggregate Layer 2 transactions to enhance privacy, anonymity, and resilience. Aggregating transactions reduces network load and improves scalability, ensuring a more robust Layer 2 ecosystem.
### Generalized Marketplaces
### Generalised Marketplaces
Waku can enable users to offer, bid, accept, and trade goods and services, making it possible to create ride-sharing or trading apps.
@ -75,4 +75,4 @@ Waku can enable users to offer, bid, accept, and trade goods and services, makin
### Social Media Platforms
While chat messengers are a type of social media that can be decentralized and made censorship-resistant through Waku, other forms of social media, such as news feeds, blog posts, and audio or video sharing, can also benefit from using Waku.
While chat messengers are a type of social media that can be decentralised and made censorship resistant through Waku, other forms of social media, such as news feeds, blog posts, and audio or video sharing, can also benefit from using Waku.

View File

@ -2,15 +2,15 @@
title: Why Waku?
---
Present-day communication is predominantly centralized, enabling significant third-party intervention, with profit motives overshadowing principles and downplaying censorship and privacy concerns. This shift leads to the exploitation and unauthorized use of user data in the surveillance economy, where data ownership is no longer in the hands of individuals.
Present-day communication is predominantly centralised, enabling significant third-party intervention, with profit motives overshadowing principles and downplaying censorship and privacy concerns. This shift leads to the exploitation and unauthorised use of user data in the surveillance economy, where data ownership is no longer in the hands of individuals.
Waku transforms how individuals communicate and manage data by offering a scalable, decentralized solution that grants ultimate control.
Waku transforms how individuals communicate and manage data by offering a scalable, decentralised solution that grants ultimate control.
- Waku improves upon Whisper's capabilities by overcoming limitations and addressing functional gaps.
- Provides a public infrastructure for the Ethereum and multi-chain ecosystem, serving as a common good.
- Waku is not confined to a particular blockchain.
- Modular, adaptable, configurable, and can cater to various use cases.
- Enables developers to decentralize communication in their dApps or move actions off-chain while maintaining decentralization.
- Enables developers to decentralise communication in their DApps or move actions off-chain while maintaining decentralisation.
- Designed to run on various platforms, including mobile devices, cloud environments, web browsers, desktop apps, or even a [Dappnode](https://dappnode.com/)!
## Why Waku is Necessary
@ -19,6 +19,6 @@ Waku transforms how individuals communicate and manage data by offering a scalab
| - | - | - |
| **Scalability** | Whisper does not scale very well, specifically when it comes to bandwidth usage on mobile devices. | Uses GossipSub and Content Topics. |
| **Spam Resistance** | Proof of work requires too much battery and compute power making it a poor mechanism for heterogeneous nodes. | Uses innovative p2p economic spam protection mechanism RLN Relay. |
| **Incentivization Infrastructure** | There is no incentive to run a Whisper node. | Research in progress to design incentivization for node operators. |
| **Formal Specification/Documentation** | Lack of formal and unambiguous specification. | The specs and docs are open-source and licensed under CC0, making them freely available for anyone to read, modify and improve without restrictions. |
| **Incentivisation Infrastructure** | There is no incentive to run a Whisper node. | Research in progress to design incentivisation for node operators. |
| **Formal Specification/Documentation** | Lack of formal and unambiguous specification. | The specs and docs are open-source and licenced under CC0, making them freely available for anyone to read, modify and improve without restrictions. |
| **Portability** | Runs over devp2p which limits where Whisper can run and how. | Waku is built using libp2p, making it easy to run Waku anywhere. |

View File

@ -2,7 +2,7 @@
title: Powered by Waku
---
Leap into the future with Waku! Revolutionize communication, collaboration, and connectivity. Join us and create something extraordinary!
Leap into the future with Waku! Revolutionise communication, collaboration, and connectivity. Join us and create something extraordinary!
import { PoweredBy } from "@site/src/components/mdx";
@ -19,7 +19,7 @@ import { PoweredBy } from "@site/src/components/mdx";
{
name: "RAILGUN",
description:
"The privacy-focused DeFi protocol Railgun anonymizes Ethereum transactions with Waku.",
"The privacy-focused DeFi protocol Railgun anonymises Ethereum transactions with Waku.",
logoSrc: "/img/railgun-mark-black.svg",
logoSrcDark: "/img/railgun-mark-white.svg",
link: "https://railgun.org",

View File

@ -10,9 +10,9 @@ title: Watch Our Presentations
<iframe class="yt-video" src="https://www.youtube.com/embed/dMxs5GcbgG4" title="Waku Workshop: Getting Started with Waku by Alvaro Revuelta" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
## Hashing it Out: Decentralized Messaging
## Hashing it Out: Decentralised Messaging
<iframe class="yt-video" src="https://www.youtube.com/embed/vmx_oOb2On0" title="Hashing it Out: Decentralized Messaging by Franck Royer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<iframe class="yt-video" src="https://www.youtube.com/embed/vmx_oOb2On0" title="Hashing it Out: Decentralised Messaging by Franck Royer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
## Using ZKP for Better p2p Messaging with Waku
@ -26,26 +26,26 @@ title: Watch Our Presentations
<iframe class="yt-video" src="https://www.youtube.com/embed/CW1DYJifdhs" title="Building Privacy-Protecting Infrastructure by Oskar Thorén" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
## Secureum TrustX - Waku: Enabling a New Dimension for dApps
## Secureum TrustX - Waku: Enabling a New Dimension for DApps
<iframe class="yt-video" src="https://www.youtube.com/embed/GXU5Fd6gMVw?start=21700" title="Secureum TrustX - Waku: Enabling a New Dimension for dApps by Corey Petty" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<iframe class="yt-video" src="https://www.youtube.com/embed/GXU5Fd6gMVw?start=21700" title="Secureum TrustX - Waku: Enabling a New Dimension for DApps by Corey Petty" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
## Waku: Enabling a New Dimension for dApps
## Waku: Enabling a New Dimension for DApps
<iframe class="yt-video" src="https://www.youtube.com/embed/OdXtMD-hgdg" title="Waku: enabling a new dimension for dApps by Corey Petty" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<iframe class="yt-video" src="https://www.youtube.com/embed/OdXtMD-hgdg" title="Waku: enabling a new dimension for DApps by Corey Petty" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
## The Next Level of Decentralization Messaging in Web3
## The Next Level of Decentralisation Messaging in Web3
<iframe class="yt-video" src="https://www.youtube.com/embed/1QjxqrLO8WA" title="The Next Level of Decentralization Messaging in Web3 by Franck Royer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<iframe class="yt-video" src="https://www.youtube.com/embed/1QjxqrLO8WA" title="The Next Level of Decentralisation Messaging in Web3 by Franck Royer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
## Build with Waku &amp; DappConnect
<iframe class="yt-video" src="https://www.youtube.com/embed/ooRyn4aXsrM" title="EthOnline Status Bounty - Build with Waku &amp; DappConnect by Franck Royer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
## DappConnect: Enabling Decentralized Communications Using Waku
## DappConnect: Enabling Decentralised Communications Using Waku
<iframe class="yt-video" src="https://www.youtube.com/embed/rQOp3qoDF0g" title="DappConnect: Enabling decentralized communications using Waku by Franck Royer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<iframe class="yt-video" src="https://www.youtube.com/embed/rQOp3qoDF0g" title="DappConnect: Enabling decentralised communications using Waku by Franck Royer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
## DappConnect: Decentralized Communication Using Waku
## DappConnect: Decentralised Communication Using Waku
<iframe class="yt-video" src="https://www.youtube.com/embed/CBknF-6Z-Ds" title="DappConnect: Decentralized communication using Waku" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<iframe class="yt-video" src="https://www.youtube.com/embed/CBknF-6Z-Ds" title="DappConnect: Decentralised communication using Waku" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

View File

@ -14,8 +14,8 @@ const config = {
// metadata like html lang. For example, if your site is Chinese, you may want
// to replace "en" with "zh-Hans".
i18n: {
defaultLocale: "en",
locales: ["en"],
defaultLocale: "en-GB",
locales: ["en-GB"],
},
presets: [
[

View File

@ -73,7 +73,6 @@ const sidebars = {
items: [
"guides/js-waku/light-send-receive",
"guides/js-waku/store-retrieve-messages",
"guides/js-waku/use-waku-react",
"guides/js-waku/use-waku-create-app",
{
type: 'html',