Skip to main content

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

See Also