]>
Commit | Line | Data |
---|---|---|
fcaf1e0a | 1 | # Architecture |
8c308c2b C |
2 | |
3 | ## Vocabulary | |
4 | ||
e755a63a BB |
5 | - **Fediverse:** several servers following each others. |
6 | - **Instance:** a server which runs PeerTube in the fediverse. | |
7 | - **Origin instance:** the instance on which the video was uploaded and which | |
8 | is seeding (through the WebSeed protocol) the video. | |
9 | - **Following:** the action of a PeerTube instance which will follow another | |
10 | instance (subscribe to its videos). | |
8c308c2b C |
11 | |
12 | ## Base | |
13 | ||
8c308c2b | 14 | ### Communications |
e755a63a BB |
15 | * All the communication between the instances are signed with [Linked Data |
16 | Signatures](https://w3c-dvcg.github.io/ld-signatures/) with the private key | |
17 | of the account that authored the action. | |
18 | * We use the [ActivityPub](https://www.w3.org/TR/activitypub/) protocol (only | |
19 | server-server for now). Object models could be found in | |
20 | [shared/models/activitypub | |
63bfad7e | 21 | directory](/shared/models/activitypub). |
e755a63a | 22 | * All the requests are retried several times if they fail. |
55e0591c | 23 | |
fcaf1e0a | 24 | ### Instance |
e755a63a BB |
25 | * An instance has a websocket tracker which is responsible for all the video |
26 | uploaded in it. | |
27 | * An instance has an administrator that can follow other instances. | |
28 | * An instance can be configured to follow back automatically. | |
29 | * An instance can blacklist other instances (only used in "follow back" | |
30 | mode). | |
31 | * An instance cannot choose which other instances follow it, but it can | |
32 | decide to **reject all** followers. | |
33 | * After having uploaded a video, the instance seeds it (WebSeed protocol). | |
34 | * If a user wants to watch a video, they ask its instance the magnet URI and | |
35 | the frontend adds the torrent (with WebTorrent), creates the HTML5 video | |
36 | player and streams the file into it. | |
37 | * A user watching a video seeds it too (BitTorrent). Thus another user who is | |
38 | watching the same video can get the data from the origin server and other | |
39 | users watching it. |