diff --git a/Blog-Sharing-Client.md b/Blog-Sharing-Client.md index 5290556..caecf6f 100644 --- a/Blog-Sharing-Client.md +++ b/Blog-Sharing-Client.md @@ -1,14 +1,24 @@ -The blog sharing client is a [BSP client](BSP) that allows users to share blogs with their contacts, who may accept or decline the invitations. +The blog sharing client is a [BSP client](BSP) that allows users to share blogs with their contacts, who may accept or decline the invitations. It is used in conjunction with the [blog client](blog client). -### Group identifiers +### Identifier -The client's identifier is `org.briarproject.briar.blog.sharing`. +The client's identifier is `org.briarproject.briar.blog.sharing`. The major version is 0. -The client uses a separate BSP group for each pair of contacts. The [group descriptor](BSP#group-identifiers) is a [BDF list](BDF) containing the unique IDs of the contacts' identities, sorted in ascending order as byte strings. +### Groups + +The client uses a separate BSP group for communicating with each contact. The [group descriptor](BSP#group-identifiers) is a [BDF list](BDF) containing the unique IDs of the contacts' identities, sorted in ascending order as byte strings. + +### Roles + +All communication happens between two contacts, who have symmetrical roles. + +### Sessions + +The messages exchanged between two contacts referring to a given blog constitute a session. The blog's unique ID is used as the session ID. ### Message types -The sharing protocol uses five message types. All communication happens between two contacts, who have symmetrical roles. The messages referring to each blog constitute a session. +The protocol uses five message types. **0: INVITE** - Sent by either party to start or restart a session. The message body is a BDF list with four elements: `messageType` (int), `previousMessageId` (unique ID or null), `descriptor` (list), and `message` (string or null).