一种基于区块链的链化数据库及操作方法技术

技术编号:30166779 阅读:14 留言:0更新日期:2021-09-25 15:23
本发明专利技术公开了一种基于区块链的链化数据库及操作方法。本发明专利技术调换执行顺序为:排序

【技术实现步骤摘要】
一种基于区块链的链化数据库及操作方法


[0001]本专利技术涉及区块链领域,尤其涉及一种基于区块链的链化数据库及操作方法。

技术介绍

[0002]目前政府与政府之间、政府与企业之间、企业与企业之间的联系与结合越来越紧密。这种联系与结合不仅仅是政策上、流程上的联合,更是各种信息系统和业务系统之间的对接。而这些数据的对接中产生或需要读取的数据都依赖于数据库的维护以及数据库的权限管理。尤其在供应链管理中,生产、制造、物流、分销、零售、政府监管等参与方需要上游企业和制造企业合作维护一个供应数据库。这个数据库关系企业的商业机密和财务数据,所以不能将数据库放在云端进行开放的访问和读取。
[0003]因此,这些数据库中的数据需要满足加密、防伪、可追溯、以及对不同的对象共享不同的数据内容等特性。而这些正是区块链技术的长处和优势,即通过区块链技术既可以保证数据库防篡改和追溯性,又可以解决数据的分布式同步共享问题。
[0004]但是,简单的将区块链技术与数据库结合并不是有效的。因为其中存在着许多亟待解决的方案和技术难题。对传统的区块链、联盟链来说,直接将数据库进行上链操作,面临着如下的问题:1.数据需要重新迁移;2.数据库应用需要重写;3.相关操作人员需要重新培训;4.整个业务系统对外接口要改为区块链技术为主的接口,加大了数据库的整合和维护代价。
[0005]在现有的联盟链中,大家遵循着排序

共识

执行的顺序。在排序阶段,一批交易按一定顺序排列。在共识阶段,这些参与联盟链的组织依照某种协议对已排好序的交易达成共识。如果能够达成共识,则每个组织在本地执行相应交易。最后,每个组织能达到相同的状态。
[0006]但是在这个流程中有很强的假设,即每个组织在自己本地执行相应交易时不会发生问题。由于每条交易对应着一个数据库操作,如果每个组织使用的是不同的数据库,则很难保证每个组织能达到相应的状态或者组织内部修改某条数据。
[0007]这些问题能否解决、关键技术是否高效,取决于新的方案设计在结合区块链的优势的同时,能否避免传统方案中存在的问题。

技术实现思路

[0008]为了解决这些问题,本专利技术将链化已有的数据库,在降低数据上链难度的同时,以



