rewordings, expanded guides, reorg SDKs

This commit is contained in:
LordGhostX 2023-05-24 15:28:36 +01:00
parent 72ccda0cdf
commit aba04e3649
No known key found for this signature in database
GPG Key ID: 520CC5DC4F94FCC7
12 changed files with 69 additions and 48 deletions

View File

@ -4,13 +4,13 @@ title: Join Our Community
Welcome to the Waku Community! Whether you're 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.
## [Discourse](https://forum.vac.dev/)
## [Forum](https://forum.vac.dev/)
Have you got questions, or are you eager to discuss Waku? Head to the [Vac Discourse forum](https://forum.vac.dev/) and join the conversation!
Have you got questions, or are you eager to discuss Waku? Head to the [Vac Forum](https://forum.vac.dev/) and join the conversation!
## [Discord](https://discord.gg/Nrac59MfSX)
Connect with like-minded individuals in the Waku ecosystem! Introduce yourself, join developer conversations, or seek assistance. Join the [Vac Discord](https://discord.gg/Nrac59MfSX) today!
Connect with like-minded individuals in the Waku ecosystem! Introduce yourself, join developer conversations, or seek assistance. Join the [Waku Discord](https://discord.gg/Nrac59MfSX) today!
## [Twitter](https://twitter.com/waku_org)
@ -18,4 +18,4 @@ Stay informed and updated with the latest news and insights from Waku. [Follow u
## [Telegram](https://t.me/waku_org)
Join the [Waku Telegram group](https://t.me/waku_org) now and become part of the thriving community! Stay informed, share ideas, and connect with fellow enthusiasts.
Join the [Waku Telegram Group](https://t.me/waku_org) now and become part of the thriving community! Stay informed, share ideas, and connect with fellow enthusiasts.

View File

@ -8,7 +8,7 @@ Get involved in Waku's open-source initiatives to improve the protocol, SDKs, de
By integrating Waku into your application, you can contribute by:
- [Running a Waku node](https://github.com/waku-org/nwaku/tree/master/docs/operators) within your application.
- [Operating a node](https://github.com/waku-org/nwaku/tree/master/docs/operators) within your application.
- Reporting bugs and suggesting missing features to the development team.
- Inspiring other developers to explore and utilize Waku for [various use cases](/overview/use-cases).
@ -24,7 +24,7 @@ To request a new feature, create an issue in the appropriate [GitHub repository]
## Make Pull Requests
Community pull requests (PRs) are highly encouraged, but we recommend beginning with a feature request or posting on the [Vac Discourse forum](https://forum.vac.dev/) to gauge interest and gather feedback before proceeding with a PR.
Community pull requests (PRs) are highly encouraged, but we recommend beginning with a feature request or posting on the [Vac Forum](https://forum.vac.dev/) to gauge interest and gather feedback before proceeding with a PR.
## Contribute to Waku Research

View File

@ -12,7 +12,7 @@ Once a connection is established, the node must actively seek out additional pee
## Predefined Nodes
Waku applications have the flexibility to embed bootstrap node addresses directly into their codebase. Developers can opt to utilize either the [predefined nodes by Status](https://github.com/waku-org/js-waku/blob/master/packages/core/src/lib/predefined_bootstrap_nodes.ts#L45) or [set up their nodes](https://github.com/waku-org/nwaku/tree/master/docs/operators) per their preference.
Waku applications have the flexibility to embed bootstrap node addresses directly into their codebase. Developers can opt to utilize either the [predefined nodes by Status](https://github.com/waku-org/js-waku/blob/master/packages/core/src/lib/predefined_bootstrap_nodes.ts#L45) or [operate a node](https://github.com/waku-org/nwaku/tree/master/docs/operators) per their preference.
#### Pros

View File

@ -6,15 +6,19 @@ Waku takes a modular approach, providing a range of protocols that enable applic
## [Relay](https://rfc.vac.dev/spec/11/)
The `Relay` protocol employs a Pub/Sub architecture to facilitate message routing among peers. It extends the [libp2p GossipSub protocol](https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/README.md) to create a privacy-focused peer-to-peer messaging protocol that enables secure communication channels, encryption, and protection against censorship.
`Relay` protocol employs a Pub/Sub architecture to facilitate message routing among peers. It extends the [libp2p GossipSub protocol](https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/README.md) to create a privacy-focused peer-to-peer messaging protocol that enables secure communication channels, encryption, and protection against censorship.
## [RLN Relay](https://rfc.vac.dev/spec/17/)
`RLN Relay` protocol extends the `Relay` protocol by using [Rate Limiting Nullifiers (RLN)](https://rfc.vac.dev/spec/32/) to provide efficient and economic spam prevention. It caps the bandwidth usage for all peers on the network, effectively preventing spam, and imposes financial penalties and network removal for spammers. You can find more details [in this blog post](https://vac.dev/rln-relay).
## [Filter](https://rfc.vac.dev/spec/12/)
The `Filter` protocol allows light nodes to selectively subscribe to specific messages transmitted by other peers. It is designed to be a lightweight alternative to the `Relay` protocol, particularly tailored for devices with limited bandwidth.
`Filter` protocol allows light nodes to selectively subscribe to specific messages transmitted by other peers. It is designed to be a lightweight alternative to the `Relay` protocol, particularly tailored for devices with limited bandwidth.
## [Store](https://rfc.vac.dev/spec/13/)
The `Store` protocol is responsible for storing messages relayed on 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.
`Store` protocol is responsible for storing messages relayed on 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.
@ -28,14 +32,16 @@ Using `Relay` and `Filter` protocols is recommended when a node is online, as `S
While the `Light Push` protocol acknowledges the receipt by the remote peer, it does not guarantee network-wide propagation.
:::
## [Message](https://rfc.vac.dev/spec/14)
## [Waku Message](https://rfc.vac.dev/spec/14)
`Message` specifies the message structure used in the Waku network. It defines metadata fields, such as content topics and timestamps, that other protocols can use.
`Waku Message` specifies the message structure used in the Waku network. It defines the attributes and metadata fields that accompany a message, including the following:
- `content_topic` attribute for [content-based filtering](/overview/concepts/content-topics).
- `payload` attribute containing the message data payload to be sent.
- `meta` attribute for conveying additional details to various protocols for application-specific processing.
- `timestamp` attribute signifying the time at which the message was generated by its sender.
- `ephemeral` attribute specifying whether the network should not persist the message.
## [Payload](https://rfc.vac.dev/spec/26)
`Payload` provides guidelines for implementing secure and private communication in the network. It covers encryption, decryption, and signing methods for message payloads, focusing on confidentiality, authenticity, integrity, and unlinkability.
## [RLN Relay](https://rfc.vac.dev/spec/17/)
The `RLN Relay` protocol extends the `Relay` protocol by adding spam protection using [Rate Limiting Nullifiers (RLN)](https://rfc.vac.dev/spec/32/). It enforces a global messaging rate for all peers to prevent spam in the Waku network. Spammers face financial penalties and removal from the system. This protocol provides efficient and economic spam prevention suitable for resource-constrained environments.
`Payload` provides guidelines for implementing secure and private communication in the network. It covers encryption, decryption, and signing methods for message payloads, focusing on confidentiality, authenticity, integrity, and unlinkability.

View File

@ -1,8 +1,8 @@
---
title: The Story of Waku
title: History of Waku
---
Waku v1 was a fork of Whisper with some added tweaks for efficiency. Waku v2 is a completely redesigned suite of protocols designed to address the goals set out [previously](/#motivation-and-goals).
`Waku v1` was a fork of Whisper with some added tweaks for efficiency. `Waku v2` introduces a fully revamped suite of protocols designed to address the goals set out [previously](/#motivation-and-goals).
```mermaid
%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'HISTORY'}} }%%
@ -25,7 +25,11 @@ gitGraph
### 2013
The introduction of the Ethereum White Paper marked the unveiling of the Holy Trinity, which comprises Ethereum for consensus, Swarm for decentralized storage, and Whisper for peer-to-peer messaging.
The Ethereum White Paper was published, unveiling the holy trinity of Web3, comprising:
- Ethereum for consensus.
- Swarm for decentralized storage.
- Whisper for peer-to-peer messaging.
### 2015-2018
@ -37,8 +41,17 @@ Due to the lack of progress made on Whisper and growing concerns around scalabil
### 2020
Status introduced Waku v1 as its messaging protocol, which replaced Whisper.
`Waku v1` replaces Whisper as the messaging protocol in Status, resulting in the following:
- Enhanced performance.
- Better scalability.
- Ability to work in resource-limited environments.
- And many more.
### 2021
Waku v2 supersedes Waku v1.
`Waku v2` releases with a fully revamped suite of protocols that not only supersedes but also surpasses the performance of `Waku v1`.
### Present Day
Waku has continued to evolve and enhance itself, solidifying its position as the standard for Web3 communication.

View File

@ -4,10 +4,10 @@ slug: /
---
:::caution
While Waku comes with risks and limitations, as it is still in development and preparing for extensive adoption, it is already demonstrating its capabilities by [powering various applications](/powered-by-waku). Join our [community](/community) to stay updated on our progress.
Waku has risks and limitations as it is still developing and preparing for extensive adoption. However, it is already demonstrating its capabilities by [powering various applications](/powered-by-waku). [Join our community](/community) to stay updated on our progress.
:::
Waku is a family of peer-to-peer protocols that offer secure and private communication in a decentralized environment, making it suitable for various decentralized applications (dApps). It is designed to operate in resource-limited environments but can also be used as a node or desktop application.
Waku, the standard of Web3 communication, is a family of protocols that offer secure, private, and peer-to-peer communication in a decentralized environment. 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 incorporating Waku into your dApp, you can add decentralized communication features to your application without compromising security or privacy.

View File

@ -6,7 +6,7 @@ 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 limiting nullifiers. More details on this can be found in [WAKU2-RLN-RELAY](https://rfc.vac.dev/spec/17). In this advanced method, peers are limited to a certain rate of messaging per epoch and an immediate financial penalty is enforced for spammers who break this rate.
We aim to enable an incentivized spam protection technique to enhance `Relay` by using [Rate Limiting 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 this blog post](https://vac.dev/rln-relay).
We have prepared a PoC implementation of this method in JS: <https://examples.waku.org/rln-js/>

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's 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 your node](https://github.com/waku-org/nwaku/tree/master/docs/operators) to support and decentralize the network.
Waku intends to incentivize mechanisms to run nodes, but it's 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 [operate a node](https://github.com/waku-org/nwaku/tree/master/docs/operators) to support and decentralize the network.
## Waku as a Keyturn Solution

View File

@ -5,8 +5,6 @@ custom_edit_url: null
Leap into the future with Waku! Revolutionize communication, collaboration, and connectivity. Join us and create something extraordinary!
<!-- Ready to showcase your app with us? Let us know, and we will share your extraordinary creation with the world! -->
```mdx-code-block
import PoweredByCard from "@site/src/components/PoweredByCard";

View File

@ -1,40 +1,44 @@
---
title: Overview
title: Getting Started With Waku
slug: /sdk/overview
---
# Waku SDKs
:::caution
While Waku comes with risks and limitations, as it is still in development and preparing for extensive adoption, it is already demonstrating its capabilities by [powering various applications](/powered-by-waku). Join our [community](/community) to stay updated on our progress.
Waku has risks and limitations as it is still developing and preparing for extensive adoption. However, it is already demonstrating its capabilities by [powering various applications](/powered-by-waku). [Join our community](/community) to stay updated on our progress.
:::
Ready to integrate Waku into your application for private, secure, censorship-free communication? Explore the available integration options and contribute by running a Waku node.
Ready to integrate Waku into your application for private, secure, censorship-free communication? Explore the available integration options and contribute by operating a node.
## Running a Waku Node
## Operating a Waku Node
The Waku network is permissionless and decentralized, consisting of nodes. It is open for anyone to run their node, use the network, and contribute to its support. Please visit the [nwaku guide for operators](https://github.com/waku-org/nwaku/tree/master/docs/operators) to learn more.
The Waku network is permissionless and decentralized, consisting of nodes. It is open for anyone to operate a node, use the network, and contribute to its support. Please visit the [nwaku guide for operators](https://github.com/waku-org/nwaku/tree/master/docs/operators) to learn more.
## Library Integration
## SDK Integrations
| SDK | Description | Documentation |
| - | - | - |
| [nwaku](https://github.com/waku-org/nwaku) | Nim SDK recommended for deploying a node in the cloud or at home | |
| [nwaku](https://github.com/waku-org/nwaku) | Nim SDK recommended for operating a node and interacting with Waku | |
| [js-waku](https://github.com/waku-org/js-waku) | JavaScript/TypeScript SDK designed for browser environments | |
| [go-waku](https://github.com/waku-org/go-waku) | Golang SDK designed for native integration in Golang applications, includes C bindings for usage in C/C++, C#/Unity, Swift, Kotlin, and NodeJS | |
| [waku-rust-bindings](https://github.com/waku-org/waku-rust-bindings) | Rust wrapper using bindings provided by `go-waku` and is designed for Rust applications | |
| [waku-ui](https://github.com/waku-org/waku-ui) | React components and UI adapters designed for seamless integration with `js-waku` | |
| [go-waku](https://github.com/waku-org/go-waku) | Golang SDK designed for integration in Golang applications, includes C bindings for usage in C/C++, C#/Unity, Swift, and Kotlin | |
| [waku-rust-bindings](https://github.com/waku-org/waku-rust-bindings) | Rust wrapper using `go-waku` bindings designed for integration in Rust applications | |
## API Integration
| API Protocol | Description | Documentation |
| - | - | - |
| JSON-RPC | `JSON-RPC API` provided by Waku nodes for seamless access and interaction with the Waku network | |
| JSON-RPC | `JSON-RPC API` provided by nodes for seamless interaction with Waku | |
## Mobile Integration
## Mobile Integrations
| Language | Description | Documentation |
| - | - | - |
| React Native | React Native wrapper using bindings provided by `go-waku` and is designed for mobile integration. | |
| Swift (iOS) | Swift applications can seamlessly integrate Waku with the C bindings provided by `go-waku`. | |
| Kotlin (Android) | Kotlin applications can seamlessly integrate Waku with the C bindings provided by `go-waku`. | |
| React Native | React Native wrapper using `go-waku` bindings designed for native mobile integration | |
| Swift (iOS) | Swift applications can use `go-waku` bindings to seamlessly integrate Waku | |
| Kotlin (Android) | Kotlin applications can use `go-waku` bindings to seamlessly integrate Waku | |
## Other Integrations
| SDK | Description | Documentation |
| - | - | - |
| [waku-ui](https://github.com/waku-org/waku-ui) | React components and UI adapters designed for seamless integration with `js-waku` | |
| [@waku/create-app](https://www.npmjs.com/package/@waku/create-app) | Starter kit to bootstrap your next Waku project from various example templates | |

View File

@ -99,7 +99,7 @@ const config = {
footer: {
links: [
{
title: "SDKs",
title: "Waku SDKs",
items: [
{
to: "/sdk/overview",
@ -112,7 +112,7 @@ const config = {
items: [
{
href: "https://forum.vac.dev/",
label: "Discourse"
label: "Forum"
},
{
href: "https://discord.gg/Nrac59MfSX",

View File

@ -19,8 +19,8 @@ const sidebars = {
collapsible: true,
items: [
"overview/concepts/protocols",
"overview/concepts/network-domains",
"overview/concepts/peer-discovery",
"overview/concepts/network-domains",
"overview/concepts/content-topics",
"overview/concepts/transports"
]