Distributed Computing Management via Tor Hidden Service
BOINC (Berkeley Open Infrastructure for Network Computing) allows researchers to harness volunteer computing power for scientific calculations - from protein folding to climate modeling to gravitational wave analysis. Private BOINC deployments (running a project rather than contributing to one) require a project server that volunteer clients connect to. Exposing the project server directly to the internet creates risks: the server IP is a target for denial of service attacks, volunteer client IPs are logged at the server, and the server's geographic location is revealed. A BOINC project server as a Tor hidden service protects both the server and the volunteers: the server IP is hidden behind .onion, volunteer clients connecting via Tor conceal their IPs, and management of the project server happens through the .onion interface without exposing administrator IPs. This guide covers BOINC project server deployment and alternative distributed computing frameworks as Tor hidden services.
Need this done for your project?
We implement, you ship. Async, documented, done in days.
A BOINC project server consists of several components: a web server (Apache) serving the project website, a MySQL database storing work units and results, daemon processes (feeder, transitioner, validator, assimilator) managing the computation workflow, and client-server communication for work unit distribution and result collection. The entire HTTP-based communication between BOINC clients and the project server can be routed through Tor: clients connect to the project server's .onion URL rather than a clearnet IP. Configuration: the project URL in BOINC client is set to http://yourproject.onion/project/ instead of a clearnet URL. The project server runs behind a Tor hidden service exposing Apache on port 80.
Setting Up a Private BOINC Project Over Tor
Install BOINC server tools: the boinc-server-maker package on Debian/Ubuntu provides the tools to create a BOINC project. Create a project: cd /var/lib/boinc && make_project --url_base http://yourproject.onion/myproject/ --db_host localhost myproject. This creates the project directory structure and database. Configure Apache to serve the project, listening on 127.0.0.1:80. Configure Tor: HiddenServicePort 80 127.0.0.1:80. Start BOINC daemons: cd /var/lib/boinc/myproject && ./bin/start. Volunteer clients attach to the project by entering the .onion URL in BOINC Manager: Add Project > URL: http://yourproject.onion/myproject/ with the project account credentials. Clients must have Tor configured and BOINC networking configured to use Tor's SOCKS5 proxy (127.0.0.1:9050).
Alternative: Folding@home and Custom Work Distribution
For researchers who do not need BOINC's full project infrastructure, simpler distributed computing frameworks work well as .onion services. Python-based frameworks like Celery (distributed task queue using Redis or RabbitMQ as the broker) can distribute computation tasks to workers: the Redis broker runs as a .onion service, workers connect via Tor, and the coordinator submits tasks. For genomics and scientific computing: Nextflow and Snakemake support distributed execution via SSH, which can be tunneled through Tor. GNU Parallel with SSH over Tor provides simple task distribution to multiple compute nodes. The .onion approach works for any master-worker distributed computing pattern where worker nodes can be configured with Tor and SOCKS5 proxy settings.
Volunteer Client Configuration for Tor-Based BOINC
Configuring BOINC volunteer clients to connect to a .onion project server: BOINC uses HTTP for project communication, and the network connection can be configured to use a SOCKS5 proxy. In BOINC Manager: Tools > Options > Network and dial-up options > enable HTTP proxy and enter 127.0.0.1:9050 as the SOCKS5 proxy (Tor's SOCKS port). Volunteer clients also need Tor running on their system and the Tor client listening on port 9050. With this configuration, all BOINC communication (work unit fetch, result upload, server status checks) routes through Tor. Volunteer clients can connect to the .onion project URL without exposing their real IP to the project server.
Security and Computation Integrity
Distributed computing security concerns in a Tor-based deployment: (1) result validation: BOINC has built-in redundant computing (multiple clients compute the same work unit, results are compared for agreement). This prevents malicious volunteers from returning fraudulent results. Enable validation with a validator appropriate to the computation type. (2) work unit confidentiality: if computation involves proprietary data, encrypt work units before distribution. Clients decrypt using a project-provided key, compute on decrypted data, encrypt results before submission. (3) denial of service resistance: the .onion address limits who can access the server (not publicly scannable), but determined attackers who obtain the .onion URL can still attempt to overwhelm the server. Rate limiting at the Nginx/Apache level provides protection.