Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Questions about the current state of PeerTube #1457

Closed
Wykks opened this issue Dec 5, 2018 · 9 comments
Closed

Questions about the current state of PeerTube #1457

Wykks opened this issue Dec 5, 2018 · 9 comments

Comments

@Wykks
Copy link

Wykks commented Dec 5, 2018

(Sorry if this kind of text is not appropriate here; please tell me if I should have posted this elsewhere).

Hello!
I'm quite new to this project, (also I saw you at https://2018.capitoledulibre.org 👋).

As far as I understand, the main idea behind being decentralized is to be able to host losts of videos without having to own one huge centralized server system (like youtube); awesome!

Users have to (as far as I know):

  1. remember multiple instance (because an instance may not list some content creators you like).
  2. Search on each of them (Search on global fediverse #824) if they want to see videos about something in particular.
  3. choose a server to create a account.

I have several thoughts:

Do you believe that people will remember several instance of peertube ? When using the android app, one instance is already set by default. People should not care about instance url.
If I'm a content creator and I host my own instance, do I have to play the "google referencing game" to be visible, because my instance wont be automatically linked to the most used instance of Peertube?
If the server where my account if created is shutdown (which is highly statistically possible, because there a several servers hosted by several independent individuals), do I lose all my subscribers, and everything I created? (which is basically the end of the world, if it's your main job). Why a vital feature like account migration (#549) is not prioritized?
Since only the video hosting is decentralized, as a instance owner, I will have issues if my instance become too much popular despite the decentralization, because every other bits of peertube are targeted to the instance, which cause bandwidth and cpu issues.
Also, obviously some Peertube instances will have a lot more views than the others, so the current federation system can be a strong censorship feature.

Do you plan to implement complete decentralization (more than "just" video hosting) ?

One service address => Talk to all public Peertube server instances (thus server instance may not have any frontend, by default).

The use of something like IPFS for everything else than video hosting (not this #494) could address this, right?

Important note:
I'm not hostile at all to Peertube, I actually want to contribute, but I really puzzled about the current state of the project. I strongly believe that it cannot truly succeed (and by that I mean, used by common people) until there is complete decentralization. I just want to know what's your visions about theses points (I didn't find answers about them in other issues).
Thanks for your time!

@Nutomic
Copy link
Contributor

Nutomic commented Dec 5, 2018

Just a quick note, most of the questions you ask here apply to Mastodon just as much. And in my experience, they don't prevent Mastodon from being a viable project.

@rigelk
Copy link
Collaborator

rigelk commented Dec 5, 2018

Hey @Wykks - thanks for the detailed feedback 👍

However @Chocobozzz was not the one presenting at Capitole du Libre 2018. It was Nathanaël ( @roipoussiere ).

You are not the first to raise these concerns, and they are totally on our radar.

The use of something like IPFS for everything else than video hosting (not this #494) could address this [-> talking to all PeerTube server instances], right?

IPFS is not a silver bullet. You still need to index videos. You still need to get their metadata somewhere. Just because you made your video available on IPFS doesn't mean that content discovery is made easier. Actually it's not something IPFS does. IPFS is transport. A way to deliver content. And that's all. Within the IPFS itself, there are no search and indexing tools.

There are plenty of session/transport/application technologies available to transport data. We just happen to have chosen HTTP(s) and BitTorrent/WebTorrent.

Since only the video hosting is decentralized, as an instance owner, I will have issues if my instance become too much popular despite the decentralization, because every other bits of peertube are targeted to the instance, which cause bandwidth and CPU issues.

Not really. By federating, you send some of the metadata to remote instances that save it and integrate it to properly show your video without always querying your server. It's not like everything is queried each time your video gets watched 🙂 Plus, they are light static assets compared to videos. Having a proper caching policy on your reverse-proxy already reduces a lot of that load.

Do you plan to implement complete decentralization (more than "just" video hosting) ?

PeerTube is using protocols that are not fully distributed (ActivityPub, WebFinger, RSS/Atom, etc.), so cutting that would reduce interoperability. We certainly will go towards more decentralization, but instances will still be an major piece of the puzzle.

Why a vital feature like account migration (#549) is not prioritized?

Short answer, because it's very difficult to implement. Long answer, because any video input to PeerTube gets transcoded right now. That means importing a lot of videos from a remote account takes a toll on the receiving server. Also there were discussions on other federated platforms to make the migration process part of the federation vocabulary, or at least put it in a standard form. These discussions have mostly stalled since, but it has postponed implementations.

Now, account migration doesn't help in case of instance failure or shutdown. Some have suggested having a duplicate account that stays dormant and keeps in sync, some have suggested to be able to download a copy of their data that they could re-upload elsewhere to replicate their channel. All of this is complex too.

We feel there are other vital issues (moderation tools and transcoding to name a few) to be taken care of before that becomes a focus, because once it is, it will take months to be implemented and monopolize the implementation schedule.

Do you believe that people will remember several instance of PeerTube ?

No, there is no such expectation. But currently the search being limited to the followed instances forces to remember more instances than is ideal.

When using the android app, one instance is already set by default.

We do not make any android app, so I suppose you are referring to one of the third-party apps available. They make an instance choice by default, but that choice is not ideal. The user is not aware of the moderation policy of that instance. Making a central looking glass would probably alleviate the problem, but that is both a SPOF and an added moderation burden on the PeerTube team. All of this is detailed in #824.

People should not care about instance url.

If you are settling (creating an account) on an instance, then yes you should care about it. Its moderation policy matters. Its quotas matter. Its availability and response time matter.

Ideally one should just care about the instance they settle in, or the instance they use as a looking glass to the federated network. The fact that right now, instances only show the content they have federated with is a byproduct of the explicit follow system.

Now, I reckon you have seen #824, you know more or less the directions which we could take to solve this issue to discover videos.

@Wykks
Copy link
Author

Wykks commented Dec 5, 2018

@Nutomic
Yup you're totally right. But I believe there's a big gap between being a "viable project" versus being a "successful project" (eg know by common people). As for Mastodon, not having a global search feature is a deal breaker for me; and they don't want to do it (https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/User-guide.md#searching). That's why I did this post, because rigelk could have said "won't do for political reason", which in this case I would have stopped here and do something else.

@rigelk
Thanks for such a detailed answser!

Of course IPFS is not a silver bullet, and Peertube already have a video indexation system. I did not mean to use IPFS there. But to have a single entry point for users. I don't know if that make sense, since I quite new to these tech...
My main point is that it doesn't matter how well the server is optimized, new users still have to download the client frontend at least (and all users on client frontend update). And that only can be a problem. If i'm a content creator, I can't just self host a instance and tell people to go to my server, it's going to explode my bandwidth (assuming that I'm popular). And I believe this is really important because, instead of a company, ones shouldn't have to pay a lot to be able to host his instance properly.
On android, it's not an issue, because the client is distributed by the play store, not the Peertube instance.
But yeah I think that in my original post, I probably asked too much to IPFS. Maybe first step is more like this:
One service address => Talk to a chosen public Peertube server instance.
This can solve the SPOF issue : IPFS could host the frontend, and a list of peertube server instance that want to be registered there.

If you are settling (creating an account) on an instance, then yes you should care about it. Its moderation policy matters. Its quotas matter. Its availability and response time matter.

Knowing where you upload a video is not enough ?

Anyway, thanks again for these precision! This cleared my mind 👍
I'll look someday into the (frontend) code to see if I can be useful there 😄

@Nutomic
Copy link
Contributor

Nutomic commented Dec 5, 2018

It sounds to me like you want to centralize Peertube in some way, and make it so that all content is listed on a single, official website like peertube.com (or whatever the name). That would just be an exact copy of what Youtube is doing. I think one of the best things about the Fediverse is that it is federated, so there can be different instances with different rules, and different moderation. If you try to cram all those communities together, it will just lead to conflict and videos targeted at the lowest common denominator.

There are definitely many things missing from Peertube, including account migration that you mentioned, but I think the overall concept works well. What needs fixing are basically implementation details.

@Wykks
Copy link
Author

Wykks commented Dec 6, 2018

Well, actually no 😄

The current way Peertube is, make it so a youtube like is possible.

This is how I see things:
Some instances (like 2 or 3) will prevail above the others. People will register on the most stable and known instances.
Theses instances could be a company, having all the power of choosing what is allowed or not, and all the power of running his own advertising system. Theses instances would be super close to the current Youtube, no? (minus the webtorrent part which just reduce cost for the company behind this huge instance). Common people wouldn't care that theses instances are not alone, they will put everything there (because why not? It works fine as long as the instance is stable ===> youtube). Do you know Dailymotion, Vimeo, ...? Yeah these are like minor peertube instance. Yes Peertube can link each other, but would the leading instance care ?

If you have a single entry point, peertube instance are then equally referenced, and peertube instance owner will still have be able moderate their data at will (and choose how advertising works on their videos).
Ones could host a peertube instance (and a content creator probably will, because he want to own his video), upload a video, be visible to everyone immediately (without having to tell the world, and leading peetube instance that he exist), and without bothering much about bandwidth/cpu.
This would be definitely not like Youtube. Peertube instance owning their data, choosing their rules, not one big company.

To sum it up, I believe that Peertube instance should serve data, not the app.

Of course that's just how I see things. If you disagree at "Some instances will prevail above the others" sure, the current system should be fine. Only time will tell, nobody can see the future ¯_(ツ)_/¯

@rigelk
Copy link
Collaborator

rigelk commented Dec 6, 2018

To sum it up, I believe that Peertube instance should serve data, not the app.

Jumping on that, PeerTube instances are mostly a default interface served and a core API. Nothing prevents an instance from just serving the API part. Actually there's even a shorthand for that.

Nothing prevents to make another webapp, or make additions to the webapp, or make the webapp query multiple servers to display/look for videos.

@Booteille
Copy link
Contributor

Sorry if I miss something but isn't possible to make instances share an IPFS folder containing an index of all instances and videos available on PeerTube?
Then, we could through the API search on a specific instance or on the whole PeerTube federation, without having a centralized server.

I never checked how IPFS works so that's why I ask if it's possible.

@Wykks
Copy link
Author

Wykks commented Dec 6, 2018

@rigelk Okay, that's something.
And yeah nothing technically prevent it, but you know different points of view on major feature can be really bad when working on the same project (I can again refer to the strong opposition of a global search feature in Mastodon), so that's why I asked 😄

@Booteille Yeah something like that probably. I think the discussion about that should continue here #824

I'll close this issue, I got what I was asking for. Thanks a lot for your time!

@Wykks Wykks closed this as completed Dec 6, 2018
@rigelk
Copy link
Collaborator

rigelk commented Dec 6, 2018

@Booteille two things: your solution implies that someone creates an IPFS folder, and then gives the secret key allowing to revisions of the content of that folder to third parties ; it also implies sharing a database index as a file. All of that with concurrent access already seems convoluted to me.

Please contribute directly to #824 if you want to further discuss global video search.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants