mirror of
https://github.com/logos-messaging/specs.git
synced 2026-01-02 14:13:06 +00:00
Update qaku.md
This commit is contained in:
parent
d578604fed
commit
532b9071ad
@ -33,20 +33,30 @@ The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL
|
||||
“SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and
|
||||
“OPTIONAL” in this document are to be interpreted as described in [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt).
|
||||
|
||||
Clients publish questions to a `content-topic` address which is held by the Waku Network.
|
||||
A collection of questions are owned by the `content-topic`,
|
||||
while a collection of answers are owned by the questions.
|
||||
All clients MUST have and identity recognized by the network to publish new content.
|
||||
More on identity [below](#identity).
|
||||
|
||||
### Control Message
|
||||
### Creating a New Board
|
||||
|
||||
New Q&A boards are created by a client who SHOULD be identitfied as the `owner`.
|
||||
At the time of creation, the `owner` creates a `ControlMessage` to configure the board.
|
||||
This message contains all the settings of the board and is published to the Waku network.
|
||||
A client creating a new Q&A board is identitied as the `owner`.
|
||||
The `owner` MAY share the `content-topic` with other clients,
|
||||
as the `owner`is the first client to know the `content-topic` for the new board.
|
||||
At the time of creation, the `owner` SHOULD create a `ControlMessage` to configure a Q&A board
|
||||
and publish to the Waku network.
|
||||
|
||||
#### Control Message
|
||||
|
||||
This message contains all initial Q&A board.
|
||||
|
||||
The `ControlMessage` is a JSON object:
|
||||
|
||||
- It MUST include a title name
|
||||
- It MAY include a list of admin identities.
|
||||
- It SHOULD include the identity of the `owner`, idenities explianed [below](#Identity).
|
||||
- It MAY include a list of client public addresses identified as `admin`.
|
||||
- It SHOULD include the public address of the `owner`, identity explianed [below](#Identity).
|
||||
- It SHOULD include the start and end date for clients to publish a new post.
|
||||
-
|
||||
|
||||
```js
|
||||
{
|
||||
@ -55,7 +65,7 @@ The `ControlMessage` is a JSON object:
|
||||
id: string,
|
||||
enabled: boolean,
|
||||
timestamp: number, // time the ControlMessage is created
|
||||
owner: string, // the address of the owner
|
||||
owner: string, // the public address of the owner
|
||||
admins: string[], // a list of addresses
|
||||
moderation: boolean, //
|
||||
description: string,
|
||||
@ -70,39 +80,28 @@ The `ControlMessage` is a JSON object:
|
||||
```
|
||||
|
||||
`id`:
|
||||
- SHOULD be generated from the `title` value, `timestamp` value, and the `owner` address value.
|
||||
- MAY be generated from the `title` value, `timestamp` value, and the `owner` public address value.
|
||||
- MAY be hexadecimal characters of SHA-256***
|
||||
|
||||
The `ControlMessage` is the first message published on the `content-topic` of the Q&A board.
|
||||
Only clients subscribed to the `content-topic` can view the `ControlMessage`.
|
||||
Clients subscribed to the Q&A board `content-topic`, using the [12/WAKU2-FILTER](),
|
||||
MUST be able to view the `ControlMessage`.
|
||||
|
||||
### Identity
|
||||
|
||||
The `identity` of a client is a public address identifier in the form of a hexadecimal string.
|
||||
Clients SHOULD generate a private key on a local machine and
|
||||
MAY encrypt the keys with a password.
|
||||
Public addresses are then generated with the private keys.
|
||||
All clients MUST have `identity` consisting of a public address identifier in the form of a hexadecimal string.
|
||||
Clients generate cryptographic key pair, public and private keys, and
|
||||
the private key MAY be encrypt a password.
|
||||
Public addresses are derived from the public keys as a hexadecimal string.
|
||||
This address SHOULD be recongized by the other clients in the network to idenitify clients.
|
||||
|
||||
Each `identity` SHOULD be stored locally.
|
||||
The address SHOULD be used to sign and verify messages.
|
||||
|
||||
### Node
|
||||
|
||||
The Qaku application SHOULD by default connect to The Waku Network.
|
||||
When a user accesses the Qaku app,
|
||||
the user joins a new session that SHOULD create a new `content_topic`.
|
||||
When the user exits the Qaku app,
|
||||
the session ends but the `content_topic` remians available on the Waku network for other users to connect to.
|
||||
|
||||
Qaku uses the following [10/WAKU]() protocols:
|
||||
|
||||
- the [19/WAKU2-LIGHTPUSH](https://github.com/vacp2p/rfc-index/blob/main/waku/standards/core/19/lightpush.md) to push a message type to the Waku network.
|
||||
- the [12/WAKU2-FILTER]() to subscribe to Waku `content_topic` and listen to messages published to that topic.
|
||||
- the [13/WAKU-STORE]() to query and load old messages from the Waku network for users.
|
||||
- A new `content_topic` is created when a new Q&A board is created.
|
||||
- All questions and answer are pushed to the content_topic
|
||||
|
||||
### Messages
|
||||
|
||||
The Waku network processes real-time message updates, which enables new questions and
|
||||
answers to be acceisble quickly.
|
||||
answers to be acceisble quickly.
|
||||
|
||||
A conec ulti
|
||||
Messages are sent to a `content_topic` that are identified as a `message_type`.
|
||||
|
||||
@ -169,6 +168,14 @@ The `AnswerMessage` type is generated by any sending an answer to the Qaku board
|
||||
The owner MUST be able to enable and disable questions added to the board.
|
||||
When a new question is created, the interface SHOULD lis
|
||||
|
||||
Qaku uses the following [10/WAKU]() protocols:
|
||||
|
||||
- the [19/WAKU2-LIGHTPUSH](https://github.com/vacp2p/rfc-index/blob/main/waku/standards/core/19/lightpush.md) to push a message type to the Waku network.
|
||||
- the [12/WAKU2-FILTER]() to subscribe to Waku `content_topic` and listen to messages published to that topic.
|
||||
- the [13/WAKU-STORE]() to query and load old messages from the Waku network for users.
|
||||
- A new `content_topic` is created when a new Q&A board is created.
|
||||
- All questions and answer are pushed to the content_topic
|
||||
|
||||
|
||||
## Copyright
|
||||
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user