ChainSQL技术白皮书v1.0

Similar documents


帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

目 录

水晶分析师

公務員服務法第13條相關解釋彙整表

目 录 监 管 资 讯 2016 年 全 国 保 险 监 管 工 作 会 议 召 开...3 协 会 动 态 赤 峰 保 险 行 业 协 会 召 开 数 据 统 计 和 信 息 宣 传 总 结 表 彰 会 议...5 赤 峰 市 保 险 行 业 协 会 秘 书 处 召 开 2015 年 度 述 职

同 时, 采 取 提 供 新 闻 线 索 和 素 材 安 排 专 访 等 方 式 主 动 为 新 闻 媒 体 服 务, 为 采 访 报 道 活 动 创 造 便 利 条 件 建 设 网 络 信 息 发 布 平 台 2013 年 9 月 开 通 中 央 纪 委 监 察 部 网 站,2015 年 1 月

资 讯 速 递 台 基 于 大 数 据 的 学 校 督 导 评 估 系 统 建 设 上 海 市 闵 行 区 人 民 政 府 教 育 督 导 室 ( 摘 要 ) 闵 行 教 育 在 深 化 教 育 改 革 探 索 管 办 评 分 离 的 背 景 下, 把 教 育 督 导 评 估 系 统 建 设 作 为

時間軸上的竹蓮記憶 學務主任 黃雅彙 我不是竹蓮國小的畢業校友 但對於身為新竹人的我來 說 仔細回想起來 似乎和竹蓮有著一種特別的緣分 對竹蓮國小最初的印象是在小學的時候 猶記得年幼的 我經過一段時日的啦啦隊舞蹈訓練後 老師便帶著我們從學 校步行到竹蓮國小來參加比賽 一踏入竹蓮校門 映入眼簾 的是黑

Microsoft Word - 临政办发6.doc

sql> startup mount 改变数据库的归档模式 sql> alter database archivelog # 打开数据库 sql> alter database open 禁止归档模式 sql> shutdown immediate sql>startup mount sql> al

第6章  数据库技术基础

第 06 期 李祥池 : 基于 ELK 和 Spark Streaming 的日志分析系统设计与实现 1 日志 1.1 日志定义 IT 1.2 日志处理方案演进 v1.0 v2.0 Hadoop Storm Spark Hadoop/Storm/Spark v3.0 TB Splunk ELK SI

HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD Leica MC170 HD

ChinaBI企业会员服务- BI企业

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

