SyftBox Protocol
SyftBox is the foundational protocol that enables privacy-preserving federated computations through a file-based synchronization system.
Core Concepts
Datasites
A datasite is a logical entity in the SyftBox network that:
- Has a unique identity (typically an email address)
- Runs a SyftBox client to sync files
- Can be online (client running) or offline
When your client is running, your datasite is online, otherwise it's offline.
Directory Structure
SyftBox/
├── apps/ # Installed applications
├── datasites/ # Synced files from network datasites
├── logs/ # Client logs
└── plugins/ # Extensions (in development)
Permission System
SyftBox uses a file-based permission system with syft.pub.yaml files:
- Read permissions: Who can access files
- Write permissions: Who can modify files
- Terminal flags: Control execution and permissions
note
Permission system details coming soon
File Synchronization
Files are automatically synced across datasites based on:
- Permission settings
- Network topology
- Client online status
Private Data Storage
For federated learning workflows:
- Private datasets: Stored in
~/.syftbox/private_datasets/(NEVER synced) - Public/mock data: Stored in
~/SyftBox/datasites/<email>/public/(synced to network)
This ensures true client-side privacy - your private data never leaves your machine.
Network Architecture
SyftBox operates without requiring direct TCP connections:
- Uses relay servers for coordination
- Optional cache server for encrypted routing
- Peer-to-peer file synchronization
note
Network topology details coming soon