How nirmitaggarwal/volunteer_cloud works
Volunteer Cloud coordinates volunteer machines to benchmark/register, receive benchmark-matched tasks, verify and execute signed plugins, report progress/results, and recover work after worker failures. Python Flask and Rust/Actix are parallel control-server implementations. The graph preserves the plugin, monitoring, fault-recovery, and persistence capabilities documented in the README; several Rust internals and dashboard templates were not sampled, so their implementation-level links are limited.
Main entry points: worker.py Worker agent · server.py Flask orchestrator · main.rs Rust orchestrator · plugins Workload plugins
Components 13
Volunteer clients
- Worker agent
worker/worker.py - Plugin cache
worker/plugin_cache - Job outputs
worker/job_runs
Control servers
- Flask orchestrator
control_server/server.py - Rust orchestrator
control_server_rust/src/main.rs
Plugins and verification
- Workload plugins
plugins - Plugin verification
worker/worker.py
Monitoring and records
- Python CSV records
control_server/storage - Rust CSV records
control_server_rust/storage - Python dashboard
control_server/templates - Rust dashboard
control_server_rust/templates
Other components
- Volunteer operator
- Dashboard viewer
Connections 22
- Volunteer operator → Worker agent: starts worker
README.md - Worker agent → Flask orchestrator: registers and polls
README.md - Worker agent → Rust orchestrator: registers and polls
README.md - Worker agent → Flask orchestrator: sends heartbeat
worker/worker.py - Worker agent → Rust orchestrator: sends heartbeat
worker/worker.py - Flask orchestrator → Worker agent: assigns tasks
README.md - Rust orchestrator → Worker agent: assigns tasks
README.md - Worker agent → Plugin verification: verifies bundle
worker/worker.py - Plugin verification → Plugin cache: reads and caches
worker/worker.py - Flask orchestrator → Workload plugins: serves signed bundles
control_server/server.py - Worker agent → Workload plugins: downloads and executes
README.md - Worker agent → Job outputs: writes output
worker/worker.py - Worker agent → Flask orchestrator: reports progress and results
worker/worker.py - Worker agent → Rust orchestrator: reports progress and results
README.md - Flask orchestrator → Python CSV records: persists records
control_server/server.py - Rust orchestrator → Rust CSV records: persists records
control_server_rust/src/main.rs - Flask orchestrator → Python dashboard: renders monitoring views
README.md - Rust orchestrator → Rust dashboard: routes dashboard views
control_server_rust/src/main.rs - Dashboard viewer → Python dashboard: views status
README.md - Dashboard viewer → Rust dashboard: views status
README.md - Flask orchestrator → Flask orchestrator: requeues failed work
README.md - Rust orchestrator → Rust orchestrator: requeues failed work
README.md