一种基于区块链的数据库事务操作方法和系统转让专利

申请号 : CN201710285286.6

文献号 : CN107122675B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 严挺程双全卢小明陈姝

申请人 : 北京众享比特科技有限公司

摘要 :

本发明提出一种基于区块链的事务操作方法,包括:S1、接收数据库事务交易,所述数据库事务交易指的是,将数据库操作作为区块链的一种交易;S2、在本地对所述数据库事务中的多个数据库操作依次进行验证,如果验证成功,跳转到步骤S3;S3、将所述数据库事务发向网络参与共识。所述系统包括:事务接收模块,所述接收数据库事务交易;事务验证模块,所述事务验证模块在本地对所述数据库事务中的多个数据库操作依次进行验证;事务发送模块,如果事务验证模块的验证成功,则所述事务发送模块将所述数据库事务发向网络参与共识。本发明实现了数据库事务操作交易化。

权利要求 :

1.一种基于区块链的数据库事务操作方法,其特征在于,包括:S1、接收数据库事务交易,所述数据库事务交易指的是,将数据库操作作为区块链的一种交易;

S2、在本地对所述数据库事务中的多个数据库操作依次进行验证,如果验证成功,跳转到步骤S3;

S3、将所述数据库事务发向网络参与共识;

S4、共识过程:在本地验证所述数据库事务交易的合法性。

2.根据权利要求1所述的基于区块链的数据库事务操作方法,其特征在于,步骤S2包括:S2-1,在所述数据库操作后跟随预期的断言子操作;

S2-2,先对数据库进行操作,如果跟随的断言子操作成功,则验证成功,如果跟随的断言子操作失败,则验证失败。

3.根据权利要求1所述的基于区块链的数据库事务操作方法,其特征在于,在S2中,如果验证失败,将所述数据库事务回退给发送方。

4.根据权利要求2所述的基于区块链的数据库事务操作方法,其特征在于,在S4中,如果验证成功,则提交所述数据库事务。

5.根据权利要求4所述的基于区块链的数据库事务操作方法,其特征在于,步骤S4包括:先对数据库进行操作,然后验证所述断言子操作中的数据状态,如果验证都通过,则共识通过,否则,共识不通过。

6.一种基于区块链的数据库事务操作系统,其特征在于,包括处理器,其中所述处理器被配置为执行如下步骤:S1、接收数据库事务交易,所述数据库事务交易指的是,将数据库操作作为区块链的一种交易;

S2、在本地对所述数据库事务中的多个数据库操作依次进行验证,如果验证成功,跳转到步骤S3;

S3、将所述数据库事务发向网络参与共识;

S4、共识过程:在本地验证所述数据库事务交易的合法性。

7.根据权利要求6所述的基于区块链的数据库事务操作系统,其特征在于,所述处理器还被配置为如下步骤:S2-1,在所述数据库操作后跟随预期的断言子操作;

S2-2,先对数据库进行操作,如果跟随的断言子操作成功,则验证成功,如果跟随的断言子操作失败,则验证失败。

8.根据权利要求6所述的基于区块链的数据库事务操作系统,其特征在于,所述处理器还被配置为如下步骤:在S2中,如果验证失败,则将所述数据库事务回退给发送方。

9.根据权利要求7所述的基于区块链的数据库事务操作系统,其特征在于,所述处理器还被配置为如下步骤:在S4中,如果验证成功,则提交所述数据库事务。

10.根据权利要求9所述的基于区块链的数据库事务操作系统,其特征在于,所述处理器还被配置为如下步骤:先对数据库进行操作,然后验证所述断言子操作中的数据状态,如果验证都通过,则共识通过,否则,共识不通过。

说明书 :

一种基于区块链的数据库事务操作方法和系统

技术领域

[0001] 本发明涉及区块链技术领域,更具体地,涉及基于区块链的数据库事务操作方法和系统。

背景技术

