diff options
-rw-r--r-- | FAQ.md | 54 |
1 files changed, 17 insertions, 37 deletions
@@ -42,10 +42,7 @@ very early prided itself on using a contributory design, both for creating | |||
42 | communities as federated nodes (as [Mastodon](https://joinmastodon.org/) for | 42 | communities as federated nodes (as [Mastodon](https://joinmastodon.org/) for |
43 | example), and for seeding videos (instances can seed each other's videos). But that's not | 43 | example), and for seeding videos (instances can seed each other's videos). But that's not |
44 | enough because one video could become popular and overload the server. That is | 44 | enough because one video could become popular and overload the server. That is |
45 | why we need to use a P2P protocol to limit the server load. Thanks to | 45 | why we need to use P2P in the web browser using WebRTC to limit the server load. |
46 | [WebTorrent](https://github.com/feross/webtorrent), we can use BitTorrent | ||
47 | inside most modern web browsers, and users become seeds as the video gets | ||
48 | more viewers. | ||
49 | 46 | ||
50 | 47 | ||
51 | ## I don't like the name "PeerTube" | 48 | ## I don't like the name "PeerTube" |
@@ -57,34 +54,15 @@ is named "Framatube". | |||
57 | 54 | ||
58 | ## If nobody watches a video, is it seeded? | 55 | ## If nobody watches a video, is it seeded? |
59 | 56 | ||
60 | Yes, the origin server always seeds videos uploaded on it thanks to | 57 | Yes, the player also downloads the video from the server using HTTP. |
61 | [Webseed](http://www.bittorrent.org/beps/bep_0019.html). | ||
62 | It can also be helped by other servers using [redundancy](https://docs.joinpeertube.org/contribute-architecture?id=redundancy-between-instances). | 58 | It can also be helped by other servers using [redundancy](https://docs.joinpeertube.org/contribute-architecture?id=redundancy-between-instances). |
63 | 59 | ||
64 | 60 | ||
65 | ## What is WebSeed? | ||
66 | |||
67 | It is a BitTorrent extension that allows a server to seed a file through HTTP. | ||
68 | It just needs to statically serve a file, then the clients will request chunks | ||
69 | with a `Content-Range` HTTP header. | ||
70 | |||
71 | |||
72 | ## If a client requests each chunk of a video through HTTP, will the server be overloaded? | ||
73 | |||
74 | Not really. Reverse proxies like Nginx handle static file requests very well. In my tests, it can send chunks at 10MB/s without consuming more than 5% CPU on a very small VPS. | ||
75 | |||
76 | |||
77 | ## Will an index of all the videos of servers you follow be too large for small servers? | ||
78 | |||
79 | In our benchmarks, 1,000,000 videos consume around 2GB of PostgreSQL storage. | ||
80 | We think that is acceptable for a video platform. | ||
81 | |||
82 | |||
83 | ## Which container formats can I use for the videos I want to upload? | 61 | ## Which container formats can I use for the videos I want to upload? |
84 | 62 | ||
85 | WEBM, MP4 or OGV videos are supported by default (they are streamable formats), | 63 | WEBM, MP4 or OGV videos are supported by default (they are streamable formats), |
86 | but instance administrators can additionally enable support for MKV, MOV, AVI | 64 | but instance administrators can additionally enable support for additional formats |
87 | and FLV formats when transcoding is enabled on their instance. | 65 | when transcoding is enabled on their instance. |
88 | 66 | ||
89 | 67 | ||
90 | ## I want to change my domain name, how can I do that? | 68 | ## I want to change my domain name, how can I do that? |
@@ -100,7 +78,9 @@ We need this information because Twitter requires an account for links share/vid | |||
100 | 78 | ||
101 | ## How are video views counted? | 79 | ## How are video views counted? |
102 | 80 | ||
103 | Your web browser sends a view to the server after 30 seconds of playback. If a video is less than 30 seconds in length, a view is sent after 75% of the video. After giving a view, that IP address cannot add another view in the next hour. | 81 | Your web browser sends a view to the server after 30 seconds of playback. |
82 | If a video is less than 30 seconds in length, a view is sent after 75% of the video duration. | ||
83 | After giving a view, that IP address cannot add another view in the next hour. | ||
104 | Views are buffered, so don't panic if the view counter stays the same after you watched a video. | 84 | Views are buffered, so don't panic if the view counter stays the same after you watched a video. |
105 | 85 | ||
106 | 86 | ||
@@ -109,8 +89,9 @@ Views are buffered, so don't panic if the view counter stays the same after you | |||
109 | PeerTube should run happily on a virtual machine with 2 threads/vCPUs, at least 1 Gb of RAM and enough storage for videos. In terms of bandwidth, a lot will depend on which PeerTube instances you federate with and what your relation with them is (more about that below). | 89 | PeerTube should run happily on a virtual machine with 2 threads/vCPUs, at least 1 Gb of RAM and enough storage for videos. In terms of bandwidth, a lot will depend on which PeerTube instances you federate with and what your relation with them is (more about that below). |
110 | 90 | ||
111 | As a real life example, the PeerTube demonstration server [https://peertube.cpy.re](https://peertube.cpy.re) runs on 2 vCores and 2GB of RAM. Average consumption is: | 91 | As a real life example, the PeerTube demonstration server [https://peertube.cpy.re](https://peertube.cpy.re) runs on 2 vCores and 2GB of RAM. Average consumption is: |
112 | * **CPU**: nginx ~ 20%, peertube ~ 10%, postgres ~ 1%, redis ~ 3% | 92 | * **CPU**: nginx ~ 2%, peertube ~ 10%, postgres ~ 1%, redis ~ 1% |
113 | * **RAM**: nginx ~ 6MB, peertube ~ 120MB, postgres ~ 10MB, redis ~ 5MB | 93 | * **RAM**: nginx ~ 1MB, peertube ~ 150MB, postgres ~ 30MB, redis ~ 20MB |
94 | * **Network**: ~200GB sent per month (https://framatube.org: ~1.5TB sent per month) | ||
114 | 95 | ||
115 | ### CPU | 96 | ### CPU |
116 | 97 | ||
@@ -120,7 +101,7 @@ You will hugely benefit from at least a second thread though, because of transco | |||
120 | 101 | ||
121 | ### RAM | 102 | ### RAM |
122 | 103 | ||
123 | 1 Gb of RAM should be plenty for a basic PeerTube instance, which usually takes at most 150 Mb in RAM. The only reason you might want more would be if you colocate your Redis or PostgreSQL services on a non-SSD system. | 104 | 1/2 GB of RAM should be plenty for a basic PeerTube instance, which usually takes at most 150 MB in RAM. The only reason you might want more would be if you colocate your Redis or PostgreSQL services on a non-SSD system. |
124 | 105 | ||
125 | ### Storage | 106 | ### Storage |
126 | 107 | ||
@@ -143,25 +124,21 @@ But what if you need to serve more users? That's where PeerTube's federation fea | |||
143 | 124 | ||
144 | If all your preparations and friends' bandwidth is not enough, you might prefer serving files from a CDN ; see our [remote storage guide](https://docs.joinpeertube.org/admin-remote-storage). | 125 | If all your preparations and friends' bandwidth is not enough, you might prefer serving files from a CDN ; see our [remote storage guide](https://docs.joinpeertube.org/admin-remote-storage). |
145 | 126 | ||
127 | |||
146 | ## Can I seed videos with my classic BitTorrent client (Transmission, rTorrent...)? | 128 | ## Can I seed videos with my classic BitTorrent client (Transmission, rTorrent...)? |
147 | 129 | ||
148 | Yes you can, but you won't be able to send data to users that watch the video in their web browser. | 130 | Yes you can, but you won't be able to send data to users that watch the video in their web browser. |
149 | The reason is they connect to peers through WebRTC whereas your BitTorrent client uses classic TCP/UDP. | ||
150 | You can check if your BitTorrent client supports WebTorrent in this issue: https://github.com/webtorrent/webtorrent/issues/369 | ||
151 | 131 | ||
152 | 132 | ||
153 | ## Why host on GitHub and Framagit? | 133 | ## Why host on GitHub and Framagit? |
154 | 134 | ||
155 | The project was initially hosted on GitHub by Chocobozzz. A full migration to [Framagit](https://framagit.org/framasoft/peertube/PeerTube) would be ideal now that Framasoft supports PeerTube, but it would take a lot of time and is an ongoing effort. | 135 | Historical reason. |
156 | 136 | ||
157 | 137 | ||
158 | ## Are you going to use the Steem blockchain? | 138 | ## Are you going to use a blockchain (like Steem)? |
159 | 139 | ||
160 | Short answer: no, since like most appchains/votechains, it modifies the dynamic of creation, and as such cannot be integrated into mainline PeerTube. Read more about that in [the dedicated section](#what-is-creation-dynamic-and-why-not-modify-it). | 140 | Short answer: no, since like most appchains/votechains, it modifies the dynamic of creation, and as such cannot be integrated into mainline PeerTube. Read more about that in [the dedicated section](#what-is-creation-dynamic-and-why-not-modify-it). |
161 | 141 | ||
162 | Long answer is that the Steem blockchain goes astray of its promises of fairness and decentralization: the deliberate relaunching of the currency to ensure centralization, and the stake-based voting power, makes manipulation by wealthy users inevitable ([source here](https://decentralize.today/the-ugly-truth-behind-steemit-1a525f5e156)). | ||
163 | Worse, money generated primarily goes to stakeholders ([source here](https://steemit.com/steemit/@orly/how-the-steem-pyramid-scheme-really-works) ). | ||
164 | For more information, read the complete whitepaper analysis done by [Tone Vays](https://twitter.com/ToneVays/status/761975587451928576). | ||
165 | 142 | ||
166 | ## Are you going to support advertisements? | 143 | ## Are you going to support advertisements? |
167 | 144 | ||
@@ -177,6 +154,7 @@ Read more about it in the 2018 study by Mathias Bärtl, [*YouTube channels, uplo | |||
177 | To the best of our knowledge, small and medium-community creators are better off getting support from their community on platforms such as Liberapay, Tipeee or Patreon. | 154 | To the best of our knowledge, small and medium-community creators are better off getting support from their community on platforms such as Liberapay, Tipeee or Patreon. |
178 | Moreover, don't forget that advertisers already pay considering YouTube's large user base; with PeerTube's way smaller user base and refusal of user profiling, a pay-per-view that's lower than YouTube's could only be expected. | 155 | Moreover, don't forget that advertisers already pay considering YouTube's large user base; with PeerTube's way smaller user base and refusal of user profiling, a pay-per-view that's lower than YouTube's could only be expected. |
179 | 156 | ||
157 | |||
180 | ## What is "creation dynamic" and why not modify it? | 158 | ## What is "creation dynamic" and why not modify it? |
181 | 159 | ||
182 | We define creation dynamic as the way any original content, regardless of its monetary value, is created and incentivized. | 160 | We define creation dynamic as the way any original content, regardless of its monetary value, is created and incentivized. |
@@ -187,10 +165,12 @@ If you still want to use a functionality potentially altering that state of thin | |||
187 | With that being said, know that we are not against these features *per se*. | 165 | With that being said, know that we are not against these features *per se*. |
188 | We are always open to discussion about potential PRs bringing in features, even of that kind. But we certainly won't dedicate our limited resources to develop them ourselves when there is so much to be done elsewhere. | 166 | We are always open to discussion about potential PRs bringing in features, even of that kind. But we certainly won't dedicate our limited resources to develop them ourselves when there is so much to be done elsewhere. |
189 | 167 | ||
168 | |||
190 | ## I have found a security vulnerability in PeerTube. Where and how should I report it? | 169 | ## I have found a security vulnerability in PeerTube. Where and how should I report it? |
191 | 170 | ||
192 | We have a policy for contributions related to security. Please refer to [SECURITY.md](./SECURITY.md) | 171 | We have a policy for contributions related to security. Please refer to [SECURITY.md](./SECURITY.md) |
193 | 172 | ||
173 | |||
194 | ## Does PeerTube ensure federation compatibility with previous version? | 174 | ## Does PeerTube ensure federation compatibility with previous version? |
195 | 175 | ||
196 | We **try** to keep compatibility with the latest minor version (2.3.1 with 2.2 for example). | 176 | We **try** to keep compatibility with the latest minor version (2.3.1 with 2.2 for example). |