diff options
Diffstat (limited to 'ARCHITECTURE.md')
-rw-r--r-- | ARCHITECTURE.md | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md deleted file mode 100644 index f3254d2d6..000000000 --- a/ARCHITECTURE.md +++ /dev/null | |||
@@ -1,45 +0,0 @@ | |||
1 | # Architecture | ||
2 | |||
3 | ## Vocabulary | ||
4 | |||
5 | - **Fediverse:** several servers following one another, several users | ||
6 | following each other. Designates federated communities in general. | ||
7 | - **Vidiverse:** same as Fediverse, but federating videos specifically. | ||
8 | - **Instance:** a server which runs PeerTube in the fediverse. | ||
9 | - **Origin instance:** the instance on which the video was uploaded and which | ||
10 | is seeding (through the WebSeed protocol) the video. | ||
11 | - **Cache instance:** an instance that decided to make available a WebSeed | ||
12 | of its own for a video originating from another instance. It sends a `ptCache` | ||
13 | activity to notify the origin instance, which will then update its list of | ||
14 | WebSeeds for the video. | ||
15 | - **Following:** the action of a PeerTube instance which will follow another | ||
16 | instance (subscribe to its videos). | ||
17 | |||
18 | ## Base | ||
19 | |||
20 | ### Communications | ||
21 | * All the communication between the instances are signed with [Linked Data | ||
22 | Signatures](https://w3c-dvcg.github.io/ld-signatures/) with the private key | ||
23 | of the account that authored the action. | ||
24 | * We use the [ActivityPub](https://www.w3.org/TR/activitypub/) protocol (only | ||
25 | server-server for now). Object models could be found in | ||
26 | [shared/models/activitypub | ||
27 | directory](/shared/models/activitypub). | ||
28 | * All the requests are retried several times if they fail. | ||
29 | |||
30 | ### Instance | ||
31 | * An instance has a websocket tracker which is responsible for all videos | ||
32 | uploaded by its users. | ||
33 | * An instance has an administrator that can follow other instances. | ||
34 | * An instance can be configured to follow back automatically. | ||
35 | * An instance can blacklist other instances (only used in "follow back" | ||
36 | mode). | ||
37 | * An instance cannot choose which other instances follow it, but it can | ||
38 | decide to **reject all** followers. | ||
39 | * After having uploaded a video, the instance seeds it (WebSeed protocol). | ||
40 | * If a user wants to watch a video, they ask its instance the magnet URI and | ||
41 | the frontend adds the torrent (with WebTorrent), creates the HTML5 video | ||
42 | player and streams the file into it. | ||
43 | * A user watching a video seeds it too (BitTorrent). Thus another user who is | ||
44 | watching the same video can get the data from the origin server and other | ||
45 | users watching it. | ||