CovenantSQL is a decentralized SQL database management system derived from SQLite and built on top of a blockchain. It supports most of the SQL-92 features. Each party interacting with CovenantSQL is either a client, a block producer, or a miner. When a client sends a connection request, the request is directed to one node among a group of block producers. The block producers form a public block chain. When a block producer receives a request, it allocates a number of CovenantSQL nodes, called miners. The miners self-organize into a separate block chain, called a shard chain, which runs SQL queries from the client. Each miner is an independent database engine running SQLite. CovenantSQL uses Go's driver for SQLite to interact with individual miners.[04]
- Website
- https://covenantsql.io[01]
- Source Code
- https://github.com/CovenantSQL/CovenantSQL[02]
- Developer
- Country of Origin
- CN
- Start Year
- 2018
- Project Types
- Commercial, Open Source
- Written in
- Go
- Supported Languages
- Go, Java, JavaScript, Python, SQL
- Derived From
- SQLite
- License
- Apache v2
CovenantSQL is a decentralized SQL database management system derived from SQLite and built on top of a blockchain. It supports most of the SQL-92 features. Each party interacting with CovenantSQL is either a client, a block producer, or a miner. When a client sends a connection request, the request is directed to one node among a group of block producers. The block producers form a public block chain. When a block producer receives a request, it allocates a number of CovenantSQL nodes, called miners. The miners self-organize into a separate block chain, called a shard chain, which runs SQL queries from the client. Each miner is an independent database engine running SQLite. CovenantSQL uses Go's driver for SQLite to interact with individual miners.[04]
Storage Architecture[05]
Clients can specify the storage architecture through a parameter in the connection request to the database. Same as SQLite.
System Architecture[06]
CovenantSQL uses a three-level architecture, consisting of a main block chain, many shard chains, and individual miners. The main block chain is a group of nodes called block producers, responsible for matching clients to shard chains. Each shard chain, which is a group of computing nodes called miners, is a single database. Each miner is a standalone database engine that is responsible for storage and query processing. The miners reach consensus using a variant of Byzantine Fault-Tolerated Raft, which the developers call Kayak.
Citations
6 sources- CovenantSQL - The Blockchain SQL Database covenantsql.io
- GitHub - CovenantSQL/CovenantSQL: A decentralized, trusted, high performance, SQL database with blockchain features · GitHub github.com
- pkgsite: doesn't handle non-ascii package name, regression compared to godoc · Issue #43036 · golang/go github.com
- https://covenantsql.io?lang=en#how covenantsql.io
- CovenantSQL/storage/storage.go at develop · CovenantSQL/CovenantSQL · GitHub github.com
- http://developers.covenantsql.io/docs/en/arch covenantsql.io