ChainSQL logo

ChainSQL

ChainSQL是全球首个基于区块链的数据库应用平台,由 众享比特 公司开发维护。

设计目的

在不改原有项目整体结构的前提下,在逻辑层与数据层之间加入区块链,使得对数据库的操作记录不可更改、可追溯,并且与传统数据库相关项目对接比较方便。

功能

支持功能包括:

1. 基本功能

  • 网关配置数字资产

  • 数字资产的托管

  • 去中心化交易所

2. 数据库表操作

  • DDL:建表、表授权、删除表、表重命名

  • DML:插入、更新、删除、查询(支持复杂查询)

  • 数据库事务:可同时对多张表进行操作

3. 智能合约

  • 无缝兼容EVM智能合约(基于solidity版本:0.4.25-nightly.2018.8.1+commit.21888e24

  • solidity语法中增加了对表操作的指令

  • solidity语法中增加对数字资产的操作指令

系统架构

ChainSQL Framework

版本变化

详细版本变化请参考 github ,这里只列出自0.30.3版本开始的主要变化:

3.0.0

2.0.0-shard

  • 支持分片共识

  • Java SDK版本更新,支持分片,但与2.0.0-shard之前的节点不兼容

1.1.4-pop

1.0.2-pop

  • 替换智能合约虚拟机执行器,由原先的evmjit替换为Interpreter,兼容新智能合约字节码

  • 防止SQL注入

  • raw字段查询条件支持null

  • 增加字段sfTxsHashFillField,实现表交易的历史哈希信息记录

  • 提高内存的释放速度

  • Bug修复

1.0.1-pop

  • 使用新共识算法,将tps提高到4000-6000,并且默认不生成空区块,减小空区块对存储的浪费

  • 新共识原理参考:POP共识算法原理

  • 新共识使用参考:POP共识版本使用

  • 兼容0.30.6版本上的所有功能


0.30.6

0.30.5

0.30.4

  • 智能合约添加数字资产接口,支持通过智能合约发数字资产

  • 表相关交易费用通过配置项可进行修改 drops_per_byte

  • 一次查询条数上限可配置 select_limit

  • 其它

0.30.3

  • 增加智能合约功能,并添加表操作指令

  • 增加接口:table_authr_get_sql_userr_get_sql_admin

  • r_get 查询接口请求中需要附加账户私钥的签名,以更准确地验证用户查询权限

  • 查询接口默认一次最多只能查询200条记录

  • 其它修改

运维相关