Commit Graph

17 Commits

Author SHA1 Message Date
Jude Nelson
3dd4d89bbf refactor data API such that we (1) generate inodes and tombstones, (2) sign them all, and (3) replicate them. These steps must be separate. 2017-03-09 20:03:55 -05:00
Jude Nelson
ee4f897ea3 use exclusively the required storage drivers for data stores 2017-03-01 23:08:35 -05:00
Jude Nelson
90ee4f7fa8 don't json.dumps our data; delete consistency info on delete-inode and delete-datastore 2017-03-01 19:30:05 -05:00
Jude Nelson
ca9ef4324b add "typed netstrings" to use to serialize and parse mutable data (so we don't rely on JSON, which has limits) 2017-02-28 16:26:06 -05:00
Jude Nelson
4329a657b7 fix bugs found in testing; better error messages 2017-02-24 19:18:08 -05:00
Jude Nelson
7942d74e33 make sure we return an errno on data-plane operations 2017-02-23 17:23:36 -05:00
Jude Nelson
66c2e0d9a0 datastore bugfixes found during testing 2017-02-21 12:34:18 -05:00
Jude Nelson
bf8d43b537 refactor and remove a lot of code from the storage logic. Stores are now identified by the hash of a public key derived from the app's domain and the user's master key. There is no longer a need for user objects, user lists, and private key indexes, and no longer a need for storage bootstrapping. 2017-02-20 21:00:31 -05:00
Jude Nelson
4cdf0f537a datastore privatekey hdpath is account_key/0' 2017-02-12 19:15:56 -05:00
Jude Nelson
6fae7dc70d differentiate between local and global private key indexes and local and global users 2017-02-12 03:33:27 -05:00
Jude Nelson
c476022976 do not require blockchain ID in data setup 2017-02-10 17:39:52 -05:00
Jude Nelson
7b17a5cdcb rework a few things about inodes and inode data in a data store:
* make sure we check all inode headers before getting an inode, so we know the latest version
* have get_mutable, put_mutable, and delete_mutable update data consistency information across all write-devices
* have get_mutable remember which driver(s) succeeded, so subsequent calls on e.g. inode resolution don't needlessly query stale data
* remember data consistency information by device ID, as well as data ID.
2017-02-06 15:11:30 -05:00
Jude Nelson
04a6ccf86b revamp mutable data API for multiple devices:
* get_mutable will search for the latest version of a datum across a set of known devices
* put_mutable will include the device ID in the data it replicates
* delete_mutable will delete from all devices
* datastore inodes will rely on their headers to identify the globally-latest version of the inode data
* user lists and private key indexes will track cross-device versioning so that an update from one device will always be processed by the others.
2017-01-30 01:39:26 -05:00
Jude Nelson
e44235cd62 get_mutable: try each data store until we get fresh data; data_setup: refactor and clean up; stop trying to auto-migrate name profiles (since we don't need the profile any longer) 2017-01-23 19:07:00 -05:00
Jude Nelson
20dfe8b9a7 keep the private key indexes, public user keys, and user lists on shared storage (not just local storage).
* add support for getting, setting, and deleting user state from storage providers
* add support for generating and saving per-identity and per-user private key indexes
* make sure get_mutable() operates on *non-local* data storage providers for shared data.
2017-01-18 18:44:10 -05:00
Jude Nelson
667512f37d stricter requirements for datastore names and user IDs; also, add a 'type' field to the datastore (to differentiate between collections and datastores) 2017-01-17 19:04:10 -05:00
Jude Nelson
e4455caf96 Repository re-organization 2017-01-17 11:16:19 -05:00