beakerbrowser / beaker

An experimental peer-to-peer Web browser
https://beakerbrowser.com/
MIT License
6.75k stars 544 forks source link

Add api for giving incentive to users for hosting content #1135

Open mundusnine opened 6 years ago

mundusnine commented 6 years ago

Examples:

  1. I am a streamer that uses hypercast but I want my audience to host parts of my back catalog so new fans can see old streams. I could give special emoticons or other user incentives to motivate people into hosting part of the content.
  2. I am a video game company and I would reward my users with in-game "vbucks" when they would act as a peer for the website.

This feature would add a section under the scrollbar: image

Where you would see the incentives you would get for each step.

pfrazee commented 6 years ago

Interesting idea. There's currently no way to prove to another user that you're seeding, nor a way to assert how much time you're online. (That's largely what the Filecoin project is trying to solve.) Are there any approximations that we could use?

At some point, we'll have authenticated connections in Dat. You might be able to declare that you're hosting something and authenticate with network, so that the publisher least detect that "Bob is online and willing to serve the content." At that point you could just trust those users; if the rewards are minor, it might not be worth the effort to verify.

It's interesting to think that groups of users could be defined by this. "We are the beakerbrowser.com swarm. We're the people that keep that site online." It's almost like a membership.

cc @mafintosh

mundusnine commented 6 years ago

@pfrazee

Maybe users could just specify their user account email or name related to their steam account(for games). For streaming if we are using hypercast no account exists but if say the streamer has a patreon he could use the emails or the patron name as a reference. This would transfer the authentication burden on the website developers and not on beaker.

For the accounting of time could just add an event like OnStartSeeding(currentTime) that sends to the seeded website the email of the user and the start time. Then when the user stops seeding we send another call saying seeding as stopped at time x with user y.( This is an oversimplification but it's just to give a broad idea).

I was wondering when beaker detects the number of seeders is their any other information on say where the seed is coming from ?

roscoevanderboom commented 6 years ago

I really like the seeding function as it is now. It's like couch surfing for the web. And I can easily manage what I'm seeding. (Perhaps add a total of data seeded.)

Incentives just create incentive for people to keep their computers running longer than they would normally. Increasing energy consumption. Don't get me wrong, I spend more time than most on a PC and I'm happy to seed websites for most of my friends. A decent flash drive could seed many websites. If people get paid for hosting/seeding, some people might host they dont agree with just for the reward.

Now it's like a gift economy. That's awesome!!