CN112131266B - 一种支持区块链复杂查询的方法、装置、***及存储介质 - Google Patents
一种支持区块链复杂查询的方法、装置、***及存储介质 Download PDFInfo
- Publication number
- CN112131266B CN112131266B CN202010807809.0A CN202010807809A CN112131266B CN 112131266 B CN112131266 B CN 112131266B CN 202010807809 A CN202010807809 A CN 202010807809A CN 112131266 B CN112131266 B CN 112131266B
- Authority
- CN
- China
- Prior art keywords
- block
- module
- database
- blockchain
- query
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种支持区块链复杂查询的方法、装置、***及存储介质,该方法通过为区块链网络中的每个节点部署至少一个支持复杂查询的数据库,并配置区块链网络中的节点,使其响应客户端发出的查询请求,以从该节点部署的支持复杂查询的数据库中获取到相应的查询结果,并将该查询结果发送给客户端;同时,配置该节点在满足触发条件时,将该节点的区块中的交易数据均转换成数据库的文档对象,再以文档对象的形式,将该节点的区块转存至数据库中,以供客户端查询。因此,本发明基于上述方式可以实现支持区块链的复杂查询的功能,同时提高了区块链数据复杂查询的便捷性,拓宽了区块链的业务使用场景。
Description
技术领域
本发明涉及区块链技术,尤其涉及一种支持区块链复杂查询的方法、装置、***及存储介质。
背景技术
区块链为了数据存储和查询的高效性,通常选择Key-Value类型的底层存储,会将业务主键(Key)的历史数据存在分布式账本中,而将业务主键(Key)的当前最新状态数据(Value)存储在状态库。而且,状态数据(Value)一般都是JSON格式的,同时,其JSON格式的属性是在业务方生成的,故该JSON格式的属性对于底层链而言不是固定的,这就导致基于底层链的上层业务方无法通过JSON-Value中的条件去查询对应的数据记录,因此,目前的底层链技术无法直接支持复杂查询,极大地限制了底层链的业务使用场景。
发明内容
鉴于以上所述现有技术的不足,本发明的目的在于:提供一种能够支持区块链的复杂查询的方法,进而提高区块链数据复杂查询的便捷性,拓宽区块链的业务使用场景。
为实现上述发明目的,本发明提供以下技术方案:
一种支持区块链复杂查询的方法,其包括以下步骤:
为区块链网络中的每个节点部署至少一个支持复杂查询的数据库;
配置区块链网络中的节点,使其响应客户端发出的查询请求,以从该节点部署的支持复杂查询的数据库中获取到相应的查询结果,并将该查询结果发送给所述客户端;
以及,配置区块链网络中的节点,在满足触发条件时,执行数据转存流程;其中,所述数据转存流程为:将该节点的区块中的交易数据转换成所述数据库的文档对象,再以所述文档对象的形式,将该节点的区块转存至所述数据库中。
根据一种具体的实施方式,本发明支持区块链复杂查询的方法还包括:配置区块链网络中的节点,执行数据校验流程;
其中,所述数据校验流程为:按区块高度依次校验所述数据库中是否存储有相应区块;若存储有相应区块,则更新已校验的区块高度,并进行下一个区块高度的校验;若未存储有相应区块,则将对应区块高度的区块转存至所述数据库中,并重新进行该区块高度的校验。
根据一种具体的实施方式,本发明支持区块链复杂查询的方法,所述数据转存流程还包括:将已转存的区块高度记录在所述数据库中。
进一步地,所述数据校验流程还包括:若已校验的区块高度为已转存的区块高度,则暂停执行所述数据校验流程。
根据一种具体的实施方式,本发明支持区块链复杂查询的方法,所述数据转存流程中,相互并行地将多个区块中的交易数据转换成所述文档对象,且每将一个区块的所有交易数据转换完成后,则将该区块转存至所述数据库中。
根据一种具体的实施方式,本发明支持区块链复杂查询的方法中,所述触发条件为:节点的区块高度大于已转存的区块高度。
根据一种具体的实施方式,本发明支持区块链复杂查询的方法还包括:配置区块链网络中的节点在接收到所述查询请求后,利用公钥对所述查询请求的签名进行验证,以验证所述查询请求是否合法,若合法,则响应所述查询请求;其中,所述签名由私钥与所述查询请求的请求参数生成。
根据一种具体的实施方式,本发明支持区块链复杂查询的方法中,所述数据库采用MongoDB数据库或Elasticsearch搜索引擎支持复杂查询。
根据一种具体的实施方式,本发明支持区块链复杂查询的方法还包括:还包括:配置区块链网络中的节点,使其可选择是否执行所述数据转存流程和/或所述数据校验流程。
本发明的另一方面,还提供一种区块链的复杂查询方法,采用本发明支持区块链复杂查询的方法进行区块链的复杂查询。
本发明的另一方面,还提供一种支持区块链复杂查询的装置,用于部署在区块链网络的节点上,其包括:
响应模块;
数据库模块;
触发条件模块,以及数据转存模块;
其中,所述响应模块,用于响应客户端发出的查询请求,以从所述数据库模块中获取到相应的查询结果,并将该查询结果发送给所述客户端;
所述数据库模块,用于执行复杂查询动作,并得到相应的查询结果;
所述触发条件模块,用于判断是否满足触发条件,若满足,则触发所述数据转存模块执行数据转存流程;
所述数据转存模块,用于根据所述触发条件模块的触发控制,执行数据转存流程;其中,所述数据转存流程为:将该节点的区块中的交易数据均转换成所述数据库模块的文档对象,再以所述文档对象的形式,将该节点的区块转存至所述数据库模块中。
根据一种具体的实施方式,本发明支持区块链复杂查询的装置,还包括:
数据校验模块,用于执行数据校验流程;
其中,所述数据校验流程为:按区块高度依次校验所述数据库模块中是否存储有相应区块;若存储有相应区块,则更新已校验的区块高度,并进行下一个区块高度的校验;若未存储有相应区块,则将对应区块高度的区块转存至所述数据库模块中,并重新进行该区块高度的校验。
根据一种具体的实施方式,本发明支持区块链复杂查询的装置中,所述数据转存模块还用于将已转存的区块高度记录在所述数据库模块中;进一步地,所述数据校验模块还用于判断已校验的区块高度是否达到已转存的区块高度,若达到,则暂停执行所述数据校验流程。
根据一种具体的实施方式,本发明支持区块链复杂查询的装置中,所述触发条件模块,用于在节点的区块高度大于已转存的区块高度时,触发所述数据转存模块执行数据转存流程。
根据一种具体的实施方式,本发明支持区块链复杂查询的装置中,所述数据转存模块执行所述数据转存流程时,相互并行地将多个区块中的交易数据转换成所述文档对象,且每将一个区块的所有交易数据转换完成后,则将该区块转存至所述数据库模块中。
根据一种具体的实施方式,本发明支持区块链复杂查询的装置中,所述响应模块,还用于利用公钥对所述查询请求的签名进行验证,以验证所述查询请求是否合法,若合法,则响应所述查询请求;其中,所述签名由私钥与所述查询请求的请求参数生成。
根据一种具体的实施方式,本发明支持区块链复杂查询的装置中,所述数据库模块基于MongoDB数据库或Elasticsearch搜索引擎支持复杂查询。
根据一种具体的实施方式,本发明支持区块链复杂查询的装置还包括:功能选择模块,用于选择是否开启所述数据转存模块,以执行所述数据转存流程,以及选择是否开启所述数据校验模块,以执行所述数据校验流程。
本发明的另一方面,还提供一种区块链的复杂查询***,其包括客户端和服务端,且所述服务端部署有本发明支持区块链复杂查询的装置。
本发明的另一方面,还提供一种可读存储介质,其上存储有一个或多个程序,其特征在于,该一个或多个程序被一个或多个处理器执行时实现本发明支持区块链复杂查询的方法或本发明区块链的复杂查询方法。
与现有技术相比,本发明的有益效果:
1、本发明支持区块链复杂查询的方法,通过为区块链网络中的每个节点部署至少一个支持复杂查询的数据库,并配置区块链网络中的节点,使其响应客户端发出的查询请求,以从该节点部署的支持复杂查询的数据库中获取到相应的查询结果,并将该查询结果发送给客户端;同时,配置该节点在满足触发条件时,将该节点的区块中的交易数据均转换成数据库的文档对象,再以文档对象的形式,将该节点的区块转存至数据库中,以供客户端查询。因此,本发明基于上述方式可以实现支持区块链的复杂查询的功能,同时提高了区块链数据复杂查询的便捷性,拓宽了区块链的业务使用场景。
2、本发明支持区块链复杂查询的方法,通过配置区块链网络中的节点,按区块高度依次校验数据库中是否存储有相应区块;若存储有相应区块,则更新已校验的区块高度,并进行下一个区块高度的校验;若未存储有相应区块,则将对应区块高度的区块转存至数据库中,并重新进行该区块高度的校验。因此,本发明基于上述方式能够检测出转存失败的区块,并通过重新转存,避免造成某些数据无法查询的情况发生。
附图说明
图1为本发明区块链复杂查询***的架构图;
图2为本发明区块链的复杂查询方法的流程图;
图3为本发明数据转存流程的流程图;
图4为本发明数据校验流程的流程图;
图5为本发明支持区块链复杂查询的装置结构示意图;
图6为本发明支持区块链复杂查询的装置的一种实施例的结构示意图;
图7为本发明支持区块链复杂查询的装置的另一种实施例的结构示意图。
图8为本发明区块链复杂查询***的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
如图1所示,本发明的区块链复杂查询***,包括客户端10、区块链网络20中的多个节点以及每个节点所部署相应的支持复杂查询的数据库。
其中,本发明支持区块链复杂查询的方法,其包括以下步骤:
首先,为区块链网络20中的每个节点部署至少一个支持复杂查询的数据库。如图1中,区块链节点1、2和3分别部署有支持复杂查询的数据库A、数据库B和数据库C。当然,区块链网络中每个节点也可部署多个支持复杂查询的数据库。
当节点部署完成其支持复杂查询的数据库后,一方面,通过配置区块链网络中的节点,使其响应客户端10发出的查询请求,以从该节点部署的支持复杂查询的数据库中获取到相应的查询结果,并将该查询结果发送给客户端10,如此建立由客户端、节点以及节点相应的支持复杂查询数据库所构成的区块链复杂查询业务流程。
另一方面,通过配置区块链网络中的节点,在满足触发条件时,执行数据转存流程;其中,所述数据转存流程为:将该节点的区块中的交易数据转换成其部署的支持复杂查询的数据库的文档对象,再以所述文档对象的形式,将该节点的区块转存至数据库中。如此,每个节点能够区块中的交易数据转存至支持复杂查询的数据库中,从而通过实现支持区块链复杂查询的功能。
如图2所示,本发明区块链的复杂查询方法的流程为;
S100,由客户端10,利用私钥和请求参数生成签名;
S101,再由客户端10发送与该请求参数相对应的查询请求。
具体的,客户端10在支持本发明支持区块链复杂查询的SDK上开发而来,本发明支持区块链复杂的SDK中集成有区块链网络中节点的ip地址、各个节点部署的支持复杂查询的查询语言库以及签名算法等。
接着,区块链节点1接收到客户端10发送的查询请求,则执行S102,公钥对该查询请求的签名进行验证,以验证该查询请求是否合法。
若不合法,则执行S103a,向客户端10返回该查询请求的不合法提示信息。
若合法,则响应该查询请求,即执行S103b由区块链节点1接入其部署的数据库A的查询接口,并传入相应的查询语句。
而当数据库A接收到相应的查询语句后,则执行S104,执行查询语句,得到相应的查询结果;然后,执行S105a,由数据库A向区块链节点1返回相应的查询结果。
最后,区块链节点1执行S105b,由区块链节点1向客户端10返回相应的查询结果。从而完成由客户端10发起的复杂查询的流程。
如图3所示,本发明的数据转存流程S200包括:
S201,由区块链节点持续地判断是否满足触发条件。
如果不满足,则继续执行S201;
如果满足,则执行S202,将区块中的交易数据转换成该节点部署的支持复杂查询的数据库的文档对象。例如,数据库的文档对象例如MongoDB的Document文档结构。
将区块中的交易数据转换完成后,执行S203,以该文档对象的形式,将区块中的交易数据转存至该节点部署的支持复杂查询的数据库中。
然后,再执行S204,由区块链节点更新已转存的区块高度,再然后,执行S205,将已转存的区块高度记录在该节点部署的支持复杂查询的数据库中。
具体的,在数据转存流程S200中,需要转存多个区块时,相互并行地将多个区块中的交易数据转换成该节点部署的支持复杂查询的数据库的文档对象,而且每将一个区块的所有交易数据转换完成文档对象后,则将该区块转存至该数据库中。如此,保证了数据转存效率。
具体的,本发明中执行数据转存流程S200的触发条件为:节点的区块高度大于已转存的区块高度。具体而言包括两种情况,其一当节点写入新的区块后,则自动运行数据转存流程S200;其二,由区块链复杂查询服务的使用方,可灵活地选择是否配置复杂查询服务,或者有权限选择是否将区块转存至该节点部署的支持复杂查询的数据库中,而当使用方选择时,如果节点当前的区块高度大于已转存至数据库的区块高度,则执行数据转存流程S200。
需要指出的是,对本领域技术人员而言,区块高度表示该区块在区块链中的位置,具体而言,可以是区块的编号,第一个区块编号为0,其区块高度为0,第二个区块编号为1,其区块高度为1,以此类推。
在实际应用时,不仅需要考虑数据转存效率,还需要考虑区块是否成功转存至支持复杂查询的数据库。通常而言,由于网络通讯、存储器工作等问题,都可能会造成区块转存失败,因此,为了保证提供稳定的区块链数据的复杂查询服务,本发明在执行数据转存流程S200的过程中或者执行数据转存流程S200后,可执行数据校验流程S300。
如图4所示,本发明的数据校验流程S300包括:
由区块链节点执行S301,查询当前已校验的区块高度。
然后,由区块链节点执行S302,检测该节点所部署的支持复杂查询的数据库中是否存储有当前已校验的区块高度的区块。
若存储有相应区块,则执行S303b,更新已校验的区块高度,即区块高度加一,接着再次进入S301,相当于进行下一个区块高度的校验。
若未存储有相应区块,则执行S303a,区块链节点查询其未存储的区块高度对应的区块,并调用数据转存流程S200。而当数据转存流程S200执行完成后,则重新开始执行数据校验流程S300。
具体的,本发明中,一旦区块链节点检测到已校验的区块高度达到已转存的区块高度,则暂停执行数据校验流程S300。相当于所有已转存的区块都确定已存储在该节点部署的支持复杂查询的数据库中,则暂停执行数据校验流程S300。
本发明中,区块链节点所部署的数据库可采用MongoDB数据库或Elasticsearch搜索引擎支持复杂查询。
如图5所示,本发明支持区块链复杂查询的装置,用于部署在区块链网络的节点上,其包括:响应模块100;数据库模块200;触发条件模块400,以及数据转存模块300。
其中,响应模块100,用于响应客户端发出的查询请求,以从数据库模块200中获取到相应的查询结果,并将该查询结果发送给客户端;
数据库模块200,用于执行复杂查询动作,并得到相应的查询结果;
触发条件模块400,用于判断是否满足触发条件,若满足,则触发数据转存模块300执行数据转存流程;
数据转存模块300,用于根据触发条件模块的触发控制,执行数据转存流程;其中,数据转存流程为:将该节点的区块中的交易数据均转换成数据库模块200的文档对象,再以文档对象的形式,将该节点的区块转存至数据库模块200中。
本发明支持区块链复杂查询的装置中,响应模块100,还用于利用公钥对查询请求的签名进行验证,以验证该查询请求是否合法,若合法,则响应该查询请求;其中,签名由私钥与该查询请求的请求参数生成。
本发明支持区块链复杂查询的装置中,数据转存模块300还用于将已转存的区块高度记录在数据库模块200中。而且,触发条件模块400,用于在节点的区块高度大于已转存的区块高度时,触发数据转存模块300执行数据转存流程。
本发明支持区块链复杂查询的装置中,数据转存模块300执行数据转存流程时,相互并行地将多个区块中的交易数据转换成数据库模块200的文档对象,且每将一个区块的所有交易数据转换完成后,则将该区块转存至数据库模块200中。
如图6所示,本发明支持区块链复杂查询的装置,还包括:
数据校验模块500,用于执行数据校验流程;
其中,数据校验流程为:按区块高度依次校验数据库模块200中是否存储有相应区块;若存储有相应区块,则更新已校验的区块高度,并进行下一个区块高度的校验;若未存储有相应区块,则将对应区块高度的区块转存至数据库模块200中,并重新进行该区块高度的校验。
进一步地,数据校验模块500还用于判断已校验的区块高度是否达到已转存的区块高度,若达到,则暂停执行数据校验流程。
在实际应用中,区块链复杂查询服务的使用方需要灵活地选择是否配置复杂查询服务,或者有权限选择是否将区块转存至该节点部署的支持复杂查询的数据库中。因此,如图7所示,本发明支持区块链复杂查询的装置还包括:功能选择模块600,用于选择是否开启数据转存模块300,以执行数据转存流程,以及选择是否开启数据校验模块500,以执行数据校验流程。
本发明支持区块链复杂查询的装置中,数据库模块200基于MongoDB数据库或Elasticsearch搜索引擎支持复杂查询。
如图8所示,本发明还提供一种区块链的复杂查询***,其包括客户端10和服务端30,且服务端30部署有本发明支持区块链复杂查询的装置。具体的,客户端10可以配置为能够分别访问接入区块链网络20中的每个节点进行复杂查询,也可配置为仅访问接入区块链网络20中的某个节点进行复杂查询,而服务端30则是跟别部署在每个节点上,若该节点需要支持复杂查询,则部署需要部署相应的服务端30。同时,客户端10与服务端30通过区块链网络中的节点建立数据交互。
本发明的另一方面,还提供一种可读存储介质,其上存储有一个或多个程序,其特征在于,该一个或多个程序被一个或多个处理器执行时实现本发明支持区块链复杂查询的方法或本发明区块链的复杂查询方法。
应该理解到,本发明所揭露的***,可通过其它的方式实现。例如所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,模块之间的通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (19)
1.一种支持区块链复杂查询的方法,其特征在于,包括以下步骤:
为区块链网络中的每个节点部署至少一个支持复杂查询的数据库;
配置区块链网络中的节点,使其响应客户端发出的查询请求,以从该节点部署的支持复杂查询的数据库中获取到相应的查询结果,并将该查询结果发送给所述客户端;
以及,配置区块链网络中的节点,在满足触发条件时,执行数据转存流程;其中,所述数据转存流程为:将该节点的区块中的交易数据转换成该节点部署的支持复杂查询的数据库的文档对象,再以所述文档对象的形式,将该节点的区块转存至所述数据库中。
2.如权利要求1所述的支持区块链复杂查询的方法,其特征在于,还包括:配置区块链网络中的节点,执行数据校验流程;
其中,所述数据校验流程为:按区块高度依次校验所述数据库中是否存储有相应区块;若存储有相应区块,则更新已校验的区块高度,并进行下一个区块高度的校验;若未存储有相应区块,则将对应区块高度的区块转存至所述数据库中,并重新进行该区块高度的校验。
3.如权利要求2所述的支持区块链复杂查询的方法,其特征在于,所述数据转存流程还包括:将已转存的区块高度记录在所述数据库中。
4.如权利要求3所述的支持区块链复杂查询的方法,其特征在于,所述数据校验流程还包括:若已校验的区块高度达到已转存的区块高度,则暂停执行所述数据校验流程。
5.如权利要求1所述的支持区块链复杂查询的方法,其特征在于,所述触发条件为:节点的区块高度大于已转存的区块高度。
6.如权利要求1所述的支持区块链复杂查询的方法,其特征在于,所述数据转存流程中,相互并行地将多个区块中的交易数据转换成所述文档对象,且每将一个区块的所有交易数据转换完成后,则将该区块转存至所述数据库中。
7.如权利要求1所述的支持区块链复杂查询的方法,其特征在于,还包括:配置区块链网络中的节点在接收到所述查询请求后,利用公钥对所述查询请求的签名进行验证,以验证所述查询请求是否合法,若合法,则响应所述查询请求;其中,所述签名由私钥与所述查询请求的请求参数生成。
8.如权利要求1所述的支持区块链复杂查询的方法,其特征在于,所述数据库采用MongoDB数据库或Elasticsearch搜索引擎支持复杂查询。
9.如权利要求1~8任一项所述的支持区块链复杂查询的方法,其特征在于,还包括:配置区块链网络中的节点,使其可选择是否执行所述数据转存流程和/或所述数据校验流程。
10.一种支持区块链复杂查询的装置,用于部署在区块链网络的节点上,其特征在于,包括:
响应模块;
数据库模块;
触发条件模块,以及数据转存模块;
其中,所述响应模块,用于响应客户端发出的查询请求,以从所述数据库模块中获取到相应的查询结果,并将该查询结果发送给所述客户端;
所述数据库模块,用于执行复杂查询动作,并得到相应的查询结果;
所述触发条件模块,用于判断是否满足触发条件,若满足,则触发所述数据转存模块执行数据转存流程;
所述数据转存模块,用于根据所述触发条件模块的触发控制,执行数据转存流程;其中,所述数据转存流程为:将该节点的区块中的交易数据均转换成所述数据库模块的文档对象,再以所述文档对象的形式,将该节点的区块转存至所述数据库模块中。
11.如权利要求10的支持区块链复杂查询的装置,其特征在于,还包括:
数据校验模块,用于执行数据校验流程;
其中,所述数据校验流程为:按区块高度依次校验所述数据库模块中是否存储有相应区块;若存储有相应区块,则更新已校验的区块高度,并进行下一个区块高度的校验;若未存储有相应区块,则将对应区块高度的区块转存至所述数据库模块中,并重新进行该区块高度的校验。
12.如权利要求11的支持区块链复杂查询的装置,其特征在于,所述数据转存模块还用于将已转存的区块高度记录在所述数据库模块中;
所述数据校验模块还用于判断已校验的区块高度是否达到已转存的区块高度,若达到,则暂停执行所述数据校验流程。
13.如权利要求10的支持区块链复杂查询的装置,其特征在于,所述触发条件模块,用于在节点的区块高度大于已转存的区块高度时,触发所述数据转存模块执行数据转存流程。
14.如权利要求10的支持区块链复杂查询的装置,其特征在于,所述数据转存模块执行所述数据转存流程时,相互并行地将多个区块中的交易数据转换成所述文档对象,且每将一个区块的所有交易数据转换完成后,则将该区块转存至所述数据库模块中。
15.如权利要求10的支持区块链复杂查询的装置,其特征在于,所述响应模块,还用于利用公钥对所述查询请求的签名进行验证,以验证所述查询请求是否合法,若合法,则响应所述查询请求;其中,所述签名由私钥与所述查询请求的请求参数生成。
16.如权利要求10的支持区块链复杂查询的装置,其特征在于,所述数据库模块基于MongoDB数据库或Elasticsearch搜索引擎支持复杂查询。
17.如权利要求10~16任一项所述的支持区块链复杂查询的装置,其特征在于,还包括:
功能选择模块,用于选择是否开启所述数据转存模块,以执行所述数据转存流程,以及选择是否开启所述数据校验模块,以执行所述数据校验流程。
18.一种区块链的复杂查询***,包括客户端和服务端,其特征在于,所述服务端部署有如权利要求10~17任一项所述的支持区块链复杂查询的装置。
19.一种可读存储介质,其上存储有一个或多个程序,其特征在于,该一个或多个程序被一个或多个处理器执行时实现权利要求1~9任一项所述的支持区块链复杂查询的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010807809.0A CN112131266B (zh) | 2020-08-12 | 2020-08-12 | 一种支持区块链复杂查询的方法、装置、***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010807809.0A CN112131266B (zh) | 2020-08-12 | 2020-08-12 | 一种支持区块链复杂查询的方法、装置、***及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112131266A CN112131266A (zh) | 2020-12-25 |
CN112131266B true CN112131266B (zh) | 2023-06-13 |
Family
ID=73851561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010807809.0A Active CN112131266B (zh) | 2020-08-12 | 2020-08-12 | 一种支持区块链复杂查询的方法、装置、***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112131266B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108696514A (zh) * | 2018-04-27 | 2018-10-23 | 腾讯科技(深圳)有限公司 | 资源收集任务管理方法、装置、存储介质及*** |
CN109461079A (zh) * | 2018-10-29 | 2019-03-12 | 众安信息技术服务有限公司 | 基于区块链的交易处理方法和装置 |
CN110096522A (zh) * | 2019-05-15 | 2019-08-06 | 西安电子科技大学 | 一种支持关系型检索的区块链数据处理方法、装置及设备 |
CN110827008A (zh) * | 2018-08-08 | 2020-02-21 | 华为技术有限公司 | 一种区块链节点和交易方法 |
CN111339130A (zh) * | 2020-02-25 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、相关设备及可读存储介质 |
CN111353176A (zh) * | 2020-05-22 | 2020-06-30 | 支付宝(杭州)信息技术有限公司 | 一种查询区块链数据的方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562775B (zh) * | 2017-07-14 | 2020-04-24 | 创新先进技术有限公司 | 一种基于区块链的数据处理方法及设备 |
-
2020
- 2020-08-12 CN CN202010807809.0A patent/CN112131266B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108696514A (zh) * | 2018-04-27 | 2018-10-23 | 腾讯科技(深圳)有限公司 | 资源收集任务管理方法、装置、存储介质及*** |
CN110827008A (zh) * | 2018-08-08 | 2020-02-21 | 华为技术有限公司 | 一种区块链节点和交易方法 |
CN109461079A (zh) * | 2018-10-29 | 2019-03-12 | 众安信息技术服务有限公司 | 基于区块链的交易处理方法和装置 |
CN110096522A (zh) * | 2019-05-15 | 2019-08-06 | 西安电子科技大学 | 一种支持关系型检索的区块链数据处理方法、装置及设备 |
CN111339130A (zh) * | 2020-02-25 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、相关设备及可读存储介质 |
CN111353176A (zh) * | 2020-05-22 | 2020-06-30 | 支付宝(杭州)信息技术有限公司 | 一种查询区块链数据的方法及*** |
Non-Patent Citations (3)
Title |
---|
Zhengxin Chen.Re-examination of a Bioinformatics Database Course: Engaging Blockchain Technology.《Procedia Computer Science》.2019,368-374. * |
余璨璨.基于区块链的停车位共享***关键技术研究.《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》.2020,C034-1019. * |
齐学成 等.基于区块链的仓单管理***.《华东师范大学学报(自然科学版)》.2018,144-153. * |
Also Published As
Publication number | Publication date |
---|---|
CN112131266A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647580B (zh) | 分布式容器集群镜像管理主节点、从节点、***及方法 | |
CN113169952B (zh) | 一种基于区块链技术的容器云管理*** | |
US9253265B2 (en) | Hot pluggable extensions for access management system | |
US10798218B2 (en) | Environment isolation method and device | |
US7934018B1 (en) | Methods and apparatus for synchronizing configuration data | |
CN108959385B (zh) | 数据库部署方法、装置、计算机设备和存储介质 | |
CN101751415B (zh) | 元数据服务***、元数据同步方法与写服务器更新方法 | |
US8533525B2 (en) | Data management apparatus, monitoring apparatus, replica apparatus, cluster system, control method and computer-readable medium | |
CN112860282B (zh) | 集群插件的升级方法、装置和服务器 | |
CN106095483A (zh) | 服务的自动化部署方法及装置 | |
CN101877655A (zh) | 网络管理***、网管服务器和方法 | |
CN116627721A (zh) | 基于混合云的云原生数据库恢复方法、设备及存储介质 | |
CN113419818B (zh) | 基础组件部署方法、装置、服务器及存储介质 | |
CN112131266B (zh) | 一种支持区块链复杂查询的方法、装置、***及存储介质 | |
CN108366087B (zh) | 一种基于分布式文件***的iscsi服务实现方法和装置 | |
JP5352027B2 (ja) | 計算機システムの管理方法及び管理装置 | |
CN115766405B (zh) | 一种故障处理方法、装置、设备和存储介质 | |
JP7250121B2 (ja) | クラウドデグレードモードにおいてデバイス動作信頼性を継続的に確保するための方法および装置 | |
CN111752892A (zh) | 分布式文件***及其实现方法、管理***、设备及介质 | |
CN105827567B (zh) | 服务管控方法及能力开放平台 | |
JP2014164724A (ja) | 自動運用プロセス生成方法、プログラム、および装置 | |
CN112214502A (zh) | 一种联盟链的用户合约部署方法、装置、***及存储介质 | |
CN109510867A (zh) | 数据请求处理的方法、装置、存储介质及电子设备 | |
CN113177080B (zh) | 区块链共识引擎***和区块链共识处理流程方法 | |
CN114510282B (zh) | 一种自动化应用的运行方法、装置、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |