ChainSQL的安装与网络搭建

请注意,本文编写于 777 天前,最后修改于 233 天前,其中某些信息可能已经过时。

注:本文适用于v0.30.5版本

MySQL 的配置

参考 官方文档

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

ChainSQL 的编译 (可省略,直接去repo里下载最新的 release)

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

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

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

ChainSQL 的配置

  1. 打开终端执行./chainsqld validation_create 返回validation_public_keyvalidation_seed并写入chainsqld.cfg中的相应字段 (如四个节点则需要重复四次此步骤)
  2. [validators]下填写其他节点的validation_public_key
  3. chainsqld.cfg中的[ips]字段改为[ips_fixed]

capture.PNG
capture.PNG

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

启动网络

所有节点都用./chainsqld启动即可

启动完成后可以通过./chainsqld server_info查看节点运行信息,首次启动大概要等几分钟,如果一切正常,运行信息中的"complete_ledgers"字段会为非空值,再通过./chainsqld peers查看各节点连接情况

常见问题排查: FAQ

重启节点

节点全部挂掉的情况

  • 如果想要清空链,将 db,rocksdb/NuDb 文件夹清空,然后重新执行节链启动过程;
  • 如果想要加载之前的区块链数据启动,在某一全节点下执行./chainsqld --load , 其他节点执行./chainsqld即可

节点没有全部挂掉的情况

执行./chainsqld即可

使用 JavaScript 接口

参考 Node_API.md

使用 RPC 接口

参考 GitHub WIki

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

其中根账户地址为zHb9CJAWyB4zj91VRWn96DkukG4bwdtyTh

私钥为xnoPBzXtMeMyMHUVTgbuqAfg1SUTb

具体操作的 JSON 如下

表改名

查询数据

删除数据

插入数据

创建表

实例运行截图

[server_info]

192.168.1.141-2018-08-29-12-34-38.png
192.168.1.141-2018-08-29-12-34-38.png

[peers]

192.168.1.141-2018-08-29-12-36-41.png
192.168.1.141-2018-08-29-12-36-41.png

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

此功能基于 Node-RED 项目

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

node-red.PNG
node-red.PNG

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

备注

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

添加新评论

严禁发表政治、反动、色情言论

评论列表