CN112966001A - 一种基于区块链的BCTkPQ查询方法 - Google Patents

一种基于区块链的BCTkPQ查询方法 Download PDF

Info

Publication number
CN112966001A
CN112966001A CN202110216456.1A CN202110216456A CN112966001A CN 112966001 A CN112966001 A CN 112966001A CN 202110216456 A CN202110216456 A CN 202110216456A CN 112966001 A CN112966001 A CN 112966001A
Authority
CN
China
Prior art keywords
transaction
index
query
path
score
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
CN202110216456.1A
Other languages
English (en)
Other versions
CN112966001B (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.)
Northeastern University China
Original Assignee
Northeastern University China
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 Northeastern University China filed Critical Northeastern University China
Priority to CN202110216456.1A priority Critical patent/CN112966001B/zh
Publication of CN112966001A publication Critical patent/CN112966001A/zh
Application granted granted Critical
Publication of CN112966001B publication Critical patent/CN112966001B/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/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/22Indexing; Data structures therefor; Storage structures
    • 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
    • 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)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种基于区块链的BCTkPQ查询方法,该方法包括步骤1:构建协作查询框架CQM;步骤2:构造来源‑目的地S‑D索引,构造每个事务中的业务逻辑关系;步骤3:在S‑D索引的基础上,根据用户发送的查询请求构造路径‑得分P‑SC索引,建立路径和事务分数间的映射关系,P‑SC索引与S‑D索引构成一个二级索引;步骤4:获取查询请求中路径p的事务中属性O上权重W的得分最高的前k个事务。本发明基于CQM模型和二级索引,能够实现基于区块链的BCTkPQ快速查询,查询效率会随着CP节点数和用户数的增加而提升。

Description

