From 3d931d8b4e0b5a4c9cbcaf5336e19fc49bf889b6 Mon Sep 17 00:00:00 2001 From: Arseniy Klempner Date: Fri, 8 Dec 2023 01:34:49 -0800 Subject: [PATCH 1/4] warn that js-waku does not support react native (#149) --- docs/guides/js-waku/index.md | 4 ++++ docs/guides/js-waku/use-waku-react.md | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/docs/guides/js-waku/index.md b/docs/guides/js-waku/index.md index 47f71d5..13ac228 100644 --- a/docs/guides/js-waku/index.md +++ b/docs/guides/js-waku/index.md @@ -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 diff --git a/docs/guides/js-waku/use-waku-react.md b/docs/guides/js-waku/use-waku-react.md index b8f7ff4..d8c6bc7 100644 --- a/docs/guides/js-waku/use-waku-react.md +++ b/docs/guides/js-waku/use-waku-react.md @@ -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 From 9999848d1711d1e3e2075a07d1bf2e7c26d960d8 Mon Sep 17 00:00:00 2001 From: LordGhostX <47832826+LordGhostX@users.noreply.github.com> Date: Fri, 8 Dec 2023 11:21:42 +0100 Subject: [PATCH 2/4] update content topic considerations (#148) --- docs/learn/concepts/content-topics.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/learn/concepts/content-topics.md b/docs/learn/concepts/content-topics.md index ebb4433..69fd380 100644 --- a/docs/learn/concepts/content-topics.md +++ b/docs/learn/concepts/content-topics.md @@ -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. \ No newline at end of file +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. \ No newline at end of file From fad14e350a7e26b54ec889d1bbe5b3776f638432 Mon Sep 17 00:00:00 2001 From: fryorcraken <110212804+fryorcraken@users.noreply.github.com> Date: Fri, 8 Dec 2023 21:30:21 +1100 Subject: [PATCH 3/4] Use certbot certonly (#150) --- .cspell.json | 1 + docs/guides/nwaku/configure-nwaku.md | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.cspell.json b/.cspell.json index fa91b8a..a65411a 100644 --- a/.cspell.json +++ b/.cspell.json @@ -75,6 +75,7 @@ "sepolia", "faucet", "concat", + "certonly", ], "flagWords": [], "ignorePaths": [ diff --git a/docs/guides/nwaku/configure-nwaku.md b/docs/guides/nwaku/configure-nwaku.md index c0b944a..e7b51c7 100644 --- a/docs/guides/nwaku/configure-nwaku.md +++ b/docs/guides/nwaku/configure-nwaku.md @@ -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 +sudo certbot certonly -d ``` ::: @@ -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. -::: \ No newline at end of file +::: From 7b1b354fed14c9a903ffe98c17662fb4fc7cf147 Mon Sep 17 00:00:00 2001 From: Prem Chaitanya Prathi Date: Sat, 9 Dec 2023 16:27:53 +0530 Subject: [PATCH 4/4] fix: testnet key naming and add timestamp to sample message send (#151) --- docs/guides/nwaku/run-docker-compose.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/guides/nwaku/run-docker-compose.md b/docs/guides/nwaku/run-docker-compose.md index 4035fd5..51c716a 100644 --- a/docs/guides/nwaku/run-docker-compose.md +++ b/docs/guides/nwaku/run-docker-compose.md @@ -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)' }' ```