Module engine::vault [−][src]
Vault is an in-memory database specification which is designed to work without a central server. Only the user which holds the associated id and key may modify the data in a vault. Another owner can take control over the data if they know the id and the key.
Data can be added to the chain via a [DataTransaction
]. The [DataTransaction
] is associated to the chain
through the owner’s ID and it contains its own randomly generated ID.
Records may also be revoked from the Vault through a [RevocationTransaction
]. A [RevocationTransaction
] is
created and it references the id of a existing [DataTransaction
]. The RevocationTransaction
stages the
associated record for deletion. The record is deleted when the DbView
preforms a garbage collection and the
[RevocationTransaction
] is deleted along with it.
Re-exports
pub use crate::vault::view::DbView; |
Modules
view |
Structs
ChainId | A chain identifier. Used to identify a set of transactions in a version. |
ClientId | Client Id type used to identify a client. |
Id | A generic Id type used as the underlying type for the |
Key | A key to the crypto box. Key is stored on the heap which makes it easier to erase. |
RecordHint | a record hint. Used as a hint to what this data is. |
RecordId | A record identifier. Contains a ChainID which refers to the “chain” of transactions in the Version. |
VaultId | Vault Id type used to identify a vault. |
Traits
Base64Decodable | a trait to make types base64 decodable |
Base64Encodable | a trait to make types base64 encodable |
BoxProvider | A provider interface between the vault and a crypto box. See libsodium’s secretbox for an example. |
Decrypt | Trait for decryptable data. Allows the data to be decrypted. |
Encrypt | trait for encryptable data. Allows the data to be encrypted. |