mirror of
https://github.com/logos-messaging/docs.waku.org.git
synced 2026-01-02 21:03:13 +00:00
Merge branch 'develop' into js-encryption
This commit is contained in:
commit
de6b8dcc7b
@ -75,6 +75,7 @@
|
||||
"sepolia",
|
||||
"faucet",
|
||||
"concat",
|
||||
"certonly",
|
||||
],
|
||||
"flagWords": [],
|
||||
"ignorePaths": [
|
||||
|
||||
@ -3,6 +3,10 @@ title: JavaScript Waku SDK
|
||||
hide_table_of_contents: true
|
||||
---
|
||||
|
||||
:::caution
|
||||
Currently, the JavaScript Waku SDK (`@waku/sdk`) is **NOT compatible** with React Native. We plan to add support for React Native in the future.
|
||||
:::
|
||||
|
||||
The [JavaScript Waku SDK](https://github.com/waku-org/js-waku) (`@waku/sdk`) provides a TypeScript implementation of the [Waku protocol](/) designed for web browser environments. Developers can seamlessly integrate Waku functionalities into web applications, enabling efficient communication and collaboration among users using the `@waku/sdk` package.
|
||||
|
||||
## Installation
|
||||
|
||||
@ -3,6 +3,10 @@ title: "Build React DApps Using @waku/react"
|
||||
hide_table_of_contents: true
|
||||
---
|
||||
|
||||
:::caution
|
||||
Currently, the JavaScript Waku SDK (`@waku/sdk`) is **NOT compatible** with React Native. We plan to add support for React Native in the future.
|
||||
:::
|
||||
|
||||
The [@waku/react](https://www.npmjs.com/package/@waku/react) package provides components and UI adapters to integrate `@waku/sdk` into React applications effortlessly. This guide provides detailed steps for using `@waku/react` in your project.
|
||||
|
||||
## Install the dependencies
|
||||
|
||||
@ -155,7 +155,7 @@ Consider a `nwaku` node that enabled Secure WebSocket (encrypted) using its key
|
||||
You can use [Let's Encrypt](https://letsencrypt.org/) or [Certbot](https://certbot.eff.org/) to generate a valid certificate for your `nwaku` node:
|
||||
|
||||
```shell
|
||||
sudo letsencrypt -d <your.domain.name>
|
||||
sudo certbot certonly -d <your.domain.name>
|
||||
```
|
||||
:::
|
||||
|
||||
@ -259,4 +259,4 @@ When using a reverse proxy server for SSL/TLS encryption, you only want to annou
|
||||
|
||||
:::info
|
||||
The `ext-multiaddr-only` option takes precedence over the `nat` and `dns4-domain-name` options, using the values provided by the `ext-multiaddr` option instead.
|
||||
:::
|
||||
:::
|
||||
|
||||
@ -32,7 +32,7 @@ Modify the `run_node.sh` file to customise your [node's configuration](/guides/n
|
||||
|
||||
```shell
|
||||
export ETH_CLIENT_ADDRESS=wss://sepolia.infura.io/ws/v3/[INFURA API KEY]
|
||||
export ETH_TESTNET_KEY=[INFURA API KEY]
|
||||
export ETH_TESTNET_KEY=[TESTNET PRIVATE KEY]
|
||||
export KEYSTORE_PASSWORD=[RLN MEMBERSHIP PASSWORD]
|
||||
```
|
||||
|
||||
@ -85,7 +85,8 @@ curl --location 'http://127.0.0.1:8645/relay/v1/auto/messages' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--data '{
|
||||
"payload": "'$(echo -n "Hello Waku Network - from Anonymous User" | base64)'",
|
||||
"contentTopic": "/my-app/2/chatroom-1/proto"
|
||||
"contentTopic": "/my-app/2/chatroom-1/proto",
|
||||
"timestamp":'$(date +%s)'
|
||||
}'
|
||||
```
|
||||
|
||||
|
||||
@ -27,12 +27,20 @@ While you can choose any encoding format for your `Content Topic`, we highly rec
|
||||
|
||||
## 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 essential to consider the privacy implications. Here are several factors to keep in mind:
|
||||
|
||||
### Protocols disclose content topics to peers
|
||||
|
||||
The `Filter`, `Store`, and `Light Push` protocols share content topics with peers, allowing them to link IP and content topic interests. The `Relay` protocol, using `GossipSub`, provides recipient anonymity, which can be compromised if the content topic exposes user information.
|
||||
|
||||
For example, instead of using Personally Identifiable Information (PII) in the content topic (e.g., a public key), you can create buckets (e.g., based on the first 4 bytes of the public key hash).
|
||||
|
||||
:::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.
|
||||
### Increasing k-anonymity preserves user anonymity
|
||||
|
||||
However, maintaining functionality with a single content topic can introduce complexity. We recommend switching functionality using the Protocol Buffer message format. By doing so, applications can retain a high granularity and functionality while using a single content topic, preserving user privacy.
|
||||
You can increase [k-anonymity](https://www.privitar.com/blog/k-anonymity-an-introduction/) within the network by using a unified content topic across the entire application or targeting specific features like notifications or private messages, allowing multiple users to share it.
|
||||
|
||||
However, maintaining functionality with a single content topic can introduce complexity. We recommend switching functionality using the Protocol Buffer (`proto`) message format. By doing so, applications can retain a high granularity and functionality while using a single content topic, preserving user privacy.
|
||||
Loading…
x
Reference in New Issue
Block a user