Skip to content

Latest commit

 

History

History
31 lines (26 loc) · 2.96 KB

rln-chat-cross-client.md

File metadata and controls

31 lines (26 loc) · 2.96 KB

Waku-RLN-Relay Testnet2: Cross-Client

In this tutorial, the aim is to test the interoperability of the 3 available Waku v2 clients namely, Nim, Go, and JS over the Waku network in the spam-protected mode. Spam protection is done by rate limiting each message publisher. At the time of this tutorial, the messaging rate is set to 1 per Epoch where Epoch duration is set to 10 seconds. You will find more about the details of spam protection in the chat clients tutorial provided below. Messaging rate/spam protection is enabled through Waku-RLN-Relay protocol that is mounted on the routing hops. For ease of demonstration, we make use of Nim-chat, Go-chat, and JS-chat applications that are developed on top of their respective Waku v2 clients. You will need to set up one instance of each chat client in spam-protected mode and then start messaging with them. As for the setup, please follow the tutorials below:

Once you set up your chat clients, they will all be connected to the Waku v2 test fleets as their first hop. Messages generated by all the chat clients are set to be published on a specific combination of pubsub and content topic i.e., the default pubsub topic of /waku/2/default-waku/proto and the content topic of /toy-chat/2/luzhou/proto. The test fleets also run Waku-RLN-Relay over the same pubsub topic and content topic. Test fleets act as routers and enforce the message rate limit. As such, any spam messages published by the chat clients on the said combination of topics will be caught by the Waku v2 test fleet nodes and will not be routed. Note that spam protection does not rely on the presence of the test fleets. In fact, all the chat clients (except js-chat as it is in progress) are also capable of catching and dropping spam messages if they receive any. You can test it by connecting two chat clients (running Waku-RLN-Relay) directly to each other and see if they can spot each other's spam activities.

Note: JS-chat will use the WAKU2-LIGHTPUSH protocol to push its messages to the Waku v2 test fleets. Waku v2 test fleets will act according to the WAKU2-LIGHTPUSH specifications and push that message to the network without any further verification. That is, they do not enforce spam protection in that specific protocol but rather act merely as a message publisher (this behavior may change in the future though). As such, you can expect to receive spam messages published by the JS-chat clients from other connecting chat clients i.e., Go-chat and Nim-chat. However, you will see that such messages will be immediately identified as spam on those clients and a proper message will be displayed on the console.

You can also find a recorded demo of this testnet in the following video.