首页 > 数据库 > > CQL #1:SQLChain 数据库创建流程
0.5.0 ,参见 Quickstart;brew install cql 直接安装 CQL 的客户端[1] ;CQL 采用分层的架构进行数据库的创建和运行,一个典型的数据的创建过程大致可以如下过程:
cql create '{"node":2}'[3],向主链的任一 "出块节点"(BP: Block Producer)发送经过签名的数据库创建请求;cql console 命令来连接数据库,执行 SQL。CQL 支持两种共识算法:
最终一致性 和 Block Producer 所在的 第一层 (全局共识层) ,CQL 的矿工在客户端将所有SQL查询及其签名打包成块,从而形成整个区块链,我们把这个算法命名为 Xenomint强一致性。我们把这个实现命名为 Kayak. 矿工 leader 会基于 Kayak 做 两阶段提交 来支持 Transaction[5]可以用命令行 cql create '{"UseEventualConsistency": true, "Node": 3}' 来创建 最终一致性 CQL 数据库。
scep256k1 曲线的非对称加密算法产生的公私钥对。encrypt, decrypt,例如:INSERT INTO "t1" ("k", "v") VALUES (1, encrypt("data", "pass", "salt"));
SELECT decrypt("v", "pass", "salt") FROM "t1" WHERE "k"=1;复制代码DB per App(一个 App 一个数据库),另外一种是偏向隐私保护的 DB per User(一个用户一个数据库)。DB per User 的开发模式非常适用于类似 "密码管理器","个人信息管理" 等应用的开发。由于用户是通过类似比特币用一个私钥管理自己财产的方式,通过一个 CQL 私钥管理自己的个人数据,所以这种模式开发的 App 天然具有不存储任何用户数据,从技术上天然符合包括以下法律法规的严苛要求:CQL 的完整数据是存在 SQLChain 的 Miner 上的,这部分数据相关的 SQL 历史是完整保存在 Miner 上的。相对于传统数据库的CRUD(Create、Read、Update、Delete),CQL 支持的是CRAP(Create、Read、Append、Privatize)。
Append vs Update
传统数据库对数据进行更改(Update)后是没有历史记录存在的,换句话说数据是可被篡改的。CQL 支持的是对数据进行追加(Append),其结果是数据的历史记录是得以保全。
Privatize vs Delete
传统数据库对数据进行删除(Delete)也属于对数据不可追溯、不可逆的篡改。CQL 支持的是对数据进行私有化(Privatize),也就是把数据库的权限转给一个不可能的公钥。这样就可以实现对子链数据的实质性删除。针对单条数据的链上所有痕迹抹除目前仅在企业版提供支持。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69999831/viewspace-3156380/ ,如需转载,请注明出处,否则将追究法律责任。