ChainSQL 的安装及使用

MySQL 的配置

参考 GitHub Wiki

只需要建好数据库并且更改为 UTF-8 编码即可

ChainSQL 的编译 (推荐使用Ubuntu 16.04)

/chainsqld/Builds/Ubuntu/下执行install_boost.shbuild_clang_libs.sh

然后在/chainsqld中使用 cmake 来编译安装

运行时需要 ripple 相关依赖, 运行install_rippled_depends_ubuntu.sh脚本

ChainSQL 的配置

  1. 首先将validators.txt的所有内容剪切到chainsqld-example.cfg中并删除源文件
  2. chainsqld-example.cfg 重命名为 chainsqld.cfg 之后执行 ./chainsqld
  3. 然后另开终端执行./chainsqld validation_create 返回validation_public_keyvalidation_seed并写入chainsqld.cfg中的相应字段 (如四个节点则需要重复四次此步骤)
  4. [validators]下填写其他节点的validation_public_key

经测试需要删除以下字段, 以仅使用chainsqld.cfg作为配置文件

[validators_file]
validators.txt

目录下应只有这些文件

  • [sync_db]下配置好 mysql 相关信息
  • [ips_fixed]下配置好其他三个节点的 IP 地址以及端口号, 例如
[ips_fixed]
192.168.1.142 10002
192.168.1.143 10003
192.168.1.144 10004
  • [port_peer]下填写本节点希望使用的端口
[port_peer]
port = 10001
ip = 0.0.0.0
protocol = peer

启动网络

在第一个节点首次需要使用./chainsqld --start来启动, 其他节点使用./chainsqld启动, 以后都用./chainsqld启动即可

启动完成后可以通过watch ./chainsqld server_info查看节点运行信息, 通过watch ./chainsqld peers查看各节点连接情况

常见问题排查: FAQ

使用 JavaScript 接口

参考 Node_API.md

使用 RPC 接口

参考 GitHub WIki

将 JSON 格式的文本 POST 到节点的 RPC 接口, IP 地址和端口写在chainsqld.cfg里的[port_rpc_admin_local]

其中根账户地址为zHb9CJAWyB4zj91VRWn96DkukG4bwdtyTh

私钥为xnoPBzXtMeMyMHUVTgbuqAfg1SUTb

具体操作的 JSON 如下

表改名

查询数据

删除数据

插入数据

创建表

实例运行截图

[server_info] 四个节点的peers

[peers] 典型正常运作的server_info

使用基于 Node.js 的 Raspberry Pi 将传感器上传到数据库

此功能基于 Node-RED 项目

传感器的数据发布在本地 HTTP 服务器上, 通过 GET 方法获取并按照 RPC 接口标准填好字段后 POST 到相应接口

Node-RED 上的 Flow

测试用的 Flow 的配置如下: Flow

备注

在本地 MySQL 建好的 chainsql 数据库中会有两个表名, 一个是自动生成的SyncTableState记录了各个表的详细信息,其他都为用户生成的表, 表名经过了 hash, 需要在SyncTableState中查找对应的表, 至于表的内容没有经过加密, 可以在本地数据库进行查看, 但不应进行其他操作