Skip to content

Draft: Account Synchronization Over Remote Storage

Josh Brooks requested to merge projects/AccountSync into release

Add a sync module, which implements the draft spec "Multi-Client State Synchronization." When the user first creates their account, everything exists locally. To add devices, they will need to add remote storage. Options for remote storage include SFTP, Crust, Dropbox, etc. All devices must share the same cloud storage. Using that remote storage, implemented by external library users, sync can write a transaction log that allows all other devices connected to that remote storage to stay in synchronization with each other. This module includes the following major components:

  1. RemoteStorage interface, which must be implemented against SFTP, Crust, Dropbox, etc.
  2. TransactionLog, a log that writes to the remote storage.
  3. KV, a key-value store wrapping https://git.xx.network/elixxir/ekv with options to store values optionally against in the TransactionLog.
  4. Collector, a thread manager that reads other transaction logs on RemoteStorage and applies updates against the KV.
Edited by Richard T. Carback III

Merge request reports