Office Office Office Microsoft Word Office Office Azure Office One Drive 2 app 3 : [5] 3, :, [6]; [5], ; [8], [1], ICTCLAS(Institute of Computing Tech

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20%

软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式 软 件 工 程 专 业 课 程 类 型...7

书 作 名 : 者 : 出版社 : 版权所有 : 烨子工作室 类 别 : 出版时间 :2005 年 10 月 字 书 数 : 50 千字 号 :

书 作 名 : 者 : 出版社 : 版权所有 : 烨子工作室 类 别 : 出版时间 :2005 年 10 月 字 书 数 : 50 千字 号 :

书 作 名 : 者 : 出版社 : 版权所有 : 烨子工作室 类 别 : 出版时间 :2005 年 10 月 字 书 数 :150 千字 号 :ISBN

江西省2015届高校毕业生

大学计算机基础B.doc

书 作 名 : 者 : 出版社 : 版权所有 : 烨子工作室 类 别 : 出版时间 :2005 年 10 月 字 书 数 : 50 千字 号 :

机关团体 31 的步子迈得更实更好 报告 审议通过 中国共产党如皋市 落实到党的建设各个方面 以良好作风保障经济社会又好 十一届代表第四次会议决议 经济技术开发区 城北街 又快发展 省委督导组副组长汪以力到会指导 南通市委 道 如皋工业园区 如城街道 白蒲镇 搬经镇 市发改 督导组组长葛维先出席会议

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

书 作 名 : 者 : 出版社 : 版权所有 : 烨子工作室 类 别 : 出版时间 :2005 年 10 月 字 书 数 :150 千字 号 :ISBN

01

目 录 第 五 部 分 第 六 部 分 第 七 部 分 第 八 部 分 投 标 邀 请 投 标 人 须 知 附 表 评 标 方 法 和 评 分 细 则 项 目 需 求 和 技 术 方 案 要 求 1

Chapter #

11 天 山 区 区 环 卫 清 运 队 机 械 工 程 师 4011 C 1 不 限 不 限 机 电 具 有 两 以 工 作 经 12 天 山 区 乌 鲁 木 齐 市 第 15 小 会 计 4012 C 1 不 限 不 限 会 计 财 会 财 电 算 化 临 床 医 预 防 医 公 共 卫 生 与

通过Hive将数据写入到ElasticSearch

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

B1

szj1.s92

本 课 程 作 为 非 计 算 机 专 业 本 科 通 识 课 程, 是 一 门 理 论 和 实 践 紧 密 结 合 的 实 用 课 程, 内 容 包 括 计 算 机 基 础 部 分 和 程 序 设 计 部 分 计 算 机 基 础 部 分 涵 盖 计 算 机 软 硬 件 组 成 数 制 表 示 操

赣州市三年主攻工业推进计划(2016—2018年)

01

<4D F736F F F696E74202D DA578C657B27BA6E6ABD8BF76B5B2BA63A475B57BAABABADEB27AA8EEABD7BB50A7EFB669ABD8C4B32DBDB2A7D3B4AD2E BACDBAE65BCD2A6A15D>

幻灯片 1

静态分析 投放文件 行为分析 互斥量 (Mutexes) 执行的命令 创建的服务 启动的服务 进程 cmd.exe PID: 2520, 上一级进程 PID: 2556 cmd.exe PID: 2604, 上一级进程 PID: 2520 访问的文件 C:\Users\test\AppData\Lo

目 錄 內 容 頁 數 ( 一 ) 辦 學 宗 旨 2 ( 二 ) 我 們 的 學 校 1. 學 校 簡 介 2 2. 學 校 管 理 3 3. 學 生 資 料 4 4. 教 師 資 料 6 ( 三 ) 關 注 事 項 的 成 就 與 反 思 7 ( 四 ) 我 們 的 學 與 教 19 ( 五 )

8 訴 告 確 提 供 內 容 幾 乎 全 部 錯 誤 許 懂 信 毫 根 據 話 真 正 控 結 校 提 供 提 供 錯 誤 現 象 偶 告 訴 根 源 乎 整 結 構 權 配 權 宰 即 支 配 迫 告 訴 告 訴 錯 誤 控 章 講 解 開 控 啞 謎 通 往 解 放 集 解 放 門 把 鑰

Transcription:

ChainSQL 基于区块链的数据库应用平台 技术白皮书 北京众享比特科技有限公司 2017 年 1 月

目录 产品概述...1 设计原理...2 设计方案...3 区块链网络的选择...3 整体结构及流程...3 具体设计...5 设计要点...6 特性与应用场景...7 结束语...8 参考文献...8 版权信息...8

产品概述 区块链是分布式的 去中心化存储的一种链式数据结构 它是一个分布式的帐本, 所有的记录由多个 节点共同完成, 每个节点都有完整的帐本 区块链本身具有的最显著的特征是 : 分布式 去中心化 信息 不可篡改 数据库是按照一定数据结构来组织 存储和管理数据的建立在计算机存储设备上的仓库 数据库的特 性有 : 减少数据的冗余度 数据的独立性 数据实现集中控制 区块链从本质上来讲也是一个数据库, 是一个去中心化的数据库 但是对数据的查找速度 数据格式 化处理方面有天生的不足 本文将结合区块链与传统数据库, 设计一种全新的基于区块链技术的数据库应用平台, 该技术不仅具 有区块链的分布式 去中心化 可审计的特性, 同时兼备传统数据库的快速查询 数据结构优美的特性 两者的结合使得数据库的恢复变得快速 数据可靠性得到质的飞跃 ChainSQL 技术白皮书 01

设计原理 区块链上所存储的数据, 我们统一称为交易 在本设计中, 把对数据库操作的每一条指令都记录到一条交易中, 即一个交易对应一个数据库操作, 区块链网络会以交易的形式记录下所有对数据库的操作 对于配置了数据库的区块链节点, 在区块链网络记录交易的同时会完成对数据库的操作 对于未配置 数据库的网络结点, 交易只会记录到本节点的区块中 已经配置数据库的节点, 可以通过配置从区块链网络上的第一个区块开始搜索, 去获取数据库表对应 的交易, 根据这些交易去再次执行数据库操作, 从而生成对应的表, 获得与其它区块链网络节点一致的数 据库表内容 02 ChainSQL 技术白皮书

设计方案 区块链网络的选择 : 最常见的区块链网络就是 BitCoin 网络, 但是 BitCoin 网络在实际应用中有两个缺点 : 1. 速度慢 : 一笔交易被全网验证通过需要大约 10 分钟的时间, 真正得到安全地确认需要大约一个小时 2. 区块的生成需要矿工来完成, 这个过程要经过大量的计算, 对资源浪费比较严重 作为改进,Ripple 的出现解决了 BitCoin 网络存在的不足,Ripple 网络通过自己独有的 UNL 方案的引入, 使得 Ripple 网络的节点能有效地验证自己收到消息的真伪, 不需要经过大量的计算即可生成区块, 其每一条交易从发出去验证只需要 3-8 秒 基于 Ripple 与 BitCoin 的对比, 我们选择 Ripple 作为本系统的区块链网络 整体结构及流程 ChainSQL 的实现主要分成三个部分 : 区块链网络 : 各个节点 N 构成 Ripple 网络, 完成区块链网络的架设 普通数据库 : 在需要生成数据库表的节点对数据库进行配置 客户端 : 可选择自己创建一个区块链节点接入网络, 然后向这个节点发送数据, 如图 1 中 C2 也可以直接向网络发送交易, 如图 1 中 C1 ChainSQL 技术白皮书 03

我们先架设区块链网络, 这时已经可以向网络发送数据库操作的交易了, 不需要配置任何的数据库, 如 图 1 中 C1 客户需要查看网络上的数据库表或者想真实看到传统意义上的数据库表时, 需要在本地创建一个区块链 节点 NC2, 连入网络, 同时在 NC2 配置数据库 DB, 这时发往区块链上的数据库操作就会实时地在 DB 中反应 出来, 如图 1 中 C2 客户不想对表进行操作, 仅想查看其它客户创建的表时, 需要在本地创建一个区块链节点 NC1, 同时在 NC1 配置数据库, 在配置文件中设置需要同步的数据库表名与所属用户, 即可得到对应的数据库表 DB NC1 N C1 N NET N C2 N N NC2 图 1 系统结构 DB 04 ChainSQL 技术白皮书

具体设计 1. API 接口的提供 : 在区块链的应用层提供 API 接口供用户调用, 用户向区块链发出交易命令就像操作数据库一样 2. 先入库再共识 : 基于区块链的应用有个基本的做法就是交易要先经过区块链网络进行共识, 然后交易才能知道是否有效 我们在处理时 : 在一定条件下, 先由本地节点验证交易, 然后写入数据库, 数据库写入成功后, 再发到区块链网络上进行共识 如果共识不能通过, 则回滚数据库操作 这样的设计以便于用户快速地得知自己 SQL 语句执行的结果 如果节点已经配置了数据库及对应的表 区块链网络在接收到数据库操作交易的数据时, 会直接传导到对应的数据库进行数据库操作, 这样就实时反应用户对数据库的操作 Client 调用 API 数据库表是否已经与区块链网络保持一致 本地节点判断是否有效 结束 数据库操作 操作是否成功 结束 区块链网络判断是否有效 是否提前操作数据库 回退数据库操作 确认数据库操作 改变区块内容及属性 结束 图 2 数据库操作流程 ChainSQL 技术白皮书 05

3. 根据配置进行数据库表的恢复在某一区块链节点配置数据库, 把存放在区块链网络中的数据库交易取出, 按这些操作去执行数据库, 达到重建一张表的目的 区块链网络上的某一个节点, 可以是全记录节点 ( 拥有区块链网络中的所有交易数据 ), 也可以是部分记录节点 本地节点获取数据的时候, 如果有对应表的数据库, 则直接从本地获取数据库操作交易数据 ; 如果本地是部分记录节点时, 本地缺少某个区间的区块, 这时只要从其它节点去获取对应范围内的数据库操作交易数据即可 开始恢复数据库表 本地是否有对应范围区块 从网络其它节点获取数据 从本地区块读取数据 数据是否正确 操作数据库 图 3 数据库恢复流程 设计要点 安全性设计 : 以用户为管理单元, 即一张表默认 只隶属于一个用户 ( 表的创建者 ), 其它用户想 对本张表进行操作, 得让表的所有者对其授权 数据库的操作与数据库表的分离 : 操作以交易的 形式记录在区块链网络中, 而真实数据在数据库 中查看 06 ChainSQL 技术白皮书

特性与应用场景 历史记录不可更改 传统的数据库中, 对于记录的更改及删除可由管理员或者黑客随意操作 在 ChainSQL 中, 由于在区块链网络上记录了对数据库某张表的所有操作记录, 则单独对数据库进行更改不会改变区块链网络上的记录 区块链网络交易的不可更改性决定了 ChainSQL 满足审计要求 对数据库表的操作记录全部记录在了区块链网络中, 区块链对交易存储的特性使得我们可以知道交易发生的时间 具体内容 审计人员只需要从可靠的区块链网络节点中去恢复一张数据库表即可完成对数据的审计 数据的不可篡改 数据可在任意时间恢复到任意地点 只要启动一个区块链网络节点, 与区块链网络连 接, 配置好对应的数据库, 即可恢复区块链网络中存 数据的插件式管理 本地可以配置任意常用的数据库, 包括 : MySQL,SQLite, Oracle 等 在的任意一张表 简单编程模式 通过简单的 API 或者 JSON, 可以在网页或者 APP 上对数据库进行写入及读取 快速区块链应用的开发 任何想用真实数据库来存储数据的应用, 同时想兼顾区块链特性的应用, 都可以应用 ChainSQL, 通过调用 ChainSQL 提供的接口来快速完成 ChainSQL 技术白皮书 07

结束语 ChainSQL 将区块链与传统数据库相结合, 构建了一种基于区块链网络的日志式数据库应用平台 该技术兼备了两种系统的优点, 能随时随地恢复数据库表 ChainSQL 不仅将传统数据库的特性进行了增加, 同时将基于区块链的应用开发变得简易 ChainSQL 中采用的先入库再共识的做法大大增加了数据入库的速度, 增强了用户体验 可以随时随地对数据库表的恢复功能使得审计变得更加的方便 是进行基于数据库进行安全开发的良好平台 参考文献 [1] 谭磊, 陈刚区块链 2.0. 电子工业出版社,2016 [2] Abraham Silberschatz, Henry F.Korth, S.Sudarshan. Database System Concepts. 机械工业出版社, 2012.3.1 [3] Nakamoto, Satoshi. Bitcoin: A peer-to-peer electronic cash system. Consulted 1.2012 (2008): 28 [4] Ripple Labs Inc. Ripple developer center. https://ripple.com/build/ [5] David Schwartz, Noah Youngs, Arthur Britto. The Ripple Protocol Consensus Algorithm. 2014 [6] Chen Zhibo. Database Principles and Applications. Posts and Telecom Press. February 2014. 06 ChainSQL 技术白皮书 08

联系我们 有关 ChainSQL 的服务与维护, 请联系 : 北京众享比特科技有限公司 地址 : 北京朝阳区将台西路 18 号皮革大厦 711 邮编 :100016 电话 :010-84569800 网址 :http://www.peersafe.cn 未经北京众享比特科技有限公司的书面许可, 不得对本文档的全部或部分电子介质进行影印 分发 翻译或简化 本文档的内容如有变动, 恕不另行通知