作为信息通信和业务流程的载体,提高通道和数据存储的安全可控性;并最终使这些数据库通过链化数据库技术达到同步、互联、交互、安全、可控、保险、易用。
[0009]本专利技术的具体技术方案如下:
[0010]排序阶段:在排序阶段,一批交易输入按顺序排列成一个数据块。这里的输入可以是各个组织将要采取的数据库举动,简称为举动块。
[0011]执行阶段:在执行阶段,每个组织收到一个在排序阶段产生的数据库举动。各个组
织在验证数字签名后,在自己本地的关系数据库上执行该举动。该举动会对本地数据库产生相应的后果,而共识协议就是基于这些后果达成的。每个组织可以收到不同的举动块,也可以对于相同的举动块有不同的解读,并作用在不同的本地数据库上。
[0012]共识阶段:在共识阶段,各个组织会根据在执行阶段产生的后果达到共识。首先,大家会对于某个特定的后果达成共识。如果某个组织的后果与共识后果一致,则该组织将它加载在自己本地的链上,并进入下一轮。只有在大家都一致时,我们才说达到共识。
[0013]恢复阶段:如果有组织与共识后果不一致,则该组织会从这个状态中恢复。
[0014]具体的,一种基于区块链的链化数据库,包括链化服务器、检测服务器、排序服务器、执行服务器和共识服务器;所述链化服务器和客户端通信连接;所述链化服务器和所述检测服务器通信连接;所述排序服务器和所述链化服务器通信连接;所述执行服务器和所述排序服务器通信连接;所述执行服务器和所述共识服务器通信连接。
[0015]一种基于区块链的链化数据库操作方法,包括以下步骤,
[0016]S1,链化服务器接收来自于客户端的交易列表,所述交易列表的交易包括数据库操作信息和签名信息;所述链化服务器先对所述交易列表的每条交易的签名信息进行验证,然后将签名信息验证通过的交易发送给检测服务器;
[0017]S2,所述检测服务器接收到来自于所述链化服务器发送的交易后,对所述交易进行检测,并将是否同意所述交易的信息发送给所述链化服务器;
[0018]S3,所述链化服务器接收到来自于所述检测服务器发送的是否同意交易的信息后,对所述检测服务器同意的交易打包成链化交易,并将所述链化交易发送给排序服务器;
[0019]S4,所述排序服务器接收到来自于所述链化服务器发送的所述链化交易信息后,对所述链化交易信息进行排序,并将排序后的排序交易信息发送给执行服务器;
[0020]S5,所述执行服务器接收到所述排序交易信息后,先检测接收到的每条交易的签名信息的的合法性,然后在自己本地的数据库执行签名信息合法的交易的数据库操作信息;在执行数据库操作过程中收集摘要表;在执行完所有操作之后,所述执行服务器生成摘要表的hash值,并将所述摘要表的hash值发送给共识服务器;
[0021]S6,所述共识服务器接收到所述摘要表的hash值后,与其他组织的共识服务器通信,检查是否有其他摘要表的hash值达到共识要求;如果有其他摘要表的hash值达到共识要求,则将共识的摘要表的hash值发送至各相应的执行服务器;
[0022]S7,所述执行服务器接收到所述共识的摘要表的hash值后,与自己的摘要表的hash值进行比较,如果一致,则不进行操作。
[0023]优选的,步骤S7,所述执行服务器接收到所述共识的摘要表的hash值后,与自己的摘要表的hash值进行比较,如果一致,则不进行操作;如果不一致,则执行服务器执行数据库的数据恢复操作。
[0024]优选的,步骤S2,所述检测服务器接收到来自于所述链化服务器发送的交易后,对所述交易信息是否满足自己本地的完整性进行检测,并将是否同意所述交易的信息发送给所述链化服务器。
[0025]优选的,步骤S3,所述链化服务器接收到来自于所述检测服务器发送的是否同意交易的信息后,查询接收的所述检测服务器同意的交易所涉及的组织,并和所涉及的组织进行通信,询问所涉及的组织是否同意所述检测服务器同意的交易,对所涉及的组织全部
同意的所述检测服务器同意的交易打包成链化交易,并将所述链化交易发送给排序服务器。
[0026]优选的,步骤S4,所述排序服务器接收到来自于所述链化服务器发送的所述链化交易信息后,以FIFO的方式将交易排序,然后将已排序的交易发送给Kafka节点,所述Kafka节点将排序交易发送给执行服务器。
[0027]优选的,步骤S5,所述执行服务器接收到所述排序交易信息后,先检测接收到的每条交易的签名信息的的合法性,然后对合法交易的数据库操作信息进行操作顺序的优化,然后在自己本地的数据库执行优化后的操作;在执行数据库操作过程中利用sql...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的链化数据库,其特征在于,包括链化服务器、检测服务器、排序服务器、执行服务器和共识服务器;所述链化服务器和客户端通信连接;所述链化服务器和所述检测服务器通信连接;所述排序服务器和所述链化服务器通信连接;所述执行服务器和所述排序服务器通信连接;所述执行服务器和所述共识服务器通信连接。2.一种基于区块链的链化数据库操作方法,其特征在于,所述基于区块链的链化数据库为权利要求1所述的一种基于区块链的链化数据库,包括以下步骤,S1,链化服务器接收来自于客户端的交易列表,所述交易列表的交易包括数据库操作信息和签名信息;所述链化服务器先对所述交易列表的每条交易的签名信息进行验证,然后将签名信息验证通过的交易发送给检测服务器;S2,所述检测服务器接收到来自于所述链化服务器发送的交易后,对所述交易进行检测,并将是否同意所述交易的信息发送给所述链化服务器;S3,所述链化服务器接收到来自于所述检测服务器发送的是否同意交易的信息后,对所述检测服务器同意的交易打包成链化交易,并将所述链化交易发送给排序服务器;S4,所述排序服务器接收到来自于所述链化服务器发送的所述链化交易信息后,对所述链化交易信息进行排序,并将排序后的排序交易信息发送给执行服务器;S5,所述执行服务器接收到所述排序交易信息后,先检测接收到的每条交易的签名信息的的合法性,然后在自己本地的数据库执行签名信息合法的交易的数据库操作信息;在执行数据库操作过程中收集摘要表;在执行完所有操作之后,所述执行服务器生成摘要表的hash值,并将所述摘要表的hash值发送给共识服务器;S6,所述共识服务器接收到所述摘要表的hash值后,与其他组织的共识服务器通信,检查是否有其他摘要表的hash值达到共识要求;如果有其他摘要表的hash值达到共识要求,则将共识的摘要表的hash值发送至各相应的执行服务器;S7,所述执行服务器接收到所述共识的摘要表的hash值后,与自己的摘要表的hash值进行比较,如果一致,则不进行操作。3.根据权利要求2所述的一种基于区块链的链化数据库操作方法,其...

【专利技术属性】
技术研发人员:王明生范雄亓彬王晓蓓罗明刘冬冬
申请(专利权)人:中元众诚北京科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1