[发明专利]一种基于区块链的在分布式数据库中进行交易查询的方法在审
申请号: | 201710422493.1 | 申请日: | 2017-06-07 |
公开(公告)号: | CN107247773A | 公开(公告)日: | 2017-10-13 |
发明(设计)人: | 黄智濒;丁平;周锋;许瀚元;刘欣;王珏;桑燊 | 申请(专利权)人: | 北京邮电大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100876 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 区块 分布式 数据库 进行 交易 查询 方法 | ||
1.一种基于区块链的在分布式数据库中进行交易查询的方法,其特征在于包括如下步骤:
步骤S101,设计Bloom过滤器,根据设计好的Bloom过滤器找出包含指定交易ID的候选区块;
步骤S102,对候选区块进行遍历筛选,找出包含交易ID的目标交易所在的具体区块,然后构造验证消息VerifyMessage;
步骤S103,通过解析VerifyMessage,对区块所在交易路径进行完整性验证;
步骤S104,根据验证结果,返回对应信息,实现基于区块链的分布式数据库中任意交易的查询;
其中所述步骤S102包括如下步骤:
(2-1)在目标区块中,首先根据区块中的所有交易及其相应顺序构造Merkle树;
(2-2)根据要查询的指定交易,构建Merkle树中,找出对应祖先节点,即找出从Merkle树根到交易节点的目标路径;
(2-3)由树根节点到叶子节点进行广度优先遍历,如果包含指定交易ID到树根的路径的目标路径位于当前节点的左子树,标志位数组添加标志位0,哈希值数组添加当前节点的右孩子的值,否则,如果目标路径位于当前节点的右子树,标志位数组添加标志位1,哈希值数组添加当前节点的左孩子的值;
(2-4)将构造好的标志位数组和哈希值数组连同区块头、交易数量、标志位数量和哈希值数量封装成VerifyMessage验证消息。
2.根据权利要求1所述的一种基于区块链的在分布式数据库中进行交易查询的方法,其特征在于:所述步骤S101中设计Bloom过滤器的具体方法为:对于每个区块内的所有交易ID,通过K个哈希函数进行哈希运算,然后将运算结果映射在一个大小为M的位数组内,每个交易ID经过哈希函数使Bloom过滤器里的位数组中的若干位由0置1,同一个区块中,经过区块中所有交易的输入,使得Bloom的位数组所有对应的位为1从而完成所述区块的Bloom过滤器设计。
3.根据权利要求2所述的一种基于区块链的在分布式数据库中进行交易查询的方法,其特征在于:所述哈希函数采用如下的哈希函数:BKDRHash,SDBMHash,DJBHash,RSHash,JSHash,PJWHash,ELFHash,BKDRHash,SDBMHash,DEKHash。
4.根据权利要求1所述的一种基于区块链的在分布式数据库中进行交易查询的方法,其特征在于:所述步骤S101中根据设计好的Bloom过滤器找出包含指定交易ID的候选区块的具体方法为:将所述指定交易ID作为对应区块的Bloom过滤器的输入,查看所述位数组中的对应位是否都为1,如果对应的位都为1则该区块可能包含指定交易,所述区块成为所述候选区块;否则,如果对应的所有位并不都为1,那么所述指定交易一定不在所述区块中。
5.根据权利要求1所述的一种基于区块链的在分布式数据库中进行交易查询的方法,其特征在于:针对一个特定交易ID,通过已经设计好的Bloom过滤器会筛选出一个或多个候选区块。
6.根据权利要求1所述的一种基于区块链的在分布式数据库中进行交易查询的方法,其特征在于:所述步骤S102找出交易所在的区块后,对Merkle树进行完整性的验证。
7.根据权利要求1所述的一种基于区块链的在分布式数据库中进行交易查询的方法,其特征在于所述步骤S103中对所述解析VerifyMessage包括如下步骤:
(3-1)根据VerifyMessage中交易数量字段构建出一个空的Merkle树,同时初始化一个空栈,用于存储和计算哈希值;
(3-2)利用标志位数组和哈希值数组,对Merkle树进行广度优先遍历,重新计算Merkle树的树根;
(3-3)通过对比计算后的值和VerifyMessage中区块头的Merkle树根进行比较,如果相同,则能确保指定交易在该区块中;
(3-4)对VerifyMessage中区块头进行验证,保证其是位于区块链中的最长链中。
8.根据权利要求1所述的一种基于区块链的在分布式数据库中进行交易查询的方法,其特征在于所述步骤S104,如果没有找到区块并且所述验证没有成功,则返回错误信息,若找出一个区块并且所述验证成功,则返回区块高度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710422493.1/1.html,转载请声明来源钻瓜专利网。