Please note that these Trac pages are no longer being updated. Wiki contents/documentation have moved to GitHub.

UnderstandingSeattle/DonatingResources

Version 18 (modified by justinc, 6 years ago)

--

Donating Resources

Donating resources with Seattle is a safe and easy way to help students and researchers all around the world.




Introduction to Seattle Donation


The overall philosophy of the Seattle project is use donated resources in a way that is safe and secure (including performance-isolation). Programs that run donated resources are isolated so that a program can't write or read files it isn't supposed to or do other bad things to your computer. Seattle also ensures fair play by isolating the performance of Seattle programs from your other programs you use. Our promise to you is to use no more than 10% of your computer's resources (things like RAM, CPU time, network bandwidth, and hard drive space).


Risk


Running any software on your system involves a small amount of risk. A bug in any of the software you run can allow an attacker to do bad things with your computer. Seattle is designed to make running Seattle code on your system risk free. Seattle prevents programs from using too many resources, reading your files on the system, or doing other bad things to your computer.

  • Risk to your system: If we have a bug in the Seattle software that allows a malicious party to escape the protections of Seattle, they could have access with the privilege of the user account that runs Seattle. We use a  novel security design to minimize the chance of this from happening. To further minimize risk Seattle can be run in a restricted / non-privileged account, so if you're concerned about this, run Seattle as a restricted user.

If Seattle works correctly, the programs that run on our platform cannot harm your computer. The program is limited to consume only a small percent of the resources on the computer and cannot interfere with security or performance.

  • Risk to other Internet hosts: However, while the rate and source port of network traffic is restricted, the destination port and destination IP are not. This means there is some small risk they could be used for reflecting traffic, etc. This is a very common feature for lots of different types of software you might install like Tor, most versions of BitTorrent, etc. and so isn't limited to Seattle. You can choose to utilize a policy that further restrict which computers your computer can communicate with.


Why You Should Donate


By running Seattle on your home computer, workstation, or computer, you are helping everyone using Seattle! By making your donation available to Seattle users, you are allowing users to try new topologies of nodes. This enables both more accurate representations of Internet (increased and varied latency times) and allows more undergraduates, graduate students, and professors to test their hypotheses on a Internet-like testbed without charge. You are helping these people to build the cool advances (like cloud computing) that everyone will benefit from in the future.


Installing Seattle


Installing Seattle on your machine is easy. First you will need to download an installer. If you were referred to Seattle by a Seattle user, they may give you a link to an installer that credits the donated resources to them. If not, you can download  download a general installer that credits your donations to a general fund for students to use.

Then uncompress the file and start the install script (install.bat on Windows or install.sh on other OSes). The installer does three things:

  1. start Seattle on your computer
  1. start the software updater for Seattle. The software updater will automatically keep Seattle updated to the latest version for you.
  1. insert Seattle and the software updater into your startup queue (crontab for linux/apple, startup items for windows) so that they run whenever you reboot or login.

And that's it, you're done!


Pausing Seattle


If you ever want to pause the execution of Seattle, run the python script seattlestopper.py (or use the script stop_seattle.sh). To unpause, run the python script seattlestarter.py (or use the script start_seattle.sh). During the paused period, your computer's resources will not be consumed by student programs. If you restart after pausing, Seattle will start back up again.


Uninstalling Seattle


If you decide to end your donation, Seattle can be uninstalled simply by running the python script uninstall.py (or the script uninstall.sh). This process will remove Seattle from the startup queue, deactivate the main thread, and remove the execution from the user's crontab (if applicable). You can then safely delete the folder you installed Seattle in to completely remove it from your system.


Comments or Questions


We would also like to know about your experiences with Seattle. If you have any questions or comments please drop a message to the  Seattle user list! We're always striving to make a better experience for all.