Bitbox: Eventually Consistent File Sharing

Bitbox is an application that synchronizes distributed repositories of data. It can be used as a backup or sharing application similarly to popular cloud-based storage systems. Bitbox supports arbitrary and changing topologies, thus allowing residential gateways to be used as caches for synchronizing nomadic devices that connect only periodically. In this article, we describe the data-structure and algorithms powering Bitbox. We prove its correctness by showing that its synchronization scheme achieves strong eventual consistency.