I love the idea behind this project and I hope you and your team succeed! I have a few questions that hopefully you can answer for me:
1. how do you communicate to users that this is happening and that they want to let you use their CPU/GPU? I know that the pirate bay did something like this just a few weeks ago for alt coin mining. A lot of people where very unhappy about this and felt it was very invasive.
2. (kind of a similar question to 1) how do you ask the users if they want to opt in or not? I assume that there will be an option not to allow the site to use your computer? Otherwise you are forced to not use the site if you don't want this to happen.
3. If a user chooses not to opt in, what would their website experience look like? Would it still have adds then?
4. how will the resources of the computer be evaluated and used? For example if I am on a mobile device vs a desktop how will the website determine how much resources each can provide? And how will you ensure that the users experience is smooth since, depending on how much resources the website uses the computer might start to slow down.
Thanks,
John
Hi John, thanks for your questions.
-1. + 2. There will be an option for website owners to activate a small temporary notice, similar to the whole European cookie consent thing. It's up to the website owner if this should be activated or not. Activating it can be as simple as adding data-notice="true" to the one line of javascript. I agree that people would prefer no mining rather than any mining, but there is no such thing as a free lunch and someone needs to pay the hosting and content bill at the end of the day. If people think that they can have their cake and eat it too, it will come back to haunt them in forms like wikipedia begging for donations or article paywalls.
-3. If a user chooses to opt out, the custom policy of the website owner is activated. For example, a website owner might tolerate a maximum of 20% of visitors opting out. The website owner can choose to either allow a warning notice to be displayed, display the content anyways, or disable access completely. Custom interactions can be setup on the visitors side too, for example they can opt out of all Oyster mining or add a whitelist that allows contributions to specific websites despite the general opt out.
-4. There is no reliable technical way to tell the difference between internet connection types such as unlimited broadband or a limited phone data plan. However general internet speed can be deduced via tracking the average latency of connections with other nodes, which helps the algorithm deduce what it's running on. Overall the Oyster protocol has been optimized to consume as little bandwidth as possible, this is mentioned in the whitepaper. It is reasonable to expect that bandwidth wise it would be around the same as loading image and light video advertisements. CPU can also be evaluated with JS, I've done it before for a project a long time ago. It essentially has a loop and if a delay starts occurring for each cycle it knows that the device is being pushed too hard. Therefore upper limits can be hardcoded to ensure the mining never disrupts any user experience.