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
No related branches found
No related tags found
No related merge requests found
...@@ -23,3 +23,4 @@ contribute<guides/how-to-contribute-to-this-documentation>`! ...@@ -23,3 +23,4 @@ contribute<guides/how-to-contribute-to-this-documentation>`!
general/index general/index
guides/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**) ...@@ -93,6 +93,7 @@ Note2: If a fetch is too big, it's not done (**TODO**)
+ Check signature from certificate in the repo + Check signature from certificate in the repo
+ Check that no weird file is added outside device cert nor removed + Check that no weird file is added outside device cert nor removed
+ If vote + If vote
+ Check that voteType is supported (ban, unban)
+ Check that vote is for the user that signs the commit + 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 vote is from an admin and device present & not banned
+ Check that no weird file is added nor removed + 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**) ...@@ -108,7 +109,7 @@ Note2: If a fetch is too big, it's not done (**TODO**)
+ Check that device is added + Check that device is added
+ Check that invitation is moved to members + Check that invitation is moved to members
+ Check that no weird file is added nor removed + Check that no weird file is added nor removed
+ If kickban + If banned
+ Check that vote is valid + Check that vote is valid
+ Check that the user is ban via an admin + Check that the user is ban via an admin
+ Check that member or device certificate is moved to banned/ + 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 ...@@ -144,11 +145,16 @@ This is needed to detect revoked devices, or simply avoid getting unwanted peopl
Note: Alice MUST be admins to vote 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%). + 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) + 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 ## 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 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`) ...@@ -344,12 +350,21 @@ Moreover editing messages will be possible! (`commit --fixup`)
- devices (certificates of authors to verify commits) - devices (certificates of authors to verify commits)
- banned - banned
- devices - devices
- invited
- admins
- members - members
- votes - votes
- ban
- members - members
- uri - uri
- uriAdmin
- devices - devices
- uri - uri
- uriAdmin
- unban
- members
- uri
- uriAdmin
- CRLs - CRLs
``` ```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment