Skip to content
Snippets Groups Projects
Commit 32640d5c authored by Sébastien Blin's avatar Sébastien Blin Committed by Amin Bandali
Browse files

Add technical section with up-to-date documentation for swarm

Change-Id: If1e5e95b4f9a128ecce7e800b8e5a0137eb36106
parent 9e412ab6
Branches
No related tags found
No related merge requests found
......@@ -23,3 +23,4 @@ contribute<guides/how-to-contribute-to-this-documentation>`!
general/index
guides/index
technical/index
\ No newline at end of file
#########
Technical
#########
This chapter includes in-depth explanations of how Jami is designed.
It also serves as a reference for contributors.
.. toctree::
:maxdepth: 1
swarm
......@@ -93,6 +93,7 @@ Note2: If a fetch is too big, it's not done (**TODO**)
+ Check signature from certificate in the repo
+ Check that no weird file is added outside device cert nor removed
+ If vote
+ Check that voteType is supported (ban, unban)
+ Check that vote is for the user that signs the commit
+ Check that vote is from an admin and device present & not banned
+ Check that no weird file is added nor removed
......@@ -108,7 +109,7 @@ Note2: If a fetch is too big, it's not done (**TODO**)
+ Check that device is added
+ Check that invitation is moved to members
+ Check that no weird file is added nor removed
+ If kickban
+ If banned
+ Check that vote is valid
+ Check that the user is ban via an admin
+ Check that member or device certificate is moved to banned/
......@@ -144,11 +145,16 @@ This is needed to detect revoked devices, or simply avoid getting unwanted peopl
Note: Alice MUST be admins to vote
+ First, she votes for ban Bob. To do that, she creates the file in /votes/members/uri_bob/uri_alice (members can be replaced by devices for a device) and commits
+ First, she votes for banning Bob. To do that, she creates the file in /votes/ban/members/uri_bob/uri_alice (members can be replaced by devices for a device, or invited for invites or admins for admins) and commits
+ Then she checks if the vote is resolved. This means that >50% of the admins agree to ban Bob (if she is alone, it's sure it's more than 50%).
+ If the vote is resolved, files into /votes can be removed, all files for Bob in /members, /admins, /invited, /CRLs, /devices can be removed (or only in /devices if it's a device that is banned) and Bob's certificate can be placed into /banned/members/bob_uri.crt (or /banned/devices/uri.crt if a device is banned) and committed to the repo
+ If the vote is resolved, files into /votes/ban can be removed, all files for Bob in /members, /admins, /invited, /CRLs, /devices can be removed (or only in /devices if it's a device that is banned) and Bob's certificate can be placed into /banned/members/bob_uri.crt (or /banned/devices/uri.crt if a device is banned) and committed to the repo
+ Then, Alice informs other users (outside Bob)
*Alice (admin) re-adds Bob (banned member)
+ Fir she votes for unbanning Bob. To do that, she creates the file in /votes/unban/members/uri_bob/uri_alice (members can be replaced by devices for a device, or invited for invites or admins for admins) and commits
+ Then she checks if the vote is resolved. This means that >50% of the admins agree to ban Bob (if she is alone, it's sure it's more than 50%).
+ If the vote is resolved, files into /votes/unban can be removed, all files for Bob in /members, /admins, /invited, /CRLs, can be re-added (or only in /devices if it's a device that is unbanned) and committed to the repo
## Remove a conversation
1. Save in convInfos removed=time::now() (like removeContact saves in contacts) that the conversation is removed and sync with other user's devices
......@@ -344,12 +350,21 @@ Moreover editing messages will be possible! (`commit --fixup`)
- devices (certificates of authors to verify commits)
- banned
- devices
- invited
- admins
- members
- votes
- ban
- members
- uri
- uriAdmin
- devices
- uri
- uriAdmin
- unban
- members
- uri
- uriAdmin
- CRLs
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment