go-waku/examples/chat2
Prem Chaitanya Prathi b5be83a02e
feat : autoshard relay api (#807)
* fix: using relay without bcaster should consume and drop messages

* update relay api usage

* move subscription to broadcaster

* move filter logic under subscription

* Support more than 1 relay subscription for a pubSubTopic

* modify relay Publish API to derive pubSubTopic based on autosharding

* implement relay RPC methods for autosharding

* remove relay msgChannel and relay on pubsub buffersize for subscription

Co-authored-by: richΛrd <info@richardramos.me>

* handle relay subscribe with noConsumer and address issue reported in code review

* chore: reorg relay code

---------

Co-authored-by: richΛrd <info@richardramos.me>
2023-10-21 01:26:18 +05:30
..
build add chat2 example 2021-04-04 13:08:48 -04:00
pb chore: switch to Google's Protobuf library 2023-02-16 11:37:59 -04:00
.gitignore Add tests and lint code 2021-08-13 13:56:09 +02:00
Makefile feat: make RLN available by default 2023-09-14 09:03:18 -04:00
README.md feat: chat2 refactor / redesign 2022-08-15 15:22:13 -04:00
chat.go feat : autoshard relay api (#807) 2023-10-21 01:26:18 +05:30
exec.go feat: update WakuPeerStore to store pubSubTopics for a peer (#734) 2023-09-14 20:30:06 +05:30
flags.go chore(rln-relay): use the only key from keystore if only 1 exists 2023-09-08 12:05:32 -04:00
go.mod fix: addr update 2023-10-17 09:00:30 -04:00
go.sum fix: nix build with RLN 2023-09-18 11:20:31 -04:00
main.go chore: rename status-im/go-waku to waku-org/go-waku 2022-11-09 16:03:40 -04:00
options.go chore(rln-relay): use the only key from keystore if only 1 exists 2023-09-08 12:05:32 -04:00
screen.go feat: chat2 refactor / redesign 2022-08-15 15:22:13 -04:00
ui.go chore: rename status-im/go-waku to waku-org/go-waku 2022-11-09 16:03:40 -04:00

README.md

Using the chat2 application

Background

The chat2 application is a basic command-line chat app using the Waku v2 suite of protocols. It connects to a fleet of test nodes to provide end-to-end p2p chat capabilities. The Waku team is currently using this application for internal testing. If you want try our protocols, or join the dogfooding fun, follow the instructions below.

Preparation

make

Basic application usage

To start the chat2 application in its most basic form, run the following from the project directory

./build/chat2

Specifying a static peer

In order to connect to a specific node as relay peer, define that node's multiaddr as a staticnode when starting the app:

./build/chat2 -staticnode=/ip4/134.209.139.210/tcp/30303/p2p/16Uiu2HAmPLe7Mzm8TsYUubgCAW1aJoeFScxrLj8ppHFivPo97bUZ

This will bypass the random peer selection process and connect to the specified node.

In-chat options

Command Effect
/help displays available in-chat commands
/connect interactively connect to a new peer
/nick change nickname for current chat session
/peers Display the list of connected peers

chat2 message protobuf format

Each chat2 message is encoded as follows

message Chat2Message {
  uint64 timestamp = 1;
  string nick = 2;
  bytes payload = 3;
}

where timestamp is the Unix timestamp of the message, nick is the relevant chat2 user's selected nickname and payload is the actual chat message being sent. The payload is the byte array representation of a UTF8 encoded string.