注:本文适用于v0.30.5
版本
MySQL 的配置
参考 官方文档
只需要建好数据库并且更改为 UTF-8 编码即可
ChainSQL 的编译 (可省略,直接去repo里下载最新的 release)
在/chainsqld/Builds/Ubuntu/
下执行install_boost.sh
和build_clang_libs.sh
然后在/chainsqld
中使用 cmake 来编译安装
运行时需要 ripple 相关依赖, 运行install_rippled_depends_ubuntu.sh
脚本
ChainSQL 的配置
- 打开终端执行
./chainsqld validation_create
返回validation_public_key
和validation_seed
并写入chainsqld.cfg
中的相应字段 (如四个节点则需要重复四次此步骤) [validators]
下填写其他节点的validation_public_key
chainsqld.cfg
中的[ips]
字段改为[ips_fixed]
- 在
[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]
[peers]
使用基于 Node.js 的 Raspberry Pi 将传感器上传到数据库
此功能基于 Node-RED 项目
传感器的数据发布在本地 HTTP 服务器上, 通过 GET 方法获取并按照 RPC 接口标准填好字段后 POST 到相应接口
测试用的 Flow 的配置如下: Flow
备注
在本地 MySQL 建好的 chainsql 数据库中会有两个表名, 一个是自动生成的SyncTableState
记录了各个表的详细信息,其他都为用户生成的表, 表名经过了 hash, 需要在SyncTableState
中查找对应的表, 至于表的内容没有经过加密, 可以在本地数据库进行查看, 但不应进行其他操作