[0002] 在区块链系统中,事务是指一组相互依赖的操作行为,如银行交易、股票交易或网上购物。
[0003] 事务的成功取决于这些相互依赖的操作行为是否都能执行成功,只要有一个操作行为失败,就意味着整个事务失败。
[0004] 例如,汤姆到银行办理转账事务,把100元钱转到杰克的账号上,这个事务包含以下操作行为:(1)从汤姆的账户上减去100元。(2)往杰克的账户上增加100元。显然,以上两个操作必须作为一个不可分割的工作单元。假如仅仅第一步操作执行成功,使得汤姆的账户上扣除了100元,但是第二步操作执行失败,杰克的账户上没有增加100元,那么整个事务失败。
[0005] 区块链提供对交易的验证与存储,但是并没有提供对数据库事务的支持。而在用区块链对企业的信息化改造中,企业迫切需要区块链支持数据库事务。

发明内容

[0006] 本发明解决的主要技术问题是如何基于区块链设计数据库事务操作,然后将数据库事务操作作为交易发到网上参与共识,并根据结果操作事务。
[0007] 本发明提出一种基于区块链的数据库事务操作方法,包括:
[0008] S1、接收数据库事务交易,所述数据库事务交易指的是,将数据库操作作为区块链的一种交易;
[0009] S2、在本地对所述数据库事务中的多个数据库操作依次进行验证,如果验证成功,跳转到步骤S3;
[0010] S3、将所述数据库事务发向网络参与共识。
[0011] 本发明提出一种基于区块链的数据库事务操作系统,包括处理器,其中所述处理器被配置为执行如下步骤:
[0012] S1、接收数据库事务交易,所述数据库事务交易指的是,将数据库操作作为区块链的一种交易;
[0013] S2、在本地对所述数据库事务中的多个数据库操作依次进行验证,如果验证成功,跳转到步骤S3;
[0014] S3、将所述数据库事务发向网络参与共识。
[0015] 本发明的有益效果包括:
[0016] 1、实现数据库事务操作交易化
[0017] 数据库事务操作为交易的一种,被打包发到网络上参与共识。
[0018] 2、保证数据库事务的ACID属性
[0019] 数据库事务类型的交易经过本地验证通过后,保证数据库的ACID属性。
[0020] 3、实现数据库事务操作的共识
[0021] 数据库操作被打包为交易参与网络上的共识,各参与节点可以投票决定交易的合法性,进而决定共识的结果,避免由操作的单一节点任意改写数据库。

附图说明

[0022] 图1为本发明的方法的流程图。

具体实施方式

[0023] 下面参照附图描述本发明的实施方式,其中相同的部件用相同的附图标记表示。
[0024] 如图1所示,本发明的方法包括:
[0025] S1、接收数据库事务交易,所述数据库事务交易指的是,将数据库操作作为区块链的一种交易。
[0026] S2、在本地对所述数据库事务中的多个数据库操作依次进行验证,如果验证成功,跳转到步骤S3,否则,跳转到S4。
[0027] 具体而言,对数据库操作的验证主要是操作数据的状态是否与预期的一致,以确保对数据库操作的时序和有效性。
[0028] 在区块链上,存在多个用户在某一个时刻都对同一张表操作的可能行。为了防止这种冲突,定义一个事务交易,包含对表的增、删、改、查等子操作。然后在表的子操作后跟随一个预期的断言子操作,断言子操作通常是预期的结果数据状态。
[0029] 如此,在处理交易时先对表操作,如果这期间没有别的用户该表这个表,那么后面的断言子操作就会成功,交易被接收并转发至网络,如果这期间有别的用户对这个表操作,那么后面的断言子操作就会失败,交易不会被接收转发。
[0030] S3、将所述数据库事务发向网络参与共识。各参与节点可以投票决定交易的合法性,进而决定共识的结果,避免由操作的单一节点任意改写数据库。
[0031] 合法性验证主要包括每个节点都需要在本地进行S2中的数据库操作验证。
[0032] 每个验证节点都要重复S2中的验证步骤,先对表进行相应的操作,然后验证断言子操作中的数据状态,如果验证都通过,则共识通过,否则,共识不通过。
[0033] S4、在共识过程中,在本地验证所述数据库事务交易的合法性,如果成功,跳转到步骤S5,否则,跳转到S6。
[0034] S5、提交所述数据库事务。
[0035] S6、将所述数据库事务回退给发送方。
[0036] 通过本发明的方法,使得对数据库的操作变成一种交易,且经过本地验证通过后,保证数据库的ACID属性。
[0037] 根据本发明的另一个方面,还提出一种基于区块链的数据库事务操作系统,包括处理器,所述处理器能够执行如前所述的S1-S6的步骤。
[0038] 以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。