diff --git a/ForumSharingClient.md b/ForumSharingClient.md new file mode 100644 index 0000000..1e826a5 --- /dev/null +++ b/ForumSharingClient.md @@ -0,0 +1,34 @@ +The Forum Sharing Client is a [BSP client](BSP) that allows to share forums with other contacts. These have the option to accept or decline the invitation to the forum. + +### Group identifiers + +The Forum Sharing Client uses the following client identifier: +`cd11 a5d0 4dcc d9e2 931d 6fc3 df45 6313 63bb 3e9d 9d0e 9405 fccd b051 f41f 5449` + +The client uses a separate 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. + +### Message types + +The sharing protocol uses three message types. It should be noted that all communication happens solely between the introduction facilitator and the contacts she introduced. The contacts themselves only start making direct connections when the protocol completes successfully. The introduction facilitator forwards the messages received from one contact to the other while observing to use the correct introduction ID with each contact. + +**1: INVITATION** - This is send by the sharer to one of her contacts. The content is a BDF list. + +**2: RESPONSE** - This should be sent by contacts that received a sharing invitation. The response is either positive or negative. The content is a BDF list with these elements: +* (bool) Whether the invitation was accepted or not. + +**3: ABORT** - This should be send by a contact that encountered an error, so that it can not complete the protocol. The content is a BDF list with two elements: +* (int) The type of the message, here **3** +* (raw) The session ID + +### Validity policy + +* A message is valid if it is well-formed. + +### Storage policy + +Since the messages represent the current state of the introduction protocol, all participants need to hold on to their messages as long as the protocol did not complete or fail permanently. + +### Sharing policy + +* All local messages are shared. +* All remote messages are shared. \ No newline at end of file