Features:
- ServerLess: Free, High Availabile, Auto Sync Database Service for Serverless App
- SQL: Most SQL-92 support.
- Decentralize: Running on Open Internet without Central Coordination.
- Privacy: Access with Granted Permission and Encryption Pass.
- Immutable: Query History in CQL is Immutable and Trackable.
- Permission: Column Level ACL and SQL Pattern Whitelist.
- Open source alternative of Amazon QLDB
- Low cost DBaaS
- Just like filecoin + IPFS is the decentralized file system, CQL is the decentralized database
CQL is a derived work of CovenantSQL.
CQL client supports:
- macOS X 10.9+
- Linux 2.6.23+
- Layer 1: Global Consensus Layer (the main chain, the middle ring in the architecture diagram):
- There will only be one main chain throughout the network.
- Mainly responsible for database Miner and the user’s contract matching, transaction settlement, anti-cheating, shard chain lock hash and other global consensus matters.
- Layer 2: SQL Consensus Layer (shard chain, rings on both sides):
- Each database will have its own separate shard chain.
- Mainly responsible for: the signature, delivery and consistency of the various Transactions of the database. The data history of the permanent traceability is mainly implemented here, and the hash lock is performed in the main chain.
- Layer 3: Datastore Layer (database engine with SQL-92 support):
- Each Database has its own independent distributed engine.
- Mainly responsible for: database storage & encryption, query processing & signature, efficient indexing.
CQL supports 2 kinds of consensus algorithm:
- DPoS (Delegated Proof-of-Stake) is applied in
Eventually consistency mode
database and alsoLayer 1 (Global Consensus Layer)
in BlockProducer. CQL miners pack all SQL queries and its signatures by the client into blocks thus form a blockchain. - BFT-Raft (Byzantine Fault-Toleranted Raft)is applied in
Strong consistency mode
database. The CQL miner leader does aTwo-Phase Commit
withKayak
to supportTransaction
.
CQL database consistency mode and node count can be selected in database creation with command cql create '{"UseEventualConsistency": true, "Node": 3}'
Ethereum | Hyperledger Fabric | Amazon QLDB | CQL | |
---|---|---|---|---|
Dev language | Solidity, ewasm | Java, Go, Node.js | Java | Java, Go, Node.js, Python |
Dev Pattern | Smart Contract | Chaincode | SQL | SQL |
Open Source | Y | Y | N | Y |
Nodes for HA | 3 | 15 | ? | 3 |
Column Level ACL | N | Y | ? | Y |
Data Format | File | Key-value | Document | Key-value, Structured |
Storage Encryption | N | API | Y | Y |
Data Desensitization | N | N | N | Y |
Multi-tenant | DIY | DIY | N | Y |
Consistency Delay | 2~6 min | < 1 s | ? | < 10 ms |
Secure for Open Internet | Y | N | Only in AWS | Y |
Consensus | PoW + PoS(Casper) | CFT | ? | DPoS (Eventually Consistency) BFT-Raft (Strong Consistency) |
If you are a developer of password management tools just like 1Password or LastPass. You can use CQL as the database to take benefits:
- Serverless: no need to deploy a server to store your user's password for sync which is the hot potato.
- Security: CQL handles all the encryption work. Decentralized data storage gives more confidence to your users.
- Regulation: CQL naturally comply with GDPR.
CQL miners are deployed globally, IoT node can write to nearest CQL miner directly.
- Cheaper: Without passing all the traffic through a gateway, you can save a large bandwidth fee. And, CQL is a shared economic database which makes storage cheaper.
- Faster: CQL consensus protocol is designed for Internet where network latency is unavoidable.
For example, you are the most detailed Bitcoin OHLC data maintainer. You can directly expose an online SQL interface to your customers to meet a wide range of query needs.
- CQL can limit specific SQL query statements to meet the needs while also balancing data security;
- CQL can record SQL query records on the blockchain, which is very convenient for customers to check their bills for long-tail customers and billing.
- For customers with high performance requirements, Slave nodes can be deployed at the customer to meet the needs of customers with low latency queries while enabling almost real-time data updates.
Thanks to the CQL data history is immutable, CQL can be used as a storage for sensitive operational logs to prevent hacking and erasure access logs.
Storing data on Bitcoin or Ethereum is quite expensiveProgramming is very complicated due to the lack of support for structured data storage. CQL gives you a low-cost structured SQL database and also provides more room for ĐApp to exchange data with real-world.