CN113779025A - 一种区块链中分类数据检索效率的优化方法、系统及应用 - Google Patents
一种区块链中分类数据检索效率的优化方法、系统及应用 Download PDFInfo
- Publication number
- CN113779025A CN113779025A CN202110903230.9A CN202110903230A CN113779025A CN 113779025 A CN113779025 A CN 113779025A CN 202110903230 A CN202110903230 A CN 202110903230A CN 113779025 A CN113779025 A CN 113779025A
- Authority
- CN
- China
- Prior art keywords
- data
- tree
- retrieval
- block
- leaf node
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000005457 optimization Methods 0.000 title claims description 16
- XXXSILNSXNPGKG-ZHACJKMWSA-N Crotoxyphos Chemical compound COP(=O)(OC)O\C(C)=C\C(=O)OC(C)C1=CC=CC=C1 XXXSILNSXNPGKG-ZHACJKMWSA-N 0.000 claims description 16
- 239000005364 simax Substances 0.000 claims description 16
- 238000013500 data storage Methods 0.000 claims description 13
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 8
- 230000005611 electricity Effects 0.000 description 8
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 4
- 230000007547 defect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/2455—Query execution
-
- 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
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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
-
- 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
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/06—Energy or water supply
-
- 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)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Marketing (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- General Business, Economics & Management (AREA)
- General Health & Medical Sciences (AREA)
- Strategic Management (AREA)
- Public Health (AREA)
- Primary Health Care (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Water Supply & Treatment (AREA)
- Human Resources & Organizations (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Tourism & Hospitality (AREA)
- Bioethics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于区块链技术领域,公开了一种区块链中分类数据检索效率的优化方法、系统及应用,所述区块链中分类数据检索效率的优化方法包括:进行数据的存储;进行数据的检索。本发明采用将数据分为能源流、业务流、数据流,对提取语义信息后的数据进行分类存储,并在区块内建立基于数据语义信息的MerkleB+树索引的方法,不仅能够提高数据的检索效率,还能够通过具体地关键词来检索数据,摆脱以往只能通过哈希值来检索数据的限制,并且客户端可以通过MerkleRootHash来验证系统返回的查询结果的可靠性。同时,通过使用本发明所提供的方法,极大地提高了区块链中数据的检索效率,同时Merkle树的设计也保障了系统的安全性。
Description
技术领域
本发明属于区块链技术领域,尤其涉及一种区块链中分类数据检索效率的优化方法、系统及应用。
背景技术
目前,区块链是一种只可追加的链式结构,通常被认为是分布式账本,并使用共识算法追加区块数据,加密算法保证链上数据不可篡改,区块链的可靠性决定了其很适合应用在溯源、存证、交易等场景,例如电网中的碳资产交易、清洁能源消纳等场景中。而区块链在设计之初并未考虑对高检索效率的支持,其底层基于levelDB使用<key,value>对进行数据的存储,并且没有设计索引结构对数据检索的支持,这导致了对区块链中数据的检索效率低下且检索方式单一,这在很大程度上限制了区块链在各个领域中的应用。因此,设计一种快速检索区块链中电网数据的方法是很有必要的。
通过上述分析,现有技术存在的问题及缺陷为:区块链在设计之初并未考虑对高检索效率的支持,且没有设计索引结构对数据检索的支持,导致了对区块链中数据的检索效率低下且检索方式单一,当一个拥有海量用户的、实时性要求高的应用底层选用区块链作为数据库时,区块链的检索效率将无法支撑用户的实时查询需求,且其单一的哈希值检索方式将给用户带来很差的使用体验,这些都在很大程度上限制了区块链在各个领域中的应用。
解决以上问题及缺陷的难度为:区块链在设计之初并未考虑对数据索引结构与丰富查询类型的支持,这导致区块链系统在数据处理方面的性能远不如传统数据库,当系统拥有海量数据与用户时,很难快速的返回用户所查询的结果。并且由于区块链去中心的特点,添加区块内部索引结构以提高检索效率的同时,也必须考虑其所占用存储空间的大小。
解决以上问题及缺陷的意义为:由于区块链中上述缺陷的存在,目前区块链还是更多地应用在数字货币交易与一些小型应用场景上,如果这些问题得以解决,区块链系统不仅可以拥有更高的海量数据检索效率,同时支持关键字查询的功能也大大提高了用户体验,使得区块链能够落地应用在更多场景上。
发明内容
针对现有技术存在的问题,本发明提供了一种区块链中分类数据检索效率的优化方法、系统及应用,尤其涉及一种基于区块链的数据存储方法与检索速度优化方法及系统。
本发明是这样实现的,一种区块链中分类数据检索效率的优化方法,所述区块链中分类数据检索效率的优化方法包括以下步骤:
步骤一,进行数据的存储;
步骤二,进行数据的检索。
首先,将数据分为能源流、业务流与数据流,并在区块头中添加三个字段ES,DS,BS分别表示这三个类别,指向三个区块内子树。在进行数据的存储时,根据类别按照B+树的原则存入不同的子树中,形成树的结构后,再由叶子节点向上取哈希值存入非叶节点,直至生成MerkleRootHash。
在进行数据的检索时,根据数据的类别进入不同的子树按照B+树的原则进行比较至叶子节点,得到查询的结果,并且可以通过MerkleRootHash来验证结果的可靠性。
进一步,步骤一中,所述数据存储,包括:
(1)提取语义信息,得到检索关键词SI;
(2)在区块头中增加ES,DS,BS三个指针字段,分别表示能源流,数据流与业务流,指向Merkle B+树的三个子树,并在交易中增加SI字段;
(3)新上链的数据根据其类别,存储在相应子树;
(4)按照数据SI的大小,根据B+树的原则将数据的SI与子节点的hash存储为树的一个非叶子节点,每个节点存储3个SI;
(5)数据与指向下一个叶子节点的指针构成Merkle B+树的叶子节点,所有的叶子节点构成一条有序的链表;
(6)矿工将包含此交易的Merkle B+树打包为区块,并将生成的区块追加在区块链末尾。
进一步,步骤二中,所述数据检索,包括:
(1)获取检索数据的SI,从最后一个区块开始检索;
(2)根据SI的分类进入对应的子树,如果检索SI大于所比较节点的最大SI,则继续进入右子树进行比较查找;如果检索SI小于所比较节点的最小SI,则继续进入左子树进行比较查找;否则进入中间子树进行比较查找;
(3)比较至叶子节点,查找完一个区块内的数据;如果没找到所查找的数据,则进入前一个区块,重复步骤(2),直至检索到数据;
(4)若要进行在[SImin,SImax]内的范围检索,则回到步骤(1),找到SImin,再从SImin所在的叶子节点开始遍历叶子节点链表至SImax;
(5)客户端得到查询结果后对系统发起验证查询结果可靠性的请求,系统将返回此交易所在区块MerkleRootHash,如果与客户端所掌握的MerkleRootHash相同,表示查询到的数据未被篡改,验证成功。
本发明的另一目的在于提供一种应用所述区块链中分类数据检索效率的优化方法的区块链中分类数据检索效率的优化系统,所述区块链中分类数据检索效率的优化系统包括:
数据存储模块,用于进行数据的存储;
数据检索模块,用于进行数据的检索。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
提取语义信息,得到检索关键词SI;在区块头中增加ES,DS,BS三个指针字段,分别表示能源流,数据流与业务流,指向Merkle B+树的三个子树,并在交易中增加SI字段;新上链的数据根据其类别,存储在相应子树;按照数据SI的大小,根据B+树的原则将数据的SI与子节点的hash存储为树的一个非叶子节点,每个节点存储3个SI;数据与指向下一个叶子节点的指针构成Merkle B+树的叶子节点,所有的叶子节点构成一条有序的链表;矿工将包含此交易的Merkle B+树打包为区块,并将生成的区块追加在区块链末尾。
获取检索数据的SI,从最后一个区块开始检索;根据SI的分类进入对应的子树,如果检索SI大于所比较节点的最大SI,则继续进入右子树进行比较查找;如果检索SI小于所比较节点的最小SI,则继续进入左子树进行比较查找;否则进入中间子树进行比较查找;比较至叶子节点,查找完一个区块内的数据;若要进行在[SImin,SImax]内的范围检索,则找到SImin,再从SImin所在的叶子节点开始遍历叶子节点链表至SImax;客户端得到查询结果后对系统发起验证查询结果可靠性的请求,系统将返回此交易所在区块MerkleRootHash,如果与客户端所掌握的MerkleRootHash相同,表示查询到的数据未被篡改,验证成功。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
提取语义信息,得到检索关键词SI;在区块头中增加ES,DS,BS三个指针字段,分别表示能源流,数据流与业务流,指向Merkle B+树的三个子树,并在交易中增加SI字段;新上链的数据根据其类别,存储在相应子树;按照数据SI的大小,根据B+树的原则将数据的SI与子节点的hash存储为树的一个非叶子节点,每个节点存储3个SI;数据与指向下一个叶子节点的指针构成Merkle B+树的叶子节点,所有的叶子节点构成一条有序的链表;矿工将包含此交易的Merkle B+树打包为区块,并将生成的区块追加在区块链末尾。
获取检索数据的SI,从最后一个区块开始检索;根据SI的分类进入对应的子树,如果检索SI大于所比较节点的最大SI,则继续进入右子树进行比较查找;如果检索SI小于所比较节点的最小SI,则继续进入左子树进行比较查找;否则进入中间子树进行比较查找;比较至叶子节点,查找完一个区块内的数据;若要进行在[SImin,SImax]内的范围检索,则找到SImin,再从SImin所在的叶子节点开始遍历叶子节点链表至SImax;客户端得到查询结果后对系统发起验证查询结果可靠性的请求,系统将返回此交易所在区块MerkleRootHash,如果与客户端所掌握的MerkleRootHash相同,表示查询到的数据未被篡改,验证成功。
本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以应用所述区块链中分类数据检索效率的优化系统。
本发明的另一目的在于提供一种计算机可读存储介质,储存有指令,当所述指令在计算机上运行时,使得计算机应用所述区块链中分类数据检索效率的优化系统。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述区块链中分类数据检索效率的优化系统。
本发明的另一目的在于提供一种所述区块链中分类数据检索效率的优化系统在基于区块链的溯源、存证以及交易场景的数据检索中的应用。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的区块链中分类数据检索效率的优化方法,通过对上链数据进行分类,并在区块内建立索引的方法,解决了现有区块链在实际应用时所存在的检索速度较慢的问题。通过使用本发明所提供的方法,B+树的三个子树只需遍历一个,且每个子树也只需遍历大约1/3的节点即可得到查询结果,极大地提高了区块链中数据的检索效率,同时Merkle树的设计也保障了系统的安全性。
本发明设计的基于区块链存储的数据的快速检索方法,采用将数据分为能源流、业务流、数据流,对提取语义信息后的数据进行分类存储,并在区块内建立基于数据语义信息的Merkle B+树索引的方法,不仅能够提高数据的检索效率,还能够通过具体地关键词来检索数据,摆脱以往只能通过哈希值来检索数据的限制,并且客户端可以通过MerkleRootHash来验证系统返回的查询结果的可靠性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的区块链中分类数据检索效率的优化方法流程图。
图2是本发明实施例提供的区块链中分类数据检索效率的优化方法原理图。
图3是本发明实施例提供的数据存储流程图。
图4是本发明实施例提供的数据存储原理图。
图5是本发明实施例提供的数据检索流程图。
图6是本发明实施例提供的数据检索原理图。
图7是本发明实施例提供的区块内索引结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种区块链中分类数据检索效率的优化方法、系统及应用,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的区块链中分类数据检索效率的优化方法包括以下步骤:
S101,进行数据的存储;
S102,进行数据的检索。
本发明实施例提供的区块链中分类数据检索效率的优化方法原理图见图2。
如图3所示,本发明实施例提供的数据存储,包括:
S201,提取语义信息,得到检索关键词SI;
S202,在区块头中增加ES,DS,BS三个指针字段,分别表示能源流,数据流与业务流,指向Merkle B+树的三个子树,并在交易中增加SI字段;
S203,新上链的数据根据其类别,存储在相应子树;
S204,按照数据SI的大小,根据B+树的原则将数据的SI与子节点的hash存储为树的一个非叶子节点,每个节点存储3个SI;
S205,数据与指向下一个叶子节点的指针构成Merkle B+树的叶子节点,所有的叶子节点构成一条有序的链表;
S206,矿工将包含此交易的Merkle B+树打包为区块,并将生成的区块追加在区块链末尾。
本发明实施例提供的数据存储原理图如图4所示。
如图5所示,本发明实施例提供的数据检索,包括:
S301,获取检索数据的SI,从最后一个区块开始检索;
S302,根据SI的分类进入对应的子树,如果检索SI大于所比较节点的最大SI,则继续进入右子树进行比较查找;如果检索SI小于所比较节点的最小SI,则继续进入左子树进行比较查找;否则进入中间子树进行比较查找;
S303,比较至叶子节点,查找完一个区块内的数据;如果没找到所查找的数据,则进入前一个区块,重复S302,直至检索到数据;
S304,若要进行在[SImin,SImax]内的范围检索,则回到S301,找到SImin,再从SImin所在的叶子节点开始遍历叶子节点链表至SImax;
S305,客户端得到查询结果后对系统发起验证查询结果可靠性的请求,系统将返回此交易所在区块MerkleRootHash,如果与客户端所掌握的MerkleRootHash相同,表示查询到的数据未被篡改,验证成功。
本发明实施例提供的数据检索原理图如图6所示。
本发明实施例提供的区块链中分类数据检索效率的优化系统包括:
数据存储模块1,用于进行数据的存储;
数据检索模块2,用于进行数据的检索。
本发明实施例提供的区块内索引结构示意图如图7所示。
下面结合具体实施例对本发明的技术方案作进一步描述。
实施例1
在很多场景中数据通常可分为能源流,数据流与业务流三大类型,因此在将数据存储在区块链上时对数据进行分类存储,在检索时只检索需要的类别;并且为了提高每一类别数据的检索速度,在每个区块内维护一个Merkle B+树索引结构,这个索引结构还可以较好的支持范围查询。
在区块链中是通过数据的哈希值对数据进行检索的,为了实现通过具体的关键词来检索数据,在数据上链前先提取每条数据的语义信息作为检索关键词。因此,本发明的技术方案包括数据的存储与数据的检索两个部分,下面分别介绍。
本发明中提出的数据存储流程如下:
步骤1:提取语义信息,得到检索关键词SI。
步骤2:在区块头中增加ES,DS,BS三个指针字段,分别表示能源流,数据流与业务流,指向Merkle B+树的三个子树,并在交易中增加SI字段。
步骤3:新上链的数据根据其类别,存储在相应子树。
步骤4:按照数据SI的大小,根据B+树的原则将数据的SI与子节点的hash存储为树的一个非叶子节点。每个节点存储3个SI。
步骤5:数据与指向下一个叶子节点的指针构成Merkle B+树的叶子节点,所有的叶子节点构成一条有序的链表。
步骤6:矿工将包含此交易的Merkle B+树打包为区块,并将生成的区块追加在区块链末尾。
本发明提出的数据检索流程如下:
步骤1:获取检索数据的SI,从最后一个区块开始检索。
步骤2:根据SI的分类进入对应的子树,如果检索SI大于所比较节点的最大SI,则继续进入右子树进行比较查找;如果检索SI小于所比较节点的最小SI,则继续进入左子树进行比较查找;否则进入中间子树进行比较查找。
步骤3:比较至叶子节点,查找完一个区块内的数据。如果没找到所查找的数据,则进入前一个区块,重复步骤2,直至检索到数据。
步骤4:若要进行在[SImin,SImax]内的范围检索,则回到步骤1,找到SImin,再从SImin所在的叶子节点开始遍历叶子节点链表至SImax。
步骤5:客户端得到查询结果后对系统发起验证查询结果可靠性的请求,系统将返回此交易所在区块MerkleRootHash,如果与客户端所掌握的MerkleRootHash相同,表示查询到的数据未被篡改,验证成功。
实施例2:数据存储的流程
区块链平台选取以太坊以实现电力资源交易系统,用户所有的购电交易都将记录在以太坊中,交易数据由所有用户共同维护。用户Alice在此系统中购买了50度电,系统将这笔交易以业务流的形式存入区块链。
下面是交易存储的流程:
步骤1:系统提取此笔交易的关键词“Alice买电50”;
步骤2:“Alice买电50”将被识别为业务流,准备插入在新区块的BS子树中。
步骤3:若子树无节点或子树根节点并未存满,则直接插入包含“Alice买电50”信息的节点为根节点;否则,从子树的根节点开始对比“Alice买电50”与节点所含SI的大小,如果小于节点最小SI,则将进入左子树继续比较,如果大于节点最大SI,则进入右子树继续比较,否则进入中间子树继续比较,直至比较的节点为叶子节点。
步骤4:根据与叶子节点SI的比较,决定新数据插入的位置。若“Alice买电50”比所比较叶子结点中所有SI小,则新插入为叶子节点的左孩子;若比所比较叶子结点中所有SI大,则新插入为叶子节点的右孩子;否则新插入为叶子节点的中间孩子。
步骤5:将“Alice买电50”与其对应交易的<key,value>组织为节点形式,并插入在树的指定位置上。
步骤6:矿工将包含此交易的Merkle B+树打包为区块,并将此区块追加在区块链末尾。
实施例3:数据检索的流程
Alice有查询自己购电历史的需求,将在系统中以关键词“Alice买电50”来查询这笔交易。
下面是Alice查询交易的流程:
步骤1:系统识别出此信息是业务流。
步骤2:在区块链的最后一个区块中,进入索引结构的BS子树中进行查找。
步骤3:从BS子树的根节点开始,将节点SI与“Alice买电50”进行比较,如果小于节点的最小SI值,则继续进入左子树进行比较,如果大于节点的最大SI值,则继续进入右子树进行比较,否则进入中间子树直至比较到叶子节点。
步骤4:如果叶子节点中的数据不是所查询的,则进入上一个区块,重复步骤3,直到得到所查询的结果。
步骤5:Alice拿到查询结果后,对系统发起验证查询结果可靠性的请求,系统向用户返回计算所得的MerkleRootHash,如果与Alice所掌握的MerkleRootHash相同,表示Alice查询到的数据未被篡改,验证成功。
在上述实施例3中,首先识别出用户查询的是业务流数据,所以进入到区块的业务流子树中进行比较查询,能源流与数据流子树将被忽略,这相较于传统区块链系统将节省2/3的查询时间。而在进入业务流子树后,每个节点将存储三个或者更多关键字,根据“左大右小”的原则以查询目标与关键字进行比较,也只进入三个子树其中的一个继续进行比较直至叶子节点,这又将节省2/3的查询时间。所以本系统相较于传统系统的检索效率将大大提高。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种区块链中分类数据检索效率的优化方法,其特征在于,所述区块链中分类数据检索效率的优化方法首先,将数据分为能源流、业务流与数据流,并在区块头中添加三个字段ES,DS,BS分别表示这三个类别,指向三个区块内子树。在进行数据的存储时,根据类别按照B+树的原则存入不同的子树中,形成树的结构后,再由叶子节点向上取哈希值存入非叶节点,直至生成MerkleRootHash;在进行数据的检索时,根据数据的类别进入不同的子树按照B+树的原则进行比较至叶子节点,得到查询的结果,并且可以通过MerkleRootHash来验证结果的可靠性;具体包括以下步骤:
步骤一,进行数据的存储;
步骤二,进行数据的检索。
2.如权利要求1所述区块链中分类数据检索效率的优化方法,其特征在于,步骤一中,所述数据存储,包括:
(1)提取语义信息,得到检索关键词SI;
(2)在区块头中增加ES,DS,BS三个指针字段,分别表示能源流,数据流与业务流,指向Merkle B+树的三个子树,并在交易中增加SI字段;
(3)新上链的数据根据其类别,存储在相应子树;
(4)按照数据SI的大小,根据B+树的原则将数据的SI与子节点的hash存储为树的一个非叶子节点,每个节点存储3个SI;
(5)数据与指向下一个叶子节点的指针构成Merkle B+树的叶子节点,所有的叶子节点构成一条有序的链表;
(6)矿工将包含此交易的Merkle B+树打包为区块,并将生成的区块追加在区块链末尾。
3.如权利要求1所述区块链中分类数据检索效率的优化方法,其特征在于,步骤二中,所述数据检索,包括:
(1)获取检索数据的SI,从最后一个区块开始检索;
(2)根据SI的分类进入对应的子树,如果检索SI大于所比较节点的最大SI,则继续进入右子树进行比较查找;如果检索SI小于所比较节点的最小SI,则继续进入左子树进行比较查找;否则进入中间子树进行比较查找;
(3)比较至叶子节点,查找完一个区块内的数据;如果没找到所查找的数据,则进入前一个区块,重复步骤(2),直至检索到数据;
(4)若要进行在[SImin,SImax]内的范围检索,则回到步骤(1),找到SImin,再从SImin所在的叶子节点开始遍历叶子节点链表至SImax;
(5)客户端得到查询结果后对系统发起验证查询结果可靠性的请求,系统将返回此交易所在区块MerkleRootHash,如果与客户端所掌握的MerkleRootHash相同,表示查询到的数据未被篡改,验证成功。
4.一种实施权利要求1~3任意一项所述区块链中分类数据检索效率的优化方法的区块链中分类数据检索效率的优化系统,其特征在于,所述区块链中分类数据检索效率的优化系统包括:
数据存储模块,用于进行数据的存储;
数据检索模块,用于进行数据的检索。
5.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
提取语义信息,得到检索关键词SI;在区块头中增加ES,DS,BS三个指针字段,分别表示能源流,数据流与业务流,指向Merkle B+树的三个子树,并在交易中增加SI字段;新上链的数据根据其类别,存储在相应子树;按照数据SI的大小,根据B+树的原则将数据的SI与子节点的hash存储为树的一个非叶子节点,每个节点存储3个SI;数据与指向下一个叶子节点的指针构成Merkle B+树的叶子节点,所有的叶子节点构成一条有序的链表;矿工将包含此交易的Merkle B+树打包为区块,并将生成的区块追加在区块链末尾;
获取检索数据的SI,从最后一个区块开始检索;根据SI的分类进入对应的子树,如果检索SI大于所比较节点的最大SI,则继续进入右子树进行比较查找;如果检索SI小于所比较节点的最小SI,则继续进入左子树进行比较查找;否则进入中间子树进行比较查找;比较至叶子节点,查找完一个区块内的数据;若要进行在[SImin,SImax]内的范围检索,则找到SImin,再从SImin所在的叶子节点开始遍历叶子节点链表至SImax;客户端得到查询结果后对系统发起验证查询结果可靠性的请求,系统将返回此交易所在区块MerkleRootHash,如果与客户端所掌握的MerkleRootHash相同,表示查询到的数据未被篡改,验证成功。
6.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
提取语义信息,得到检索关键词SI;在区块头中增加ES,DS,BS三个指针字段,分别表示能源流,数据流与业务流,指向Merkle B+树的三个子树,并在交易中增加SI字段;新上链的数据根据其类别,存储在相应子树;按照数据SI的大小,根据B+树的原则将数据的SI与子节点的hash存储为树的一个非叶子节点,每个节点存储3个SI;数据与指向下一个叶子节点的指针构成Merkle B+树的叶子节点,所有的叶子节点构成一条有序的链表;矿工将包含此交易的Merkle B+树打包为区块,并将生成的区块追加在区块链末尾;
获取检索数据的SI,从最后一个区块开始检索;根据SI的分类进入对应的子树,如果检索SI大于所比较节点的最大SI,则继续进入右子树进行比较查找;如果检索SI小于所比较节点的最小SI,则继续进入左子树进行比较查找;否则进入中间子树进行比较查找;比较至叶子节点,查找完一个区块内的数据;若要进行在[SImin,SImax]内的范围检索,则找到SImin,再从SImin所在的叶子节点开始遍历叶子节点链表至SImax;客户端得到查询结果后对系统发起验证查询结果可靠性的请求,系统将返回此交易所在区块MerkleRootHash,如果与客户端所掌握的MerkleRootHash相同,表示查询到的数据未被篡改,验证成功。
7.一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以应用如权利要求4所述区块链中分类数据检索效率的优化系统。
8.一种计算机可读存储介质,储存有指令,当所述指令在计算机上运行时,使得计算机应用如权利要求4所述区块链中分类数据检索效率的优化系统。
9.一种信息数据处理终端,其特征在于,所述信息数据处理终端用于实现如权利要求4所述区块链中分类数据检索效率的优化系统。
10.一种如权利要求4所述区块链中分类数据检索效率的优化系统在基于区块链的溯源、存证以及交易场景的数据检索中的应用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110903230.9A CN113779025B (zh) | 2021-08-06 | 2021-08-06 | 一种区块链中分类数据检索效率的优化方法、系统及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110903230.9A CN113779025B (zh) | 2021-08-06 | 2021-08-06 | 一种区块链中分类数据检索效率的优化方法、系统及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113779025A true CN113779025A (zh) | 2021-12-10 |
CN113779025B CN113779025B (zh) | 2024-01-26 |
Family
ID=78837019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110903230.9A Active CN113779025B (zh) | 2021-08-06 | 2021-08-06 | 一种区块链中分类数据检索效率的优化方法、系统及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113779025B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116340418A (zh) * | 2022-12-01 | 2023-06-27 | 苏州思萃区块链技术研究所有限公司 | 一种预言机用多种账簿共识方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800065A (zh) * | 2021-02-09 | 2021-05-14 | 北京工业大学 | 基于改进区块存储结构的高效数据检索方法 |
US20210192412A1 (en) * | 2017-11-27 | 2021-06-24 | Sankar Krishnaswamy | Cognitive Intelligent Autonomous Transformation System for actionable Business intelligence (CIATSFABI) |
-
2021
- 2021-08-06 CN CN202110903230.9A patent/CN113779025B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210192412A1 (en) * | 2017-11-27 | 2021-06-24 | Sankar Krishnaswamy | Cognitive Intelligent Autonomous Transformation System for actionable Business intelligence (CIATSFABI) |
CN112800065A (zh) * | 2021-02-09 | 2021-05-14 | 北京工业大学 | 基于改进区块存储结构的高效数据检索方法 |
Non-Patent Citations (1)
Title |
---|
尤瑶;孔兰菊;肖宗水;郑永清;李庆忠;: "一种支持区块链交易溯源的混合索引机制", 计算机集成制造系统, no. 04 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116340418A (zh) * | 2022-12-01 | 2023-06-27 | 苏州思萃区块链技术研究所有限公司 | 一种预言机用多种账簿共识方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113779025B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
CN103577123B (zh) | 一种基于hdfs的小文件优化存储方法 | |
CN108846133B (zh) | 基于b-m树的区块链存储结构、b-m树建立算法及查找算法 | |
TWI549005B (zh) | 多層搜尋引擎索引 | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
TWI554897B (zh) | Mail index establishment method and system, mail search method and system | |
CN107704202B (zh) | 一种数据快速读写的方法和装置 | |
WO2020024904A1 (zh) | 用于搜索区块链数据的方法、设备及可读存储介质 | |
CN112287182A (zh) | 图数据存储、处理方法、装置及计算机存储介质 | |
WO2023131218A1 (zh) | 图数据的存储 | |
WO2020125630A1 (zh) | 文件读取 | |
WO2013138441A1 (en) | Systems, methods, and software for computing reachability in large graphs | |
CN112925954A (zh) | 用于在图数据库中查询数据的方法和装置 | |
CN113190645A (zh) | 一种索引结构建立方法、装置、设备及存储介质 | |
JP2012256318A (ja) | 多重範囲スキャンでのnソートクエリを最適に処理する方法及び装置 | |
CN105912696A (zh) | 一种基于对数归并的dns索引创建方法及查询方法 | |
CN113779025B (zh) | 一种区块链中分类数据检索效率的优化方法、系统及应用 | |
CN111310076B (zh) | 地理位置查询方法、装置、介质及电子设备 | |
CN116860825B (zh) | 一种基于区块链的可验证检索方法及系统 | |
CN103258052B (zh) | 一种eMule网络上关联资源的发现方法 | |
CN107291875B (zh) | 一种基于元数据图的元数据组织管理方法和系统 | |
CN113535803B (zh) | 一种基于关键字索引的区块链高效检索及可靠性验证方法 | |
CN113821630A (zh) | 一种数据聚类的方法和装置 | |
US20120066209A1 (en) | Electronic mail duplicate detection | |
KR101299555B1 (ko) | 해시 함수 기반의 인덱스를 이용한 텍스트 검색 장치 및 방법 |
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 | ||
CB02 | Change of applicant information |
Address after: 710071 Xi'an Electronic and Science University, 2 Taibai South Road, Shaanxi, Xi'an Applicant after: XIDIAN University Applicant after: Xi'an Lianrong Technology Co.,Ltd. Address before: 710071 Xi'an Electronic and Science University, 2 Taibai South Road, Shaanxi, Xi'an Applicant before: XIDIAN University Applicant before: XI'AN XIDIAN LIANRONG TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |