安装配置
ChainSQL是一个基于区块链网络的数据库平台,先要创建区块链网络,再去进行数据库表的相关设置。
部署准备

登录QingCloud平台,按步骤创建系统运行需要的相关资源:

1. 创建私有网络

在QingCloud “计算机和网络”中,创建私有网络。

2. 申请公网IP

在QingCloud “计算机和网络”中,根据自己的需求申请公网IP。本应用不需要使用80端口,带宽建议4M以上。

3. 配置防火墙

1) 找到要配置的防火墙

在QingCloud “安全”-“防火墙”中,点击要使用的防火墙。

2) 配置下行规则

在防火墙的配置页面点击“创建”按钮,分别添加6006、9696、5123端口的下行规则,设置行为:接受,协议:TCP。

3) 配置上行规则

在防火墙的配置页面点击“创建”按钮,分别添加6006、9696、5123端口的上行规则,设置行为:接受,协议:TCP。

4) 应用修改

在防火墙的配置页面点击“应用修改”按钮。

4. 负载均衡器

1) 创建负载均衡器

在QingCloud “计算机和网络”-“负载均衡器”中,通过“创建”功能来创建负载均衡器,负载均衡器的类型使用公网,绑定已经申请好的公网IP及在第3步中配置好的防火墙。其他信息根据需要填写,直至创建完成。

2) 创建负载均衡器

创建完负载均衡器后,在负载均衡器的列表界面,点击负载均衡器的ID打开详细界面,通过“创建监听器”创建三个监听器。三个监听器的要求如下:

a) 监听器名称:根据自己需要填写

b) 监听协议:TCP

c) 负载方式:源地址

d) 端口:一个监听器使用5123端口;一个监听器使用6006端口;一个监听器使用9696端口;三个监听器分别对应ChainSQL的三种类型的节点,请确保一定正确设置。

本说明文档中的创建了3个监听器,为了方便展示,将端口号作为了监听器名字的末尾部分,方便识别。

系统部署

1. 基本设置

输入应用的名称、描述等信息。

2. 主节点设置

配置节点的资源:CPU、内存、挂载卷大小等信息。

3. 验证节点设置

添加负载均衡器并进行节点资源配置:

1) 添加负载均衡器

2) 选择负载均衡器

3) 监听器选择validation-node-5123,该监听器使用的端口为5123

4) 该节点端口号固定为5123,不可更改

5) 转发策略:请勿选择,否则影响网络端口无法连接!

6) 配置节点的资源:CPU、内存、节点数量等信息

4. 非验证节点设置

添加负载均衡器并进行节点资源配置:

1) 添加负载均衡器

2) 选择负载均衡器

3) 监听器选择novalidation-node-6006,该监听器使用的端口为6006

4) 该节点端口号固定为6006,不可更改

5) 转发策略:请勿选择,否则影响网络端口无法连接!

6) 配置节点的资源:CPU、内存、节点数量等信息

5. 代理节点设置

添加负载均衡器并进行节点资源配置:

1) 添加负载均衡器

2) 选择负载均衡器

3) 监听器选择chainsql-proxy-9696,该监听器使用的端口为9696

4) 该节点端口号固定为9696,不可更改

5) 转发策略:请勿选择,否则影响网络端口无法连接!

6) 配置节点的资源:CPU、内存、节点数量等信息

6. 网络设置

选择自己的私有网络。

6) 配置节点的资源:CPU、内存、节点数量等信息

7. 服务环境参数设置

添加负载均衡器并进行节点资源配置:

1) ChainSQL代理用户名和ChainSQL代理密码:为mysql数据的用户名和密码,也即API验证数据库有效的数据库用户信息。

2) ChainSQL 根账户地址:根账户为系统的管理账户。生成方法如下:

a) 复制描述信息中URL:http://chainsql.net/generateAddress,在浏览器中打开

b) 产生输出结果:

以下为举例输出结果,请勿直接使用!

"secret":"xxWFBu6veVgMnAqNf6YFRV2UENRd3","address":"z9VF7yQPLcKgUoHwMbzmQBjvPsyMy19ubs"}

secret为根账户私钥;address输出值为根账户地址。请将address输出值复制到ChainSQL 根账户地址。

注:根账户私钥和地址信息均为管理账号的相关信息,请牢记! 根账户地址。

修改配置

1) 通过新增节点和删除节点功能增加和删除节点,需要注意的是要验证节点(validation-node-5123)不能小于3个。

2) 新增验证节点后,请勿在短时间内(10分钟)删除原验证节点的数量小于2,因为涉及到账本同步问题,如果需要删除,请在10分钟后再进行删除操作。

使用指南

ChainSQl部署完成后,使用者通过调用系统提供的API接口来将自己的数据进行区块链存储和管理。系统提供JSON-RPC、JAVA API、Node.js API、Mysql JDBC API类型的接口。各类型的接口命令请参考:http://chainsql.net/api_java.html

本文针对几种类型进行一些实例展示:

1. JAVA API 调用实例

现ChainSQL 支持JAVA 1.6及其以上版本。

1) 获取依赖jar包

a. 如果本地有maven环境,将以下代码加入本地开发环境pom.xml文件进行jar包下载。

<dependency> <groupId>com.peersafe</groupId> <artifactId>chainsql</artifactId> <version>1.4.2</version> </dependency>

b. 如果本地没有maven环境,直接下载项目依赖的jar包,在“buildPath”中选择“libraries”,再Add External Jars 添加相应的jar包。 项目依赖的jar包下载:libs.zip

2) 实例实现的操作为,创建表T_BBPS_LEDGER_ONCHAIN、插入数据和查询数据。具体实例请参考测试程序《java实例》

3) 实例jar包下载:TestChainsql.jar(可直接使用java -jar 命令执行)

2. Js API调用实例

1) ChainSQL的操作对象

a. 使用前首先在package.json文件中引入"chainsql":"^0.6.21"; 然后执行npm install命令

b. 直接执行npm install chainsql --save命令

2) 实例实现的操作为,创建表base、插入数据和查询数据。具体实例请参考测试程序《nodejs实例》

3.Mysql JDBC API调用实例

基于开源项目kingshard,我们支持通过native SQL语句形式向ChainSQL链写入交易数据(创建表交易数据除外,后期开发)。 具体实例请参考mysqlAPI接口http://chainsql.net/api_mysql