b5be83a02e
* 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> |
||
---|---|---|
.. | ||
build | ||
pb | ||
.gitignore | ||
Makefile | ||
README.md | ||
chat.go | ||
exec.go | ||
flags.go | ||
go.mod | ||
go.sum | ||
main.go | ||
options.go | ||
screen.go | ||
ui.go |
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.