一种基于区块链的BCTkPQ查询方法
技术领域
本发明涉及路径查询技术领域,尤其涉及一种基于区块链的BCTkPQ查询方法。
背景技术
目前,区块链作为加密货币***的基石,已经受到了业界和学术界的高度关注。区块链已经成功应用于各种现实场景,如物联网、智慧医疗、供应链、数据库架构、数据服务外包等。区块链可以被看作是由互相不完全信任的节点通过共识协议维护的分布式数据库。根据不同的场景,区块链可以根据具体的业务逻辑,设计具体的交易模型。其中,常见的交易模型是基于金融交易的,用来表示银行或金融机构之间的转账信息。显然,在金融交易场景下,区块链可以安全并完整地存储用户的金融账单和日常转账记录。所有的交易数据蕴含着有用的信息和知识,表达了用户在不同场景下的商业偏好,可以用来提高数据分析、数据安全、推荐***等应用服务的质量。因此,多样化查询处理的需求越来越大。
传统的查询方法是将查询请求发送到维护完整块和事务的完整节点,并通过遍历整条区块链的所有区块,获取符合条件的事务。显然,这种解决方案的效率是过低的,无法满足大量的查询需求。低效的主要原因是,整个节点需要遍历存储在本地存储中的所有区块链数据,从而导致过高的计算工作负载。
发明内容
针对上述现有技术的不足,本发明提供一种基于区块链的BCTkPQ查询方法。对于区块链中的top-k交易路径查询(Blockchain top-k Path Query,BCTkPQ),即返回给定查询路径p中满足指定条件的前k个事务。
为解决上述技术问题,本发明所采取的技术方案是:一种基于区块链的BCTkPQ查询方法,包括如下步骤:
步骤1:构建协作查询框架CQM(Collaborative Query Model)包含三个关键部分,即应用程序编程接口API、由一组协作对等点CP(Collaborative Peer)维护的协作网络CN(Collaborative Network)和存储原始交易数据的区块链BC(Block Chain);其中API包含分发器和响应器;
步骤2:构造来源-目的地S-D(Source-Destination)索引,构造每个事务中的业务逻辑关系,过程如下:
步骤2.1:初始化三个集合<S,D,E>,用于存储每个事务的逻辑;
步骤2.2:定义Tx为区块链上的事务,按照一般的账户间的财务转移操作,定义Tx结构为,Tx={ID,TxHash,from,to,O},其中ID表示Tx的序列号,TxHash表示Tx的哈希值,<from,to>字段是表示Tx传输操作的业务逻辑,称为事务路径p,O为事务其余属性,当区块链事务Tx具有m个属性时,O为{attr1,attr2,……,attrm},attr为某一个属性;
步骤2.3:遍历区块链上所有事务,将Tx的from字段和to字段分别添加到S集合和D集合中;
步骤2.4:将当前事务的路径保存到E集合中,即p→<from,to>。
步骤3:在S-D索引的基础上,根据用户发送的查询请求<p,k,W,O>,构造路径-得分P-SC(Path-Score)索引,建立路径和事务分数间的映射关系,P-SC索引与S-D索引构成一个二级索引;其中,p为事务路径,O为事务其余属性集合,W为权重集合,k为查询得分最高的前k个事务。具体过程如下:
步骤3.1:获取S-D索引的E集合中新增的路径pi
步骤3.2:当获取的pi在P-SC索引中不存在时,创建一个新的包bucket*来存储该路径pi,即pi→<Txi>添加到bucketi中;
步骤3.3:当获取的pi在P-SC索引中存在时,获取对应的bucket,存储pi对应的Txi到bucket中。
步骤4:获取查询结果,假设用户发送查询请求<p,k,W,O>,以获取路径为p=<from*,to*>的事务中属性O上权重W的得分最高的前k个事务,过程如下:
步骤4.1:用户通过CQM的分发器将请求<p,k,W,O>广播到所有CP;
步骤4.2:每个CP在本地P-SC索引中获取所有包含p→<from*,to*>的包bucket,根据查询条件中的权重集合W,计算其事务分数scorei
所述事务分数scorei的计算方法如下:
Fs(Tx)=∑attri×wi
其中,Fs(Tx)为事务分数scorei,attri为事务Tx的第i个属性,wi≥0是查询条件中权重集合W的第i个值,是对应属性attri的权重。
步骤4.3:根据事务score按照从大到小排序,将bucket中得分最高的前k个区块链事务添加到结果集合resultSet中;
步骤4.4:为resultSet计算摘要digest,并将digest广播给其他CP;
步骤4.5:当收到的digest全部相同且数量超过了给定阈值(一般阈值设定为所有CP数量的三分之二),返回resultSet,终止当前计算并等待下一次调用。
采用上述技术方案所产生的有益效果在于:
1、本发明提供的方法基于协作查询模型CQM来处理BCTkPQ问题的方法,能够实现基于区块链的BCTkPQ快速查询。
2、本发明查询方法构建了基于P-SC索引与S-D索引的一个二级索引,基于二级索引的多样化查询方法相比传统的查询方法将提升查询效率,而且会减少,由于整个节点需要遍历存储在本地存储中的所有区块链数据,从而导致过高的计算工作负载。基于CQM模型和二级索引,能够实现基于区块链的BCTkPQ快速查询,查询效率会随着CP节点数和用户数的增加而提升。
附图说明
图1为本发明实施例中协作查询框架的结构示意图;
图2为本发明实施例中构建S-D索引的流程图;
图3为本发明实施例中构建P-SC索引的流程图;
图4为本发明实施例中二级索引的结构示意图;
图5为本发明实施例中查询过程的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施例中采用3个用户SU={U1,U2,U3},五个节点CP={P1,P2,…,P5},以及100条数据进行实验,每条数据格式为Tx={ID,TxHash,from,to,money}。本实施例中一种基于区块链的BCTkPQ查询方法如下所述:
步骤1:构建协作查询框架(Collaborative Query Model,CQM),结构如图1所示,包含三个关键部分,即应用程序编程接口(API),由一组协作对等点(Collaborative Peer,CP)维护的协作网络(Collaborative Network,CN)和存储原始交易数据的区块链(BlockChain,BC);其中API包含分发器和响应器;
CQM的执行流程简述为:首先,查询请求通过API中的分发器(dispatcher)广播到所有CP。然后,所有CP同步响应查询请求,每个CP包含三个模块,即解析器,索引器和执行器。这些模块可以通过只读方式访问BC,这意味着所有模块都可以读取存储在区块链中的数据对象并创建索引以在本地完成查询请求。最后,CN处理完查询请求后,并通过API中的响应器(responder)将结果返回。
步骤2:构造来源-目的地(Source-Destination,S-D)索引,构造每个事务中的业务逻辑关系,流程如图2所示;
步骤2.1:初始化三个集合<S,D,E>,存储每个事务的逻辑;
步骤2.2:定义Tx为区块链上的事务,按照一般的账户间的财务转移操作,定义Tx结构为,Tx={ID,TxHash,from,to,O},其中ID表示Tx的序列号,TxHash表示Tx的哈希值,<from,to>字段是表示Tx传输操作的业务逻辑,称为事务路径p,O为事务其余属性,当区块链事务Tx具有m个属性时,O为{attr1,attr2,……,attrm},attr为某一个属性;
本实施例中,事务其余属性只有一个,为money;
步骤2.3:遍历链上所有事务,将Tx的from字段和to字段分别添加到S集合和D集合中,如图3所示,从100条数据中提取from字段S={U1,U1,U2,U2,U3,U1···},从100条数据中提取to字段D={U2,U3,U1,U3,U1,U3···};
步骤2.4:将当前事务之间的映射关系保存为E集合中,即p→<from,to>,100条数据中构建E={<U1,U2>,<U1,U3>,<U2,U1>,<U2,U3>,<U3,U1>···},结构如图4左侧所示;
步骤3:在S-D索引的基础上,根据用户发送查询请求<p,k,W,O>,模拟查询<<U1,U3>,2,1,money>,构造路径-得分(Path-Score,P-SC)索引,建立路径和事务分数的映射,流程如图3所示,P-SC索引与S-D索引构成一个二级索引,结构如图4所示;
步骤3.1:获取S-D索引的E集合中新增的路径pi
步骤3.2:当获取的pi在P-SC索引中不存在时,例如Tx3路径p3=<U2,U1>在P-SC中不存在时,创建一个新的包bucket*来存储该路径pi=<U2,U1>,即pi→<Tx3>添加到bucket3中;
步骤3.3:当获取的pi在P-SC索引中存在时,例如Tx6路径p6=<U1,U3>在P-SC中存在时获取对应的bucket,存储p6对应的Tx6到bucket中;
步骤4:获取查询结果,假设用户发送查询请求<p,k,W,O>=<<U1,U3>,2,1,money>,以获取路径为p=<from*,to*>=<U1,U3>的事务中数据对象O=money上权重W=1的得分最高的前k=2个事务,如图5所示;
步骤4.1:用户通过CQM的分发器将请求<p,k,W,O>=<<U1,U3>,2,1,money>广播到所有CP={P1,P2,…,P5};
步骤4.2:每个CP在本地P-SC索引中获取所有包含p→<from*,to*>=<U1,U3>的bucket,根据查询条件中的权重集合W,计算其事务分数scorei。事务分数scorei为Fs(Tx),Fs(Tx)=∑attri×wi。其中,attri为事务Tx的第i个属性,wi≥0是查询条件中权重集合W的第i个值,是对应属性attri的权重。
本实施例中,W只包含一个属性money,其权重为1,因此E集合中事务Txi,scorei=Fs(Txi)=moneyi×1;
步骤4.3:根据score按照从大到小排序,将bucket中得分最高的2个事务添加到结果集合resultSet中,resultSet={Tx2={2,Tx2Hash,U1,U3,money2},Tx6={6,Tx6Hash,U1,U3,money6}};
步骤4.4:为resultSet计算摘要digest,并将digest广播给其他CP;
步骤4.5:当收到的digest全部相同且数量超过了给定阈值,所有CP数量的三分之二时,返回resultSet,终止当前计算并等待下一次调用。

