implement feedback
This commit is contained in:
parent
fc3bf65cb8
commit
c0591c4699
|
@ -18,4 +18,4 @@ Join the [Waku Telegram Group](https://t.me/waku_org) now and become part of the
|
|||
|
||||
## [Vac Forum](https://forum.vac.dev/)
|
||||
|
||||
Have you got questions, or are you eager to discuss Waku? Head to the [Vac Forum](https://forum.vac.dev/) and join the conversation!
|
||||
Are you seeking answers or looking forward to engaging in in-depth discussions about Waku? Join the conversation on the [Vac Forum](https://forum.vac.dev/), where you can participate in research-related and other insightful talks.
|
|
@ -2,29 +2,25 @@
|
|||
title: Contribute to Waku
|
||||
---
|
||||
|
||||
Get involved in Waku's open-source initiatives to improve the protocols, SDKs, developer tools and examples, and documentation.
|
||||
|
||||
## Build a Waku Application
|
||||
|
||||
By integrating Waku into your application, you can contribute by:
|
||||
Get involved in Waku's open-source initiatives to improve the protocols, SDKs, developer tools and examples, and documentation. You can contribute by:
|
||||
|
||||
- [Operating a node](/guides/sdks-and-nodes#operate-a-waku-node) within your application.
|
||||
- Reporting bugs and suggesting missing features to the development team.
|
||||
- [Reporting bugs](#report-a-bug) and [suggesting missing features](#suggest-a-feature) to the development team.
|
||||
- Inspiring other developers to explore and utilize Waku for [various use cases](/getting-started/use-cases).
|
||||
|
||||
Begin your journey by visiting the [SDKs and Nodes](/guides/sdks-and-nodes) guide and start building today!
|
||||
Begin your journey by visiting the [SDKs and Nodes](/guides/sdks-and-nodes) guide and start building on Waku today!
|
||||
|
||||
## Report a Bug
|
||||
|
||||
To report a bug, create an issue in the appropriate [GitHub repository](https://github.com/waku-org). Ensure no issue exists about the bug and include detailed steps to reproduce the bug.
|
||||
|
||||
## Request a Feature
|
||||
## Suggest a Feature
|
||||
|
||||
To request 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 prioritize accordingly.
|
||||
|
||||
## Make Pull Requests
|
||||
|
||||
Community pull requests (PRs) are highly encouraged, but we recommend beginning with a feature request or posting on the [Waku Discord](https://discord.waku.org/) to gauge interest and gather feedback before proceeding with a PR.
|
||||
Community pull requests (PRs) are highly encouraged, but we recommend [suggesting a feature](#suggest-a-feature) first to gauge interest and gather feedback before proceeding with a PR.
|
||||
|
||||
## Contribute to Waku Research
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ Here is the recommended format for content topics:
|
|||
- `application-name`: This is the unique name of your decentralized 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. If your dApp utilizes Waku for multiple features, it is advisable to have a separate content topic for each feature.
|
||||
- `encoding`: The message serialization/encoding format, with [Protocol Buffers](https://protobuf.dev/) (`proto`) being the commonly used choice.
|
||||
- `encoding`: The message serialization/encoding format, with [Protocol Buffers](https://protobuf.dev/) (`proto`) being the recommended choice.
|
||||
|
||||
For instance, if your dApp is called `SuperCrypto` and it allows users to receive notifications and send private messages, you can consider utilizing the following content topics:
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ Waku is a unified and cohesive entity that offers a rich ecosystem with three di
|
|||
|
||||
## Discovery Domain
|
||||
|
||||
Peer discovery in Waku facilitates locating other peers within the network. As a modular protocol, Waku incorporates various discovery mechanisms, such as [Discv5](/getting-started/concepts/peer-discovery#discv5) and [Peer Exchange](/getting-started/concepts/peer-discovery#peer-exchange). These mechanisms allow developers to choose the most suitable option(s) for their specific use cases and user environments, including mobile phones, desktop browsers, servers, and more.
|
||||
Peer discovery in Waku facilitates locating other nodes within the network. As a modular protocol, Waku incorporates various discovery mechanisms, such as [Discv5](/getting-started/concepts/peer-discovery#discv5) and [Peer Exchange](/getting-started/concepts/peer-discovery#peer-exchange). These mechanisms allow developers to choose the most suitable option(s) for their specific use cases and user environments, including mobile phones, desktop browsers, servers, and more.
|
||||
|
||||
## Gossip Domain
|
||||
|
||||
|
|
|
@ -16,6 +16,10 @@ Waku takes a modular approach, providing a range of protocols that enable applic
|
|||
|
||||
`Filter` protocol allows light nodes to selectively subscribe to specific messages transmitted by other peers using [content topics](/getting-started/concepts/content-topics). It is designed to be a lightweight alternative to the `Relay` protocol, 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.
|
||||
:::
|
||||
|
||||
## [Store](https://rfc.vac.dev/spec/13/)
|
||||
|
||||
`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.
|
||||
|
@ -26,7 +30,7 @@ Using `Relay` and `Filter` protocols is recommended when a node is online, as `S
|
|||
|
||||
## [Light Push](https://rfc.vac.dev/spec/19/)
|
||||
|
||||
`Light Push` is a [Request/Reply](/getting-started/concepts/network-domains#requestreply-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.
|
||||
`Light Push` is a [Request/Reply](/getting-started/concepts/network-domains#requestreply-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.
|
||||
|
||||
:::info
|
||||
While the `Light Push` protocol acknowledges the receipt by the remote peer, it does not guarantee network-wide propagation.
|
||||
|
|
|
@ -6,7 +6,7 @@ Transports help move data packets across a network by establishing connections b
|
|||
|
||||
Waku is a transport-agnostic framework that allows developers to choose and support multiple protocols according to their requirements. For Waku nodes, the following transports are recommended:
|
||||
|
||||
- **TCP:** By default, Waku nodes utilize TCP for communication. Service nodes should employ TCP for listening to and connecting with other peers.
|
||||
- **TCP:** By default, Waku nodes utilize TCP for communication. Service nodes should employ TCP for listening to and connecting with other nodes.
|
||||
- **Secure WebSocket:** In browser environments, secure WebSocket is used. Service nodes are encouraged to set up SSL certificates to enable incoming connections from browsers and serve them securely.
|
||||
- Other protocols like [WebRTC](https://github.com/waku-org/js-waku/issues/20), [WebTransport](https://github.com/waku-org/js-waku/issues/697), and QUIC have been researched and studied for potential integration.
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ A light node is a [resource-limited](#resource-limited) device or client that se
|
|||
|
||||
### Light Push
|
||||
|
||||
Light push is a protocol enabling [light nodes](#light-node) to send [messages](#waku-message) to the 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 acknowledgments confirming that a [peer](#peer) has received them.
|
||||
|
||||
### Node
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ We have prepared a PoC implementation of this method in JS: <https://examples.wa
|
|||
|
||||
## Prevention of Denial of Service (DoS) and Node Incentivization
|
||||
|
||||
Denial of service signifies the case where an adversarial peer exhausts another peer'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>.
|
||||
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.
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ Ready to integrate Waku into your application for private, secure, censorship-fr
|
|||
|
||||
## Operate a Waku Node
|
||||
|
||||
The Waku network is permissionless and decentralized, consisting of nodes. It is open for anyone to run a node, use the network, and contribute to its support. Please visit the [nwaku guide](https://github.com/waku-org/nwaku/tree/master/docs/operators) or [go-waku guide](https://github.com/waku-org/go-waku/tree/master/docs/operators) for operators to learn more.
|
||||
The Waku network is permissionless and decentralized, consisting of nodes. It is open for anyone to run a node, use the network, and contribute to its support. Please visit the [nwaku guide](https://github.com/waku-org/nwaku/tree/master/docs/operators) (recommended) or [go-waku guide](https://github.com/waku-org/go-waku/tree/master/docs/operators) for operators to learn more.
|
||||
|
||||
## Integrate Using SDKs
|
||||
|
||||
|
@ -19,10 +19,9 @@ Waku is implemented in multiple SDKs, allowing it to easily integrate with diffe
|
|||
| SDK | Description | Documentation |
|
||||
| - | - | - |
|
||||
| [js-waku](https://github.com/waku-org/js-waku) | JavaScript/TypeScript SDK designed for browser environments | |
|
||||
| [nwaku](https://github.com/waku-org/nwaku) | Nim SDK recommended for operating a node and interacting with 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 | |
|
||||
| [nwaku](https://github.com/waku-org/nwaku) | Nim SDK for running a standalone node and access the Waku network | |
|
||||
| [go-waku](https://github.com/waku-org/go-waku) | Golang SDK designed for integration with 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 | |
|
||||
| [waku-ui](https://github.com/waku-org/waku-ui) | React components and UI adapters designed for seamless integration with `js-waku` | |
|
||||
|
||||
## Run on Mobile Devices
|
||||
|
||||
|
@ -36,7 +35,8 @@ Waku provides integrations tailored for mobile applications, enabling Waku to op
|
|||
|
||||
## More Integrations
|
||||
|
||||
| Platform | Description | Documentation |
|
||||
| Implementation | Description | Documentation |
|
||||
| - | - | - |
|
||||
| JSON-RPC API | `JSON-RPC` API interface provided by nodes for seamless integration with Waku | |
|
||||
| [@waku/create-app](https://www.npmjs.com/package/@waku/create-app) | Starter kit to bootstrap your next Waku project from various example templates | |
|
||||
| [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 | |
|
||||
| JSON-RPC API | `JSON-RPC` API interface provided by `nwaku` and `go-waku` to access the Waku network | |
|
|
@ -24,9 +24,9 @@ const sidebars = {
|
|||
collapsible: true,
|
||||
items: [
|
||||
"getting-started/concepts/protocols",
|
||||
"getting-started/concepts/peer-discovery",
|
||||
"getting-started/concepts/network-domains",
|
||||
"getting-started/concepts/content-topics",
|
||||
"getting-started/concepts/network-domains",
|
||||
"getting-started/concepts/peer-discovery",
|
||||
"getting-started/concepts/transports"
|
||||
]
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue