Draft: Account Synchronization Over Remote Storage
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:
- RemoteStorage interface, which must be implemented against SFTP, Crust, Dropbox, etc.
- TransactionLog, a log that writes to the remote storage.
- KV, a key-value store wrapping https://git.xx.network/elixxir/ekv with options to store values optionally against in the TransactionLog.
- Collector, a thread manager that reads other transaction logs on RemoteStorage and applies updates against the KV.
Edited by Richard T. Carback III