Claims (5)

1.一种基于区块链的BCTkPQ查询方法,其特征在于,包括如下步骤:
步骤1:构建协作查询框架CQM包含三个关键部分,即应用程序编程接口API、由一组协作对等点CP维护的协作网络CN和存储原始交易数据的区块链BC;其中API包含分发器和响应器;
步骤2:构造来源-目的地S-D索引,构造每个事务中的业务逻辑关系;
步骤3:在S-D索引的基础上,根据用户发送的查询请求<p,k,W,O>,构造路径-得分P-SC索引,建立路径和事务分数间的映射关系,P-SC索引与S-D索引构成一个二级索引;
其中,p为事务路径,O为事务其余属性集合,W为权重集合,k为查询得分最高的前k个事务;
步骤4:获取查询结果,假设用户发送查询请求<p,k,W,O>,以获取路径为p=<from*,to*>的事务中属性O上权重W的得分最高的前k个事务。
2.根据权利要求1所述的基于区块链的BCTkPQ查询方法,其特征在于,所述步骤2的过程如下:
步骤2.1:初始化三个集合<S,D,E>,用于存储每个事务的逻辑;
步骤2.2:定义Tx为区块链上的事务,按照一般的账户间的财务转移操作,定义Tx结构为,Tx={ID,TxHash,from,to,O},其中ID表示Tx的序列号,TxHash表示Tx的哈希值,<from,to>字段是表示Tx传输操作的业务逻辑,称为事务路径p,O为事务其余属性,当区块链事务Tx具有m个属性时,O为{attr1,attr2,……,attrm},attr为某一个属性;
步骤2.3:遍历区块链上所有事务,将Tx的from字段和to字段分别添加到S集合和D集合中;
步骤2.4:将当前事务的路径保存到E集合中,即p→<from,to>。
3.根据权利要求1所述的基于区块链的BCTkPQ查询方法,其特征在于,所述步骤3的过程如下:
步骤3.1:获取S-D索引的E集合中新增的路径pi
步骤3.2:当获取的pi在P-SC索引中不存在时,创建一个新的包bucket*来存储该路径pi,即pi→<Txi>添加到bucketi中;
步骤3.3:当获取的pi在P-SC索引中存在时,获取对应的bucket,存储pi对应的Txi到bucket中。
4.根据权利要求1所述的基于区块链的BCTkPQ查询方法,其特征在于,所述步骤4的过程如下:
步骤4.1:用户通过CQM的分发器将请求<p,k,W,O>广播到所有CP;
步骤4.2:每个CP在本地P-SC索引中获取所有包含p→<from*,to*>的包bucket,根据查询条件中的权重集合W,计算其事务分数scorei
步骤4.3:根据事务score按照从大到小排序,将bucket中得分最高的前k个区块链事务添加到结果集合resultSet中;
步骤4.4:为resultSet计算摘要digest,并将digest广播给其他CP;
步骤4.5:当收到的digest全部相同且数量超过了给定阈值,返回resultSet,终止当前计算并等待下一次调用。
5.根据权利要求4所述的基于区块链的BCTkPQ查询方法,其特征在于,所述事务分数scorei的计算方法如下:
Fs(Tx)=∑attri×wi
其中,Fs(Tx)为事务分数scorei,attri为事务Tx的第i个属性,wi≥0是查询条件中权重集合W的第i个值,是对应属性attri的权重。
CN202110216456.1A 2021-02-26 2021-02-26 一种基于区块链的BCTkPQ查询方法 Active CN112966001B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110216456.1A CN112966001B (zh) 2021-02-26 2021-02-26 一种基于区块链的BCTkPQ查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110216456.1A CN112966001B (zh) 2021-02-26 2021-02-26 一种基于区块链的BCTkPQ查询方法

Publications (2)

Publication Number Publication Date
CN112966001A true CN112966001A (zh) 2021-06-15
CN112966001B CN112966001B (zh) 2023-08-04

Family

ID=76275986

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110216456.1A Active CN112966001B (zh) 2021-02-26 2021-02-26 一种基于区块链的BCTkPQ查询方法

Country Status (1)

Country Link
CN (1) CN112966001B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360504A (zh) * 2021-06-22 2021-09-07 东北大学 一种基于多区块链环境下的连接查询优化方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150199354A1 (en) * 2012-11-20 2015-07-16 Netapp, Inc. Method and system for optimizing traversal and storage of directory entries of a storage volume
CN108509514A (zh) * 2018-03-09 2018-09-07 史玉成 一种基于区块链的大数据分析方法及***
CN109165224A (zh) * 2018-08-24 2019-01-08 东北大学 一种在区块链数据库上针对关键字key的索引方法
CN111209336A (zh) * 2019-12-30 2020-05-29 广州博士信息技术研究院有限公司 基于区块链的数据分配方法、装置及服务器
US20200374105A1 (en) * 2019-05-22 2020-11-26 Salesforce.Com, Inc. System or method to implement consensus on read on distributed ledger/blockchain

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150199354A1 (en) * 2012-11-20 2015-07-16 Netapp, Inc. Method and system for optimizing traversal and storage of directory entries of a storage volume
CN108509514A (zh) * 2018-03-09 2018-09-07 史玉成 一种基于区块链的大数据分析方法及***
CN109165224A (zh) * 2018-08-24 2019-01-08 东北大学 一种在区块链数据库上针对关键字key的索引方法
US20200374105A1 (en) * 2019-05-22 2020-11-26 Salesforce.Com, Inc. System or method to implement consensus on read on distributed ledger/blockchain
CN111209336A (zh) * 2019-12-30 2020-05-29 广州博士信息技术研究院有限公司 基于区块链的数据分配方法、装置及服务器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KUN HAO等: "On efficient top-k transaction path query processing in blockchain database", 《DATA&KNOWLEDGE ENGINEERING》, vol. 141, pages 1 - 7 *
贺扬: "海量小文件的快速检索技术研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 138 - 5169 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360504A (zh) * 2021-06-22 2021-09-07 东北大学 一种基于多区块链环境下的连接查询优化方法
CN113360504B (zh) * 2021-06-22 2023-08-15 东北大学 一种基于多区块链环境下的连接查询优化方法

Also Published As

Publication number Publication date
CN112966001B (zh) 2023-08-04

Similar Documents

Publication Publication Date Title
CN110471995B (zh) 一种跨领域信息共享交换数据模型建模方法
CN108600321A (zh) 一种基于分布式内存云的图数据存储方法和***
US20080097994A1 (en) Method of extracting community and system for the same
CN110674154B (zh) 一种基于Spark的对Hive中数据进行***、更新和删除的方法
WO2023050556A1 (zh) 一种共识智能合约算法
CN113407681B (zh) 一种能源行业公共数据模型构建方法
CN105740337A (zh) 一种基于内容的发布订阅***中的事件快速匹配方法
CN110019231A (zh) 一种并行数据库动态关联的方法及节点
CN114186694A (zh) 一种高效安全,低通信的纵向联邦学习方法
CN112966001A (zh) 一种基于区块链的BCTkPQ查询方法
CN109918369A (zh) 数据存储方法及装置
CN112598510B (zh) 资源数据处理方法和装置
WO2022037102A1 (zh) 面向多方协作的利益相关者服务价值冲突发现和消解方法
CN108173899B (zh) 区块链的信息处理方法及装置
CN113918857A (zh) 一种提高分布式web应用***性能的三级缓存加速方法
CN103995886A (zh) 一种多维度产品设计知识推送框架与构建方法
CN107291764A (zh) 一种大数据交换方法及装置、***
US20230336368A1 (en) Block chain-based data processing method and related apparatus
CN111562990B (zh) 一种基于消息的轻量级无服务器计算方法
CN107506473A (zh) 一种基于云计算的大数据检索方法
CN106096824B (zh) 一种主配网一体化图形资源共享方法
CN109960750A (zh) 一种基于标签传播概率的并行图划分方法
CN113360504B (zh) 一种基于多区块链环境下的连接查询优化方法
CN113496349B (zh) 一种基于ai交互共识的区块链学习档案及信用因子构建方法
CN112950063B (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