CN111506589B - 基于联盟链的区块链数据服务系统、访问方法及存储介质 - Google Patents
基于联盟链的区块链数据服务系统、访问方法及存储介质 Download PDFInfo
- Publication number
- CN111506589B CN111506589B CN202010284679.7A CN202010284679A CN111506589B CN 111506589 B CN111506589 B CN 111506589B CN 202010284679 A CN202010284679 A CN 202010284679A CN 111506589 B CN111506589 B CN 111506589B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- request
- full
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Software Systems (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于联盟链的区块链数据服务系统、访问方法及存储介质,所述系统包括网络服务节点,所述网络服务节点用于接收来自轻量级节点的数据请求;轻量级节点,所述轻量级节点用于向所述网络服务节点发出数据请求,以便于获取到来自目标全节点中的区块链数据;数据查询节点,所述数据查询节点用于与网络服务节点通信以获取到数据请求,将所述数据请求基于负载均衡策略分发至目标全节点;所述目标全节点为联盟链中的一个全节点;全节点,所述全节点为布设于联盟链中的保存有完备区块链数据账本的数据节点。本发明支持轻量级节点并发访问并为其提供强有力的事务支持,对全节点进行负载均衡,将原本孤立存储的区块链数据高效便捷的共享给用户。
Description
技术领域
本发明涉及区块链领域,尤其涉及基于联盟链的区块链数据服务系统、访问方法及存储介质。
背景技术
区块链是实现智慧城市、智慧医疗、电子政务等的核心前沿技术,具有可追溯性、可验证性特点。众所周知,区块链目前是以一种分布式账本的形式来组织和管理数据,每一个节点都有一份完整的账本拷贝,节点之间互不信任,通过分布式一致性协议来维护数据一致性。为了防止数据被篡改,区块链综合运用了多种网络安全技术并采用了仅增加式的数据结构,这导致了维护完整的区块链数据将产生较高的计算需求并需要处理不断增长的数据的能力。这些问题导致很多存储和计算能力差的节点(轻量级节点)无法自行维护完整的区块链数据,轻量级节点只存储少量的区块链数据,甚至有的轻量级节点并没有存储区块链数据,因此轻量级节点的数据需求只能依托于与拥有维护完整区块链数据能力的全节点的交互来满足。
然而在现有的区块链系统中,在处理大量轻量级节点的数据请求上,主要存在以下两方面的不足:
1.没有公开的数据服务系统,轻量级节点无法在全网(区块链运行的网络)范围内选择合适的全节点发送请求,这导致了部分全节点访问压力过大,网络负载不均衡。与分布式数据库不同,公链上不设置节点管理机制,而联盟链系统上也仅添加了身份认证机制,因此均无法直接建立数据服务系统。
2.区块链缺乏有效的数据存储和事务管理机制,导致其数据可搜索性差且不支持并发访问。区块链采用Leveldb和文件系统管理底层数据,无法支持并发事务,而且仅支持对应特定键值的等值检索和粗粒度检索,对于数据处理的支持能力较弱。
综上所述,现有技术中没有能够支持具备高可信赖度,能够在进行全节点数据访问时进行负载均衡,并且提供支持并发访问细粒度数据查询的基于区块链的数据服务系统,在区块链系统上实现方便、高效的数据服务已经成为一个具有挑战力的问题。当然,为了增强对于区块链数据访问的支持,现有技术也做出了努力,目前现有的一些方案主要包括两个:
1.基于vChain,在以太坊平台基础上,加入可验证查询结构,使得查询结果可以的正确性能够判断。但是该方法中轻量级节点只能自行寻找数据存储节点进行访问,数据服务效率和网络负载均衡难以保障。
2.基于BlockchainDB,在数据节点上建立查询层来屏蔽区块链底层的数据操作,使数据操作更为方便快捷。但是,这种方法需要信任某个区块链节点的数据操作。
此外,上述两个方案均不支持并发和SQL查询。
发明内容
本发明实施例提供基于联盟链的区块链数据服务系统、访问方法及存储介质,具体地:
一种基于联盟链的区块链数据服务系统,所述系统包括:
网络服务节点,所述网络服务节点用于接收来自轻量级节点的数据请求;
轻量级节点,所述轻量级节点用于向所述网络服务节点发出数据请求,以便于获取到来自目标全节点中的区块链数据;
数据查询节点,所述数据查询节点用于与所述网络服务节点通信以获取到数据请求,将所述数据请求基于负载均衡策略分发至目标全节点;所述目标全节点为联盟链中的一个全节点;
全节点,所述全节点为布设于联盟链中的保存有完备区块链数据账本的数据节点。
优选的,所述数据查询节点布设在联盟链内部或外部,所述数据查询节点维护服务节点注册表,所述注册表记录有能够对外提供数据查询服务的全节点信息;
所述全节点布设于联盟链的peer节点,全节点与数据查询节点通信连接,发送其自身的节点信息至数据查询节点,以使得所述节点信息被录入服务节点注册表后,能够响应于数据查询节点分发的数据请求,向所述数据请求指向的轻量级节点返回数据响应。
优选的,在所述网络服务节点与所述数据查询节点之间设立查询通道,所述网络服务节点将获取到的数据请求逐条整理加入查询通道,所述数据查询节点在所述查询通道中提取数据请求进行分发。
一种数据访问方法,所述数据访问方法基于所述的数据服务系统实施,所述方法包括:
轻量级节点向网络服务节点发送数据服务请求;
所述网络服务节点获取到数据服务请求,按照时序将所述数据服务请求加入查询通道;
数据查询节点在所述查询通道中提取数据服务请求,基于负载均衡策略确定所述数据服务请求指向的目标全节点,所述负载均衡策略基于所述数据查询节点中的服务注册表实施,所述服务注册表记录有当前能够响应数据服务请求的全节点的相关信息;
所述目标全节点验证所述数据服务请求,若验证通过,则生成数据响应,将所述数据响应传输至所述轻量级节点。
优选的,所述数据服务请求包括轻量级节点身份信息,标记地址,数据请求语句和数据请求标识;
所述轻量级节点身份信息用于标识所述轻量级节点的身份;
所述标记地址为用于接收所述数据响应的地址;
所述数据请求语句为目标全节点需要执行的数据请求语句;
所述数据请求标识用于标记所述数据服务请求,以用于对历次数据服务请求进行区分,相应的,响应所述数据服务请求的数据响应也携带有所述数据请求标识,以便于所述轻量级节点确定数据服务请求与数据响应之间的映射关系。
优选的,所述数据响应包括数据请求标识、数据处理结果、目标全节点数据状态标记和目标全节点身份信息;
所述数据请求标识来自于所述数据服务请求;
所述数据处理结果为所述目标全节点响应所述数据服务请求进行数据处理所产生的结果;
所述目标全节点数据状态标记用于标记生成所述数据响应的目标全节点的数据状态;
所述目标全节点身份信息用于标识所述目标全节点的身份。
优选的,还包括:
根据各个相同的数据查询请求的数据请求标识得到其对应的数据响应;
比较各个数据响应,确定目标数据响应。
优选的,所述比较各个数据响应,确定目标数据响应,包括:
若不同的数据响应携带不同的目标全节点身份信息,但是却携带相同的数据处理结果,则将任一数据处理结果确定为目标数据响应;
若不同的数据响应携带相同的目标全节点身份信息,但是却携带不同的数据处理结果,则携带所述目标全节点身份信息的数据响应均不能够被确定为目标数据结果。
优选的,还包括,对于全节点进行改进,包括:
为全节点构建底层关系型数据库,所述底层关系型数据库包括第一数据库和第二数据库,所述第一数据库用于管理第一关系型数据,所述第一关系型数据由交易区块链数据转换得到;所述交易区块链数据为以交易作为数据组织基准得到的区块链数据,所述第二关系型数据由用户区块链数据转换得到;所述用户区块链数据为以用户作为数据组织基准得到的区块链数据。
一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现一种数据访问方法。
本发明提供了基于联盟链的区块链数据服务系统、访问方法及存储介质,实现了高效便捷的区块链数据服务公开机制,通过为全节点构建支持事务处理和细粒度查询的底层数据库,使得所述数据服务系统可以支持轻量级节点的并发访问,并且能够对全节点进行负载均衡。数据服务系统的构建,为数据的并发访问提供了强有力的事务支持,将原本孤立存储的区块链数据高效便捷的共享给用户。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明提供一种基于联盟链的区块链数据服务系统示意图;
图2是本发明提供的一种数据访问方法流程图;
图3是本发明提供的提升查询到的数据的准确度方法流程图;
图4是本发明提供的比较各个数据响应,确定目标数据响应流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了使本发明实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明实施例,并不用于限定本发明实施例。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。为了便于本领域技术人员理解本发明实施中的技术方案,在本发明实施例详述伊始,对下述专业技术术语进行概述:
联盟链:由多个中心控制,系统由几个权威的机构共同分布式记账,部分去中心化的区块链。
Fabric:联盟链系统之一,本发明实施例中的全节点可以运行于Fabric的peer节点上。
peer节点:可以执行智能合约、存储数据、验证数据的运行于Fabric的节点。
MSP(Membership Service Provider):负责对节点进身份验证和授权的节点凭据,可以用于支持本发明实施例中轻量级节点和全节点的身份验证。
gRPC:提供了一套机制,使得应用程序之间可以进行通信,而且也遵从服务器客户端模型的开发框架。
Leveldb:高效的支持键值数据模型的数据库,即存储在其中的数据只有两个相互关联的字段键和值,而且使用时也只能对键进行检索,只能够支持对区块链数据的粗粒度查询。
现有技术中轻量级节点的数据请求需要通过与区块链系统中的全节点进行数据交互来得到响应。但是区块链系统中的全节点可能是恶意节点,轻量级节点无法对恶意节点进行鉴别,导致其无法完全信任来自全节点的数据响应;而轻量级节点也无法对区块链系统中的全节点进行选择,从而使得区块链系统中全节点会产生负载不均衡的问题。为了提升轻量级节点能够获取到数据响应的可信度,并且维护区块链系统中全节点的负载均衡,本发明实施例提供一种基于联盟链的区块链数据服务系统及方法,旨在为轻量级节点提供一个数据服务系统,所述数据服务系统可以提升返回给轻量级节点的数据响应的可靠性,并且维护区块链系统中全节点的负载均衡,所述轻量级节点只需要向所述数据服务系统发送请求即可获取到数据响应。
有鉴于此,本发明实施例提供一种基于联盟链的区块链数据服务系统,如图1所示,所述系统包括:
网络服务节点101,所述网络服务节点101用于接收来自轻量级节点102的数据请求;
轻量级节点102,所述轻量级节点102用于向所述网络服务节点101发出数据请求,以便于获取到来自目标全节点中的区块链数据;
数据查询节点103,所述数据查询节点103用于与所述网络服务节点101通信以获取到数据请求,将所述数据请求基于负载均衡策略分发至目标全节点;所述目标全节点为联盟链中的一个全节点104;
全节点104,所述全节点104为布设于联盟链中的保存有完备区块链数据账本的数据节点。
具体地,所述网络服务节点101可以布设于联盟链内部或外部,本发明实施例不限定网络服务节点101的布设位置。所述网络服务节点101可以为一个或多个,本发明实施例并不限定网络服务节点的布设数量。
在一个可行的实施例中,所述系统基于gRPC架构构建得到,基于gRPC架构数据查询节点103和全节点104之间可以进行信息交互。
所述数据查询节点103可以布设在联盟链内部或外部,所述数据查询节点103维护了一张服务节点注册表,所述注册表记录有能够对外提供数据查询服务的全节点信息,所述全节点信息可以包括全节点IP地址信息和身份信息。
所述全节点104可以布设于联盟链的peer节点,全节点104与数据查询节点103通信连接,发送其自身的节点信息至数据查询节点,以使得所述节点信息被录入服务节点注册表后,即可响应于数据查询节点分发的数据请求,向所述数据请求指向的轻量级节点返回数据响应。
在一个优选的实施例中,还可以在所述网络服务节点101与所述数据查询节点103之间设立查询通道,所述网络服务节点101将获取到的数据请求逐条整理加入查询通道,所述数据查询节点103在所述查询通道中提取数据请求向全节点104进行分发,查询通道的设立有利于降低网络服务节点101和数据查询节点103的耦合度,提升数据服务系统的稳定性。
基于上述数据服务系统,本发明实施例提供一种数据访问方法,如图2所示,所述方法包括:
S101.轻量级节点向网络服务节点发送数据服务请求。
具体地,所述数据服务请求可以包括轻量级节点身份信息,标记地址,数据请求语句和数据请求标识。
具体地,所述轻量级节点身份信息用于标识所述轻量级节点的身份。在进行数据服务请求的发送之前,所述轻量级节点应当已经是被联盟链认可的合法节点,所述轻量级节点即可以当前联盟链的MSP注册的身份标识作为所述轻量级节点身份信息,以便于网络服务节点基于所述轻量级节点身份信息验证所述数据服务请求来源的合法性。
所述标记地址为用于接收所述数据响应的地址,在一个优选的实施例中即可为所述轻量级节点的IP地址。若所述数据服务请求中所述标记地址为空,则所述网络服务节点将其补充为所述轻量级节点的IP地址。
所述数据请求语句为目标全节点需要执行的数据请求语句,为了支持细粒度的数据查询,本发明实施例对于全节点的底层数据结构进行改造,使其支持细粒度的对于关系型数据的查询,因此,所述数据请求语句可以为SQL语句。在一个优选的实施例中,为了确保目标全节点中的区块链数据不因响应所述数据服务请求被篡改,所述数据请求语句优选为只读SQL语句。
所述数据请求标识用于标记所述数据服务请求,所述轻量级节点可以发出多次数据服务请求,使用所述数据请求标识作为数据服务请求的标识,可以对历次数据服务请求进行区分,相应的,响应所述数据服务请求的数据响应也携带有所述数据请求标识,以便于所述轻量级节点确定数据服务请求与数据响应之间的映射关系。
具体地,各个轻量级节点互不影响,均可以独立执行步骤S101。
S102.所述网络服务节点获取到数据服务请求,按照时序将所述数据服务请求加入查询通道。
S103.数据查询节点在所述查询通道中提取数据服务请求,基于负载均衡策略确定所述数据服务请求指向的目标全节点,所述负载均衡策略基于所述数据查询节点中的服务注册表实施,所述服务注册表记录有当前能够响应数据服务请求的全节点的相关信息。
具体地,所述服务注册表的内容上文已经写明,再次不再赘述。
当全节点不具备响应数据服务请求的能力时,所述全节点向所述数据查询节点发布服务终止消息,所述数据查询节点在所述服务注册表中删除所述全节点信息。
具体地,在一个可行的实施方式中,可以为各个全节点构建底层关系型数据库,所述底层关系型数据库基于所述全节点中存储的区块链数据构建,将所述区块链数据中的信息重新组织为关系型数据进行存储,以便于支持对于区块链数据的细粒度查询。各个全节点分布式布设,其底层关系型数据库均可以基于MySQL数据库搭建,本发明实施例中实施的负载均衡策略可以通过与MySQL交互而获取,也可以基于MySQL的插件实施。
S104.所述目标全节点验证所述数据服务请求,若验证通过,则生成数据响应,将所述数据响应传输至所述轻量级节点。
具体地,所述数据响应包括数据请求标识、数据处理结果、目标全节点数据状态标记和目标全节点身份信息。
具体地,所述数据请求标识来自于所述数据服务请求。
所述数据处理结果为所述目标全节点响应所述数据服务请求进行数据处理所产生的结果。若所述数据服务请求是数据查询请求,则所述数据处理结果可以存储查询到的区块链数据。
所述目标全节点数据状态标记可以用于标记生成所述数据响应的目标全节点的数据状态。因为目标全节点布设于区块链中,区块链的分布式一致性导致了各个全节点之间可能存在版本差异,因此,将当前的目标全节点的数据状态也附着在数据响应之中返回。具体地,所述目标全节点数据状态可以由所述目标全节点指向的最新区块的编号和哈希值表征。
所述目标全节点身份信息用于标识所述目标全节点的合法身份,所述轻量级节点通过验证所述目标全节点身份信息,可以判定所述目标全节点是否具有合法身份,若具有合法身份,则可以信任所述数据响应。由于所述目标全节点来自于区块链,而区块链上可能存在恶意节点,因此,通过在数据响应中包含目标全节点身份信息,可以使得轻量级节点能够对目标全节点身份进行验证,提升安全性。
在一个优选的实施例中,若所述数据服务请求是数据查询请求,则所述轻量级节点还能够通过多次发送相同的数据查询请求,比较各个数据响应,确定目标数据响应,从而提升查询到的数据的准确度,具体方法如图3所示,包括:
S1.根据各个相同的数据查询请求的数据请求标识得到其对应的数据响应。
S2.比较各个数据响应,确定目标数据响应。
具体地,所述比较各个数据响应,确定目标数据响应,如图4所示,包括:
若不同的数据响应携带不同的目标全节点身份信息,但是却携带相同的数据处理结果,则将任一数据处理结果确定为目标数据响应。认为其是可信赖数据。
若不同的数据响应携带相同的目标全节点身份信息,但是却携带不同的数据处理结果,则携带所述目标全节点身份信息的数据响应均不能够被确定为目标数据结果。认为目标全节点是不可信的,来自所述目标全节点的数据响应也不可被信任。
本发明实施例中各个全节点都有机会作为目标全节点向轻量级节点反馈区块链数据,支持轻量级节点对于区块链数据的细粒度查询。现有的区块链系统采用文件系统和Leveldb的形式进行数据管理,无法支持细粒度的查询,因此,本发明实施例对于全节点进行改进,为其构建底层关系型数据库以支持细粒度查询,并且基于预设的只读接口实施查询过程,确保数据查询过程中不发生对于全节点数据的篡改,从而实现细粒度查询。在一个优选的实施例中,还可以对只读接口进行设置,使得其可以隐藏敏感的区块链数据,在一定程度上能够保护联盟内部的数据隐私性。
具体地,本发明实施例中对于全节点进行了下述改进:
为全节点构建底层关系型数据库,所述底层关系型数据库包括第一数据库和第二数据库,所述第一数据库用于管理第一关系型数据,所述第一关系型数据由交易区块链数据转换得到;所述交易区块链数据为以交易作为数据组织基准得到的区块链数据,所述第二关系型数据由用户区块链数据转换得到;所述用户区块链数据为以用户作为数据组织基准得到的区块链数据;
在构建所述底层关系型数据库之后,所述全节点即可基于所述底层关系型数据库进行数据处理,所述数据处理包括数据新建、变更和细粒度查询。
具体地,所述改进包括构建与区块链数据对应的第一关系型数据模型,基于所述第一关系型数据将区块链数据存入第一数据库,所述构建第一关系型数据模型,包括:
根据所述区块体数据中交易顺序提取交易数据;
提取所述交易数据中的交易头、签名、交易提案、提案返回和数据域,构建交易表;
根据区块头和区块元数据构建区块表;
构建区块表与交易表的映射关系;
区块表中的一条记录对应一个区块,交易表中的一条记录对应一笔交易,一个区块链数据的区块体数据中包含多笔交易,区块表中的一条记录与交易表中的N条记录构成映射关系。
若轻量级节点发出数据查询请求,则目标全节点响应所述数据查询请求包括下述步骤:
获取查询数据所需的关系型数据,所述关系型数据包括查询数据的操作名、至少一个查询数据的表名、与所述表名对应的查询条件;
在底层关系型数据库中的管理表中读取所述表名的数据表,根据所述查询条件查询所述数据表得到至少一条记录,根据所述记录中的主键联合所述表名得到K键,联合根据所述记录中的其它属性内容得到V值,生成KV数据。
将所述KV数据作为数据处理结果,生成数据响应。
本发明实施例提供了一种数据服务系统和基于所述数据服务系统的数据访问方法,其实现了高效便捷的区块链数据服务公开机制,通过为全节点构建支持事务处理和细粒度查询的底层数据库,使得所述数据服务系统可以支持轻量级节点的并发访问,并且能够对全节点进行负载均衡。数据服务系统的构建,为数据的并发访问提供了强有力的事务支持,将原本孤立存储的区块链数据高效便捷的共享给用户。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可以存储有多条指令。所述指令可以适于由处理器加载并执行本发明实施例所述的一种数据访问方法,所述方法至少包括下述步骤:
一种数据访问方法,所述数据访问方法基于数据服务系统实施,所述方法包括:
轻量级节点向网络服务节点发送数据服务请求;
所述网络服务节点获取到数据服务请求,按照时序将所述数据服务请求加入查询通道;
数据查询节点在所述查询通道中提取数据服务请求,基于负载均衡策略确定所述数据服务请求指向的目标全节点,所述负载均衡策略基于所述数据查询节点中的服务注册表实施,所述服务注册表记录有当前能够响应数据服务请求的全节点的相关信息;
所述目标全节点验证所述数据服务请求,若验证通过,则生成数据响应,将所述数据响应传输至所述轻量级节点。
在一个可行的实施例中,所述数据服务请求包括轻量级节点身份信息,标记地址,数据请求语句和数据请求标识;
所述轻量级节点身份信息用于标识所述轻量级节点的身份;
所述标记地址为用于接收所述数据响应的地址;
所述数据请求语句为目标全节点需要执行的数据请求语句;
所述数据请求标识用于标记所述数据服务请求,以用于对历次数据服务请求进行区分,相应的,响应所述数据服务请求的数据响应也携带有所述数据请求标识,以便于所述轻量级节点确定数据服务请求与数据响应之间的映射关系。
在一个可行的实施例中,所述数据响应包括数据请求标识、数据处理结果、目标全节点数据状态标记和目标全节点身份信息;
所述数据请求标识来自于所述数据服务请求;
所述数据处理结果为所述目标全节点响应所述数据服务请求进行数据处理所产生的结果;
所述目标全节点数据状态标记用于标记生成所述数据响应的目标全节点的数据状态;
所述目标全节点身份信息用于标识所述目标全节点的身份。
在一个可行的实施例中,还包括:
根据各个相同的数据查询请求的数据请求标识得到其对应的数据响应;
比较各个数据响应,确定目标数据响应。
在一个可行的实施例中,所述比较各个数据响应,确定目标数据响应,包括:
若不同的数据响应携带不同的目标全节点身份信息,但是却携带相同的数据处理结果,则将任一数据处理结果确定为目标数据响应;
若不同的数据响应携带相同的目标全节点身份信息,但是却携带不同的数据处理结果,则携带所述目标全节点身份信息的数据响应均不能够被确定为目标数据结果。
在一个可行的实施例中,还包括,对于全节点进行改进,包括:
为全节点构建底层关系型数据库,所述底层关系型数据库包括第一数据库和第二数据库,所述第一数据库用于管理第一关系型数据,所述第一关系型数据由交易区块链数据转换得到;所述交易区块链数据为以交易作为数据组织基准得到的区块链数据,所述第二关系型数据由用户区块链数据转换得到;所述用户区块链数据为以用户作为数据组织基准得到的区块链数据。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于联盟链的区块链数据服务系统,其特征在于,所述系统包括:
网络服务节点,所述网络服务节点用于接收来自轻量级节点的数据请求;
轻量级节点,所述轻量级节点用于向所述网络服务节点发出数据请求,以便于获取到来自目标全节点中的区块链数据;
数据查询节点,所述数据查询节点用于与所述网络服务节点通信以获取到数据请求,将所述数据请求基于负载均衡策略分发至目标全节点;所述目标全节点为联盟链中的一个全节点;
全节点,所述全节点为布设于联盟链中的保存有完备区块链数据账本的数据节点;
所述系统用于实施下述操作:对于全节点进行改进,包括:
为全节点构建底层关系型数据库,所述底层关系型数据库包括第一数据库和第二数据库,所述第一数据库用于管理第一关系型数据,所述第一关系型数据由交易区块链数据转换得到;所述交易区块链数据为以交易作为数据组织基准得到的区块链数据,第二关系型数据由用户区块链数据转换得到;所述用户区块链数据为以用户作为数据组织基准得到的区块链数据。
2.根据权利要求1所述的系统,其特征在于:
所述数据查询节点布设在联盟链内部或外部,所述数据查询节点维护服务节点注册表,所述注册表记录有能够对外提供数据查询服务的全节点信息;
所述全节点布设于联盟链的peer节点,全节点与数据查询节点通信连接,发送其自身的节点信息至数据查询节点,以使得所述节点信息被录入服务节点注册表后,能够响应于数据查询节点分发的数据请求,向所述数据请求指向的轻量级节点返回数据响应。
3.根据权利要求2所述的系统,其特征在于:
在所述网络服务节点与所述数据查询节点之间设立查询通道,所述网络服务节点将获取到的数据请求逐条整理加入查询通道,所述数据查询节点在所述查询通道中提取数据请求进行分发。
4.一种数据访问方法,所述数据访问方法基于权利要求1中所述的数据服务系统实施,其特征在于,所述方法包括:
轻量级节点向网络服务节点发送数据服务请求;
所述网络服务节点获取到数据服务请求,按照时序将所述数据服务请求加入查询通道;
数据查询节点在所述查询通道中提取数据服务请求,基于负载均衡策略确定所述数据服务请求指向的目标全节点,所述负载均衡策略基于所述数据查询节点中的服务注册表实施,所述服务注册表记录有当前能够响应数据服务请求的全节点的相关信息;
所述目标全节点验证所述数据服务请求,若验证通过,则生成数据响应,将所述数据响应传输至所述轻量级节点;
对于全节点进行改进,包括:
为全节点构建底层关系型数据库,所述底层关系型数据库包括第一数据库和第二数据库,所述第一数据库用于管理第一关系型数据,所述第一关系型数据由交易区块链数据转换得到;所述交易区块链数据为以交易作为数据组织基准得到的区块链数据,第二关系型数据由用户区块链数据转换得到;所述用户区块链数据为以用户作为数据组织基准得到的区块链数据。
5.根据权利要求4所述的方法,其特征在于:
所述数据服务请求包括轻量级节点身份信息,标记地址,数据请求语句和数据请求标识;
所述轻量级节点身份信息用于标识所述轻量级节点的身份;
所述标记地址为用于接收所述数据响应的地址;
所述数据请求语句为目标全节点需要执行的数据请求语句;
所述数据请求标识用于标记所述数据服务请求,以用于对历次数据服务请求进行区分,相应的,响应所述数据服务请求的数据响应也携带有所述数据请求标识,以便于所述轻量级节点确定数据服务请求与数据响应之间的映射关系。
6.根据权利要求5所述的方法,其特征在于:
所述数据响应包括数据请求标识、数据处理结果、目标全节点数据状态标记和目标全节点身份信息;
所述数据请求标识来自于所述数据服务请求;
所述数据处理结果为所述目标全节点响应所述数据服务请求进行数据处理所产生的结果;
所述目标全节点数据状态标记用于标记生成所述数据响应的目标全节点的数据状态;
所述目标全节点身份信息用于标识所述目标全节点的身份。
7.根据权利要求6所述的方法,其特征在于,还包括:
根据各个相同的数据查询请求的数据请求标识得到其对应的数据响应;
比较各个数据响应,确定目标数据响应。
8.根据权利要求7所述的方法,其特征在于,所述比较各个数据响应,确定目标数据响应,包括:
若不同的数据响应携带不同的目标全节点身份信息,但是却携带相同的数据处理结果,则将任一数据处理结果确定为目标数据响应;
若不同的数据响应携带相同的目标全节点身份信息,但是却携带不同的数据处理结果,则携带所述目标全节点身份信息的数据响应均不能够被确定为目标数据结果。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如权利要求4-8任意一项所述的一种数据访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010284679.7A CN111506589B (zh) | 2020-04-13 | 2020-04-13 | 基于联盟链的区块链数据服务系统、访问方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010284679.7A CN111506589B (zh) | 2020-04-13 | 2020-04-13 | 基于联盟链的区块链数据服务系统、访问方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506589A CN111506589A (zh) | 2020-08-07 |
CN111506589B true CN111506589B (zh) | 2023-06-23 |
Family
ID=71870976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010284679.7A Active CN111506589B (zh) | 2020-04-13 | 2020-04-13 | 基于联盟链的区块链数据服务系统、访问方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506589B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112182029B (zh) * | 2020-09-30 | 2022-09-16 | 杭州复杂美科技有限公司 | 数据查询方法、设备和存储介质 |
CN113055453B (zh) * | 2021-03-09 | 2022-08-02 | 中国工商银行股份有限公司 | 基于区块链的作业处理方法、装置及系统 |
CN113204770A (zh) * | 2021-04-16 | 2021-08-03 | 宁波图灵奇点智能科技有限公司 | 一种数据保护系统以及方法、计算机设备和存储介质 |
CN114219477B (zh) * | 2021-11-03 | 2022-09-16 | 重庆邮电大学 | 基于链上存储的区块链数据存储扩展方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595126A (zh) * | 2018-04-27 | 2018-09-28 | 腾讯科技(深圳)有限公司 | 数据存储系统、查询方法、查询装置、服务器及存储介质 |
WO2019119929A1 (zh) * | 2017-12-21 | 2019-06-27 | 广州广电运通金融电子股份有限公司 | 区块链共识方法、装置和系统、标识信息处理方法和装置 |
CN110009510A (zh) * | 2019-01-22 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 基于区块链的业务处理系统、方法、计算设备及存储介质 |
CN110162570A (zh) * | 2019-04-17 | 2019-08-23 | 阿里巴巴集团控股有限公司 | 区块链数据的分次获取方法和装置 |
CN110445850A (zh) * | 2019-07-24 | 2019-11-12 | 深圳壹账通智能科技有限公司 | 区块链节点访问方法及装置、存储介质、电子设备 |
-
2020
- 2020-04-13 CN CN202010284679.7A patent/CN111506589B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019119929A1 (zh) * | 2017-12-21 | 2019-06-27 | 广州广电运通金融电子股份有限公司 | 区块链共识方法、装置和系统、标识信息处理方法和装置 |
CN108595126A (zh) * | 2018-04-27 | 2018-09-28 | 腾讯科技(深圳)有限公司 | 数据存储系统、查询方法、查询装置、服务器及存储介质 |
CN110009510A (zh) * | 2019-01-22 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 基于区块链的业务处理系统、方法、计算设备及存储介质 |
CN110162570A (zh) * | 2019-04-17 | 2019-08-23 | 阿里巴巴集团控股有限公司 | 区块链数据的分次获取方法和装置 |
CN110445850A (zh) * | 2019-07-24 | 2019-11-12 | 深圳壹账通智能科技有限公司 | 区块链节点访问方法及装置、存储介质、电子设备 |
Non-Patent Citations (2)
Title |
---|
基于联盟链的电子病历访问控制系统;陈希凯等;《电子制作》;全文 * |
基于轻量级区块链节点的数字电影放映系统设计;杨硕鹏等;《情报工程》(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111506589A (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506589B (zh) | 基于联盟链的区块链数据服务系统、访问方法及存储介质 | |
US11816118B2 (en) | Collaborative dataset consolidation via distributed computer networks | |
US10963486B2 (en) | Management of collaborative datasets via distributed computer networks | |
US11314734B2 (en) | Query generation for collaborative datasets | |
US11176151B2 (en) | Consolidator platform to implement collaborative datasets via distributed computer networks | |
US10860601B2 (en) | Dataset analysis and dataset attribute inferencing to form collaborative datasets | |
US10984008B2 (en) | Collaborative dataset consolidation via distributed computer networks | |
US10902016B2 (en) | Autonomous interdependent repositories | |
JP7461695B2 (ja) | ブロックチェーン・ネットワークからのデータの抽出 | |
CN109791591B (zh) | 经由区块链进行身份和凭证保护及核实的方法和系统 | |
US20210390141A1 (en) | Loading collaborative datasets into data stores for queries via distributed computer networks | |
US10699027B2 (en) | Loading collaborative datasets into data stores for queries via distributed computer networks | |
US20170364569A1 (en) | Collaborative dataset consolidation via distributed computer networks | |
US20220229847A1 (en) | Dataset analysis and dataset attribute inferencing to form collaborative datasets | |
AU2017282656A1 (en) | Collaborative dataset consolidation via distributed computer networks | |
CN112559627A (zh) | 一种基于联盟链的链上-链下协同电子病历数据共享方法 | |
CN109791594A (zh) | 为了在多个不可变数据结构上持续存储而对数据进行分段 | |
US20210176054A1 (en) | Personal information validation and control | |
KR20230072462A (ko) | 블록체인 기반 증명서 관리 서버 및 방법 그리고 컴퓨터 프로그램 | |
US10140347B2 (en) | Exposing data to query generating applications using usage profiles | |
CN108710643B (zh) | 数据共享方法、装置、计算机设备和存储介质 | |
US20230325521A1 (en) | Data processing method and apparatus based on blockchain network, device, and storage medium | |
US20230376496A1 (en) | Loading collaborative datasets into data stores for queries via distributed computer networks | |
CN115221558A (zh) | 一种面向多主体科技资源的数字对象高效存证方法和系统 | |
CN111339189B (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 |