CN113779025A - 一种区块链中分类数据检索效率的优化方法、系统及应用 - Google Patents

一种区块链中分类数据检索效率的优化方法、系统及应用 Download PDF

Info

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
Application number
CN202110903230.9A
Other languages
English (en)
Other versions
CN113779025B (zh
Inventor
裴庆祺
田静怡
赵东晓
冯杰
刘雷
卫佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xi'an Xidian Lianrong Technology Co ltd
Xidian University
Original Assignee
Xi'an Xidian Lianrong Technology Co ltd
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xi'an Xidian Lianrong Technology Co ltd, Xidian University filed Critical Xi'an Xidian Lianrong Technology Co ltd
Priority to CN202110903230.9A priority Critical patent/CN113779025B/zh
Publication of CN113779025A publication Critical patent/CN113779025A/zh
Application granted granted Critical
Publication of CN113779025B publication Critical patent/CN113779025B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/06Energy or water supply
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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所述区块链中分类数据检索效率的优化系统在基于区块链的溯源、存证以及交易场景的数据检索中的应用。
CN202110903230.9A 2021-08-06 2021-08-06 一种区块链中分类数据检索效率的优化方法、系统及应用 Active CN113779025B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116340418A (zh) * 2022-12-01 2023-06-27 苏州思萃区块链技术研究所有限公司 一种预言机用多种账簿共识方法

Citations (2)

* Cited by examiner, † Cited by third party
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)

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
尤瑶;孔兰菊;肖宗水;郑永清;李庆忠;: "一种支持区块链交易溯源的混合索引机制", 计算机集成制造系统, no. 04 *

Cited By (1)

* Cited by examiner, † Cited by third party
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