Participation Agreement
Please read this before choosing to participate. This is a plain-language summary of what happens on your device.
What participation means
This website uses your device to perform distributed mathematical computations (numerical matrix operations) on behalf of a shared compute network, while a participating page is open in your browser. A participating page may also use your device to run other people's web applications for the same network, as described under "Running other people's web applications" below.
This starts when the page loads. Participation is on by default and you can turn it off at any time — using the Decline button below, or the Opt out button on the notice shown when you first visit. Once you opt out, your device is not used again on this site or any other site in the network, and no connection is made.
What it uses
- Processing power - your device's CPU and/or graphics processor (GPU) are used to run calculations. This can increase device load, heat, and battery/electricity usage while active.
- Memory - intermediate numerical data for the calculations you are given is held in your device's memory while a calculation is in progress, and released afterwards. There are fixed limits on how much can be held at once.
- Network - your browser exchanges computation inputs and results, and the requests and responses of web applications it runs, with the network over an ordinary web connection. It may also download the runtimes, packages and code described under "Running other people's web applications" below, straight from their public sources.
- Direct connections to other participants - when a calculation's result is needed by another participant's device, your browser may send it to them directly rather than routing it through our servers. Establishing such a connection reveals your device's IP address to that other participant, and theirs to you, in the same way any peer-to-peer web connection does. If a direct connection cannot be established, the data goes through our servers instead. You can prevent direct connections entirely by declining participation.
- Local storage - a randomly generated identifier is stored in your browser, and recent computation inputs and their results may be kept temporarily in your browser to avoid repeating identical work. This data is not personal and stays on your device.
Running other people's web applications
The network also lets people run small web applications ("boxes") on volunteers' devices. While a participating page is open, your browser may be given a box to run, in a hidden frame that is isolated from the page you are looking at, in a worker of its own. A box is code written by someone else, so it is not reviewed by us or by the site you are visiting. Specifically:
- It is isolated. A box runs in a sandboxed frame with no access to your files, the website you are visiting, that website's cookies and storage, or anything else in your browser. It cannot read or change the page, and the page cannot read the box. The isolation is enforced by your browser.
- It may run a Linux virtual machine. Some boxes are containers or Node.js servers. Your browser can run those inside an emulated Linux computer (a virtual machine written in WebAssembly), entirely inside the isolated frame. It uses more memory than the calculations above (several hundred megabytes while it is running) and noticeably more processing power, and starting it downloads its files (roughly 40-60 MB the first time; your browser may keep them in its ordinary cache).
- It can download software over your connection. To start, a box can make your browser download its code and its runtime and packages: the box's own files from GitHub (raw.githubusercontent.com, one file at a time, for the commit the box is deployed from), the Python runtime from a public content-delivery network (jsDelivr), Python packages from PyPI (pypi.org and files.pythonhosted.org), npm packages from the npm registry (registry.npmjs.org), and the virtual machine's files from the network's servers and the same content-delivery network. For a box that is a container image, the image's files are fetched by the network's servers from the public registry and passed on to your browser, so the registry sees the network's address, not yours. The other downloads come from your device's internet connection, so GitHub and those services can see your IP address, as with any download, and what is fetched is chosen by the box's author. The box's own files are checked against a list of fingerprints (SHA-256 hashes) that the network recorded when it first saw that version of the code, and the virtual machine's files and image layers against fixed hashes; where a check fails, the download is discarded and the network sends the code itself instead. Nothing downloaded is run outside the isolated frame.
- Its own internet access does not go through your connection. A box has no internet access unless its author turns it on, and then everything it sends or receives travels through the network's servers, which send it onward through the Tor network. Nothing a box requests is sent from your device's IP address. (The downloads in the previous point are made by your browser to set the box up and are not the box's own internet access.)
- What it sees. A box sees the requests it is given by its own visitors and nothing about you. It is not given your IP address, cookies or any identifier of yours.
- What it costs you. Like the calculations above, boxes use your device's processing power and memory, and can increase load, heat and battery use. A box that takes too long is stopped. Boxes stop when you opt out or close the page.
Who may be credited
A site that embeds this script may credit its participation to the site owner's mPAKT Grid account, by including that account's public volunteer code. The code is not about you; it is sent to the network along with your device's other messages and only tells the grid which account to credit for the work your device does while you are on that site. Nothing about you is attached to it, and a code the network does not recognise is simply ignored. The same kind of code identifies the account of someone who runs the downloadable volunteer program on their own computer.
What it does NOT do
- It does not access your files, documents, camera, microphone, location, or browsing history, and nor can the applications it runs for others.
- It does not collect personal information or track you across sites.
- It runs only while a participating page is open, and stops the moment you opt out. That includes any web application or virtual machine it was running.
Your choices
- You may decline below. Any work in progress stops immediately, the page reloads to make certain nothing is left running, and your device is not used again.
- Your choice is remembered in a cookie on the site you are visiting, so you are only asked once. Clearing that site's cookies makes the notice appear again and participation resume.
- Because participation begins when the page loads, a small amount of computation may have run before you opt out.
- Participation is voluntary and provided as-is, with no warranty.