此文档已停止更新,最新文档请参考 github wiki 文档

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

安装步骤

1. 架设区块链网络系统,网络节点数总数不能少于4,验证节点数不能小于4,各个节点分布在不同的IP主机上。

1> 启动初始节点:./chainsqld.exe--conf="./chainsqld.cfg"

2> 启动其它节点:./chainsqld.exe--conf="./chainsqld.cfg"--net

2. 配置本地数据库:打开数据库,手动创建一个数据库连接,连接的名称为chainsqld.cfg文件中sync_db配置项中db字段对应的内容。

3. 配置本地需要同步的表信息。

4. 启动本地普通节点:./chainsqld.exe--conf="./chainsqld.cfg"--net

5. 通过API接口连接本地普通节点实现数据库操作的写入。

配置方法

修改配置文件chainsqld.cfg

1. 基础配置:

[node_db]: 存储metadata数据库的类型,windows下设置为NuDB,ubuntu下设置为RocksDB

2. 普通节点的配置:

1> 根据需要配置[port_ws_admin_local]或[port_ws_public]。

2> 修改[ledger_history],全记录节点设置为full; 默认为256(保存最近256个区块)。

3> 修改[ips],填入连接的对端IP地址和端口号。端口号为对端节点配置文件中[port_peer]中的端口。

4> 修改[validators],填写信任节点的public key。

5> 修改[validation_quorum],大于或者等于 ([validators]中信任节点个数 + 1 )/ 2

3. 验证节点的配置:

1> 普通节点的全部设置

2> 运行以下命令获取验证节点公钥和私钥(seed)

# chainsqld -q validation_create

{

"status": "success",

"validation_key": "TUCK NUDE CORD BERN LARD COCK ENDS ETC GLUM GALE CASK KEG",

"validation_public_key": "n9KHn8NfbBsZV5q8bLfS72XyGqwFt5mgoPbcTV4c6qKiuPTAtXYk",

"validation_seed": "xxJb6eTShB6bLpx3ZVuc6TFfCtZ6b"

}

3> 将validation_seed和validation_public_key分别添加到validation_seed与validation_public_key字段中

[validation_seed]

xxJb6eTShB6bLpx3ZVuc6TFfCtZ6b

[validation_public_key]

n9KHn8NfbBsZV5q8bLfS72XyGqwFt5mgoPbcTV4c6qKiuPTAtXYk

4> 添加信任其它的验证节点:在validators字段添加其它验证节点的public key。

[validators]

n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7

n9MD5h24qrQqiyBC8aeqqCWvpiBiYQ3jxSr91uiDvmrkyHRdYLUj

n9KiYM9CgngLvtRCQHZwgC2gjpdaZcCcbt3VboxiNFcKuwFVujzS

4. 本地所需同步表的配置:

1> [sync_db]:本地数据库的连接,目前支持MySQL、PostgreSQL、SQLite3等。

type=mysql //对应使用的数据库类型

host=localhost //对应使用的数据库IP地址

port=3306 //对应使用的数据库端口

user=root //对应使用的数据库用户名

pass=root //对应使用的数据库密码

chainsql //对应使用的数据库名称

first_storage=0 //关闭先入库后共识的功能

2> [sync_tables]: 所需同步表信息的设置

账户名称、需要同步的表格、需要同步到的时间点或区块索引(LedgerIndex),以空格分隔,如:

#持续同步table1

zP8Mum8xaGSkypRgDHKRbN8otJSzwgiJ9M table1

#同步table2到某个时间点

zP8Mum8xaGSkypRgDHKRbN8otJSzwgiJ9M table2 2016-11-18_10:30:10

#同步table3到区块索引20000

zP8Mum8xaGSkypRgDHKRbN8otJSzwgiJ9M table3 20000

3> [auto_sync] 1:节点启动后所有的新创建表格都会自动同步。 0:仅同步sync_tables中描述的表格

4> # 跳过某个ledger同步

zP8Mum8xaGSkypRgDHKRbN8otJSzwgiJ9M table3 ~20000

#同步加密表

zP8Mum8xaGSkypRgDHKRbN8otJSzwgiJ9M table3  xxJb6eTShB6bLpx3ZVuc6TFfCtZ6b

#跳过hash同步

zP8Mum8xaGSkypRgDHKRbN8otJSzwgiJ9M table3 ~hash

sqlite mysql 区块链_ChainSQL相关推荐

  1. python 生成pdf收据_python如何与以太坊交互并将区块链信息写入SQLite

    关于区块链介绍性的研讨会通常以易于理解的点对点网络和银行分类账这类故事开头,然后直接跳到编写智能合约,这显得非常突兀.因此,想象自己走进丛林,想象以太坊区块链是一个你即将研究的奇怪生物.今天我们将观察 ...

  2. python与以太坊交互将区块链信息存入SQLite数据库

    关于区块链介绍性的研讨会通常以易于理解的点对点网络和银行分类账这类故事开头,然后直接跳到编写智能合约,这显得非常突兀.因此,想象自己走进丛林,想象以太坊区块链是一个你即将研究的奇怪生物.今天我们将观察 ...

  3. mysql 事件_区块链研究实验室 | 使用MySQL存储以太坊事件

    在本文中,我将演示一种缓存以太坊事件的简单方法.我只想说,通常我们将事务用于链下操作,例如跟踪令牌的传输或检索特定事务的筛选列表,就像一个SQL查询一样. 假设我们想要创建一个跟踪令牌传输的网站,Et ...

  4. mysql 和区块链的差别_论区块链是什么数据库——正名篇

    区块链是数据库,这句话大家都挑不出毛病.这就好比说,人是一种生物,树是一种生物.这是绝对的真理,同时也是一句废话. mysql是一种数据库,mongodb是一种数据库,leveldb是一种数据库,但是 ...

  5. 搭建区块链浏览器——基于hyperledger fabric 1.0,MySQL容器

    搭建区块链浏览器--基于hyperledger fabric 1.0,MySQL容器 区块链 hyperledger fabric 浏览器 MySQL docker  Contents 环境要求 分支 ...

  6. 【教程】区块链是数据库?那么区块链的数据存储在哪里?如何查看数据?FISCO-BCOS如何更换区块链的数据存储,由RocksDB更换为MySQL、MariaDB,联盟链区块链数据库,区块链数据库应用

    目录 前言 安装与配置MySQL或MariaDB 安装MySQL 启动MySQL 配置MySQL 启动FISCO-BCOS区块链节点并配置 下载依赖 ​编辑 创建目录并下载脚本 创建FISCO-BCO ...

  7. 视频教程-项目实战:支持以太坊的MySQL管理系统视频课程-区块链

    项目实战:支持以太坊的MySQL管理系统视频课程 东北大学计算机专业硕士研究生,欧瑞科技创始人&CEO,曾任国内著名软件公司项目经理,畅销书作者,企业IT内训讲师,CSDN学院专家讲师,制作视 ...

  8. EOS 区块链数据实时异构到 MySQL

    文/温国兵 这是「区块链技术指北」的第 33 篇文章. 如果对我感兴趣,想和我交流,我的微信号:Wentasy,加我时简单介绍下自己,并注明来自「区块链技术指北」.同时我会把你拉入微信群「区块链技术指 ...

  9. 区块链需要用到mysql吗_区块链和传统数据库有什么区别?

    都说区块链就是一种数据库,那区块链和传统数据库到底有什么区别呢? 传统数据库拥有与其记录相关的授的客户机可以更改放在统一服务器上的部分.通过演进"ace副本",无论客户端在什么时候 ...

最新文章

  1. 网络运行时间提高100倍,Google使用的AI视频理解架构有多强?
  2. Android程序反编译
  3. 两千年是不是闰年 输出错误_干货!AMOS常见的10种错误及解决办法!
  4. 面向对象PHP之静态延迟绑定
  5. 现代分层、聚集聚类算法_分层聚类:聚集性和分裂性-解释
  6. Aspose.Java实现word转pdf,添加水印等操作
  7. 【python】内存相关
  8. 作为一名程序员,我站在人生的十字路口
  9. Retrofit之CallAdapter简单解析
  10. cmake ..是什么意思
  11. C compiler test failed.
  12. wowza 技术交流群/ wowza 流媒体软件交流群
  13. [毕业设计]威客网站可行性研究报告书
  14. 肠道菌群与睡眠的双向桥接
  15. spring boot 集成 websocket 实现消息主动推送
  16. 计算机ppt培训心得体会,制作ppt学习心得体会
  17. JavaScript Code在线编辑器--JSEditor
  18. arndale octa开发板编译u-boot和kernel
  19. 【持续更新】Jetson Nano 人工智能机器人开发实战案例——RosmasterX3A1
  20. HTMLCSS学习记录

热门文章

  1. 【板栗糖GIS】arcmap—如何将shp要素转成带注记的dwg格式
  2. Oracle里面containskey,C#中的ContainsKey()方法
  3. java实现snl语法分析_使用antlr4及java实现snl语言的解释器
  4. MySql添加用户以及授予权限
  5. MySQL数据库用户安全策略
  6. 【Linux】僵死进程的简单介绍
  7. gogs mysql的安装部署_Gogs部署
  8. Linux安装gogs搭建Git仓库
  9. HTML+CSS简单应用实例——购物网站的制作(五)
  10. uniapp 微信公众号网页获取微信头像昵称