Familiar Programming Model
Well-known database APIs such as
tx.Abort() to build applications.
A user who submitted a transaction to make changes to data cannot deny submitting the transaction later.
Fine-Grained Read and Write Access Control
Every data item can have a list of users who can only read the data item and a list of users who can read and write to the data item. Users who are not in these listss cannot access the data item.
Each data item can have an access control list to dictate which users can read and write. Each user needs to authenticate themselves by providing their digital signature to read or write a given data item. Depending on the access rule defined for data item, sometimes more than one users need to authenticate themselves together to read or write to data.
Rich Data Provenance
All historical changes to the data are maintained separately in a persisted graph data structure so that a user can execute query on those historical changes to understand the lineage of each data item.
Rich JSON Queries
JSON queries can be used to fetch JSON data items based on certain predicates on JSON fields. Logical operators (
>=) and combinational operators (
||) are supported on
int64 data fields in a JSON value.
Data cannot be tampered with, without it going unnoticed. At any point in time, a user can request the database to provide proof for an existance of a transaction or data, and verify the same to ensure data integrity.
Proofs and Verifications
Generation and verification of proofs based on Merkle Tree and Merkle Patricia Tree for an existance or non-existance of a state, and transaction. Skip chain based proof and verification for an existance and non-existance of a block.
Deployment of a cluster of Orion nodes using RAFT replication protocol to provide highly available centralized